Do this early since these tests generally don't depend on anything
else (the external program is either there or its not), and because
other things depend on some of these tests.
---
configure.ac | 114 ++------------------------------------------
m4/guestfs_progs.m4 | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 137 insertions(+), 111 deletions(-)
create mode 100644 m4/guestfs_progs.m4
diff --git a/configure.ac b/configure.ac
index 7782c3a..2dcb17e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,12 +15,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-# NB: AC_CHECK_PROG(S) or AC_PATH_PROG(S)?
-# Use AC_CHECK_PROG(S) for programs which are only used during build.
-# Use AC_PATH_PROG(S) for program names which are compiled into the
-# binary and used at run time. The reason is so that we know which
-# programs the binary actually uses.
-
# The major, minor, and release fields MUST be numbers. Packagers can
# add extra information using --with-extra="..." which may be any
# freeform string.
@@ -94,23 +88,13 @@
PACKAGE_VERSION_FULL="libguestfs_major.libguestfs_minor.libguestfs_release${libg
AC_DEFINE_UNQUOTED([PACKAGE_VERSION_FULL],["$PACKAGE_VERSION_FULL"],[Full
version string.])
AC_SUBST([PACKAGE_VERSION_FULL])
-# Define $(SED).
-m4_ifdef([AC_PROG_SED],[
- AC_PROG_SED
-],[
- dnl ... else hope for the best
- AC_SUBST([SED], "sed")
-])
-
-# Define $(AWK).
-AC_PROG_AWK
-
dnl Early gnulib initialization.
gl_EARLY
gl_INIT
-AC_PROG_LIBTOOL
-AC_PROG_LN_S
+dnl Check for external programs required to either build or run
+dnl libguestfs.
+m4_include([m4/guestfs_progs.m4])
dnl Define the host CPU architecture (defines 'host_cpu')
AC_CANONICAL_HOST
@@ -646,68 +630,6 @@ AS_IF([test "x$enable_probes" != "xno"],[
])
])
-dnl Check for cpio which isn't in the default Pardus install amazingly.
-AC_CHECK_PROG([CPIO],[cpio],[cpio],[no])
-test "x$CPIO" = "xno" &&
- AC_MSG_ERROR([cpio must be installed])
-
-dnl Check for gperf.
-AC_CHECK_PROG([GPERF],[gperf],[gperf],[no])
-test "x$GPERF" = "xno" &&
- AC_MSG_ERROR([gperf must be installed])
-
-dnl Check for genisoimage/mkisofs
-AC_PATH_PROGS([GENISOIMAGE],[genisoimage mkisofs],[no],
- [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
-test "x$GENISOIMAGE" = "xno" && AC_MSG_ERROR([genisoimage
must be installed])
-
-dnl Check for optional xmllint.
-AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no])
-AM_CONDITIONAL([HAVE_XMLLINT],[test "x$XMLLINT" != "xno"])
-
-dnl po4a for translating man pages and POD files (optional).
-AC_CHECK_PROG([PO4A],[po4a],[po4a],[no])
-AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
-
-dnl Check for db_dump, db_load (optional).
-GUESTFS_FIND_DB_TOOL([DB_DUMP], [dump])
-GUESTFS_FIND_DB_TOOL([DB_LOAD], [load])
-if test "x$DB_DUMP" != "xno"; then
- AC_DEFINE_UNQUOTED([DB_DUMP],["$DB_DUMP"],[Name of db_dump program.])
-fi
-if test "x$DB_LOAD" != "xno"; then
- AC_DEFINE_UNQUOTED([DB_LOAD],["$DB_LOAD"],[Name of db_load program.])
-fi
-
-dnl Check for netpbm programs (optional).
-AC_PATH_PROGS([PBMTEXT],[pbmtext],[no])
-AC_PATH_PROGS([PNMTOPNG],[pnmtopng],[no])
-AC_PATH_PROGS([BMPTOPNM],[bmptopnm],[no])
-AC_PATH_PROGS([PAMCUT],[pamcut],[no])
-if test "x$PBMTEXT" != "xno"; then
- AC_DEFINE_UNQUOTED([PBMTEXT],["$PBMTEXT"],[Name of pbmtext program.])
-fi
-if test "x$PNMTOPNG" != "xno"; then
- AC_DEFINE_UNQUOTED([PNMTOPNG],["$PNMTOPNG"],[Name of pnmtopng program.])
-fi
-if test "x$BMPTOPNM" != "xno"; then
- AC_DEFINE_UNQUOTED([BMPTOPNM],["$BMPTOPNM"],[Name of bmptopnm program.])
-fi
-if test "x$PAMCUT" != "xno"; then
- AC_DEFINE_UNQUOTED([PAMCUT],["$PAMCUT"],[Name of pamcut program.])
-fi
-
-dnl Check for icoutils (optional).
-AC_PATH_PROGS([WRESTOOL],[wrestool],[no])
-if test "x$WRESTOOL" != "xno"; then
- AC_DEFINE_UNQUOTED([WRESTOOL],["$WRESTOOL"],[Name of wrestool program.])
-fi
-
-dnl Check for xzcat (required).
-AC_PATH_PROGS([XZCAT],[xzcat],[no])
-test "x$XZCAT" = "xno" && AC_MSG_ERROR([xzcat must be
installed])
-AC_DEFINE_UNQUOTED([XZCAT],["$XZCAT"],[Name of xzcat program.])
-
dnl liblzma can be used by virt-builder (optional).
PKG_CHECK_MODULES([LIBLZMA], [liblzma], [
AC_SUBST([LIBLZMA_CFLAGS])
@@ -722,25 +644,6 @@ PKG_CHECK_MODULES([LIBLZMA], [liblzma], [
],
[AC_MSG_WARN([liblzma not found, virt-builder will be slower])])
-dnl (f)lex and bison for virt-builder (required).
-dnl XXX Could be optional with some work.
-AC_PROG_LEX
-AC_PROG_YACC
-dnl These macros don't fail, instead they set some useless defaults.
-if test "x$LEX" = "x:"; then
- AC_MSG_FAILURE([GNU 'flex' is required.])
-fi
-if test "x$YACC" = "xyacc"; then
- AC_MSG_FAILURE([GNU 'bison' is required (yacc won't work).])
-fi
-
-dnl zip/unzip, used by virt-v2v
-AC_PATH_PROGS([ZIP],[zip],[no])
-AC_DEFINE_UNQUOTED([ZIP],["$ZIP"],[Name of zip program.])
-AM_CONDITIONAL([HAVE_ZIP],[test "x$ZIP" != "xno"])
-AC_PATH_PROGS([UNZIP],[unzip],[no])
-AC_DEFINE_UNQUOTED([UNZIP],["$UNZIP"],[Name of unzip program.])
-
dnl Check for QEMU.
m4_include([m4/guestfs_qemu.m4])
@@ -917,17 +820,6 @@ AS_IF([$CXX --version >&AS_MESSAGE_LOG_FD
2>&1],[have_cxx=yes],[have_cxx=no])
AC_MSG_RESULT([$have_cxx])
AM_CONDITIONAL([HAVE_CXX], [test "$have_cxx" = "yes"])
-AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no])
-AS_IF([test "x$VALGRIND" != "xno"],[
- # Substitute the whole valgrind command.
- VG='$(VALGRIND) --vgdb=no
--log-file=$(abs_top_builddir)/tmp/valgrind-%q{T}-%p.log --leak-check=full
--error-exitcode=119 --suppressions=$(abs_top_srcdir)/valgrind-suppressions'
- ],[
- # No valgrind, so substitute VG with something that will break.
- VG=VALGRIND_IS_NOT_INSTALLED
-])
-AC_SUBST([VG])
-AM_SUBST_NOTMAKE([VG])
-
dnl Check for language bindings.
m4_include([m4/guestfs_ocaml.m4])
m4_include([m4/guestfs_perl.m4])
diff --git a/m4/guestfs_progs.m4 b/m4/guestfs_progs.m4
new file mode 100644
index 0000000..47ba908
--- /dev/null
+++ b/m4/guestfs_progs.m4
@@ -0,0 +1,134 @@
+# libguestfs
+# Copyright (C) 2009-2015 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Check for external programs required to either build or run
+# libguestfs.
+#
+# AC_CHECK_PROG(S) or AC_PATH_PROG(S)?
+#
+# Use AC_CHECK_PROG(S) for programs which are only used during build.
+#
+# Use AC_PATH_PROG(S) for program names which are compiled into the
+# binary and used at run time. The reason is so that we know which
+# programs the binary actually uses.
+
+# Define $(SED).
+m4_ifdef([AC_PROG_SED],[
+ AC_PROG_SED
+],[
+ dnl ... else hope for the best
+ AC_SUBST([SED], "sed")
+])
+
+# Define $(AWK).
+AC_PROG_AWK
+
+AC_PROG_LIBTOOL
+AC_PROG_LN_S
+
+dnl Check for cpio which isn't in the default Pardus install amazingly.
+AC_CHECK_PROG([CPIO],[cpio],[cpio],[no])
+test "x$CPIO" = "xno" &&
+ AC_MSG_ERROR([cpio must be installed])
+
+dnl Check for gperf.
+AC_CHECK_PROG([GPERF],[gperf],[gperf],[no])
+test "x$GPERF" = "xno" &&
+ AC_MSG_ERROR([gperf must be installed])
+
+dnl Check for genisoimage/mkisofs
+AC_PATH_PROGS([GENISOIMAGE],[genisoimage mkisofs],[no],
+ [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
+test "x$GENISOIMAGE" = "xno" && AC_MSG_ERROR([genisoimage
must be installed])
+
+dnl Check for optional xmllint.
+AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no])
+AM_CONDITIONAL([HAVE_XMLLINT],[test "x$XMLLINT" != "xno"])
+
+dnl po4a for translating man pages and POD files (optional).
+AC_CHECK_PROG([PO4A],[po4a],[po4a],[no])
+AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
+
+dnl Check for db_dump, db_load (optional).
+GUESTFS_FIND_DB_TOOL([DB_DUMP], [dump])
+GUESTFS_FIND_DB_TOOL([DB_LOAD], [load])
+if test "x$DB_DUMP" != "xno"; then
+ AC_DEFINE_UNQUOTED([DB_DUMP],["$DB_DUMP"],[Name of db_dump program.])
+fi
+if test "x$DB_LOAD" != "xno"; then
+ AC_DEFINE_UNQUOTED([DB_LOAD],["$DB_LOAD"],[Name of db_load program.])
+fi
+
+dnl Check for netpbm programs (optional).
+AC_PATH_PROGS([PBMTEXT],[pbmtext],[no])
+AC_PATH_PROGS([PNMTOPNG],[pnmtopng],[no])
+AC_PATH_PROGS([BMPTOPNM],[bmptopnm],[no])
+AC_PATH_PROGS([PAMCUT],[pamcut],[no])
+if test "x$PBMTEXT" != "xno"; then
+ AC_DEFINE_UNQUOTED([PBMTEXT],["$PBMTEXT"],[Name of pbmtext program.])
+fi
+if test "x$PNMTOPNG" != "xno"; then
+ AC_DEFINE_UNQUOTED([PNMTOPNG],["$PNMTOPNG"],[Name of pnmtopng program.])
+fi
+if test "x$BMPTOPNM" != "xno"; then
+ AC_DEFINE_UNQUOTED([BMPTOPNM],["$BMPTOPNM"],[Name of bmptopnm program.])
+fi
+if test "x$PAMCUT" != "xno"; then
+ AC_DEFINE_UNQUOTED([PAMCUT],["$PAMCUT"],[Name of pamcut program.])
+fi
+
+dnl Check for icoutils (optional).
+AC_PATH_PROGS([WRESTOOL],[wrestool],[no])
+if test "x$WRESTOOL" != "xno"; then
+ AC_DEFINE_UNQUOTED([WRESTOOL],["$WRESTOOL"],[Name of wrestool program.])
+fi
+
+dnl Check for xzcat (required).
+AC_PATH_PROGS([XZCAT],[xzcat],[no])
+test "x$XZCAT" = "xno" && AC_MSG_ERROR([xzcat must be
installed])
+AC_DEFINE_UNQUOTED([XZCAT],["$XZCAT"],[Name of xzcat program.])
+
+dnl (f)lex and bison for virt-builder (required).
+dnl XXX Could be optional with some work.
+AC_PROG_LEX
+AC_PROG_YACC
+dnl These macros don't fail, instead they set some useless defaults.
+if test "x$LEX" = "x:"; then
+ AC_MSG_FAILURE([GNU 'flex' is required.])
+fi
+if test "x$YACC" = "xyacc"; then
+ AC_MSG_FAILURE([GNU 'bison' is required (yacc won't work).])
+fi
+
+dnl zip/unzip, used by virt-v2v
+AC_PATH_PROGS([ZIP],[zip],[no])
+AC_DEFINE_UNQUOTED([ZIP],["$ZIP"],[Name of zip program.])
+AM_CONDITIONAL([HAVE_ZIP],[test "x$ZIP" != "xno"])
+AC_PATH_PROGS([UNZIP],[unzip],[no])
+AC_DEFINE_UNQUOTED([UNZIP],["$UNZIP"],[Name of unzip program.])
+
+dnl Check for valgrind
+AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind],[no])
+AS_IF([test "x$VALGRIND" != "xno"],[
+ # Substitute the whole valgrind command.
+ VG='$(VALGRIND) --vgdb=no
--log-file=$(abs_top_builddir)/tmp/valgrind-%q{T}-%p.log --leak-check=full
--error-exitcode=119 --suppressions=$(abs_top_srcdir)/valgrind-suppressions'
+ ],[
+ # No valgrind, so substitute VG with something that will break.
+ VG=VALGRIND_IS_NOT_INSTALLED
+])
+AC_SUBST([VG])
+AM_SUBST_NOTMAKE([VG])
--
2.5.0