# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-AC_INIT([libguestfs],[1.0.27])
+AC_INIT([libguestfs],[1.0.50])
AM_INIT_AUTOMAKE
AC_CONFIG_MACRO_DIR([m4])
test "x$POD2TEXT" = "xno" &&
AC_MSG_ERROR([pod2text must be installed])
+dnl Check for mksquashfs.
+AC_PATH_PROGS([MKSQUASHFS],[mksquashfs],[no],
+ [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
+test "x$MKSQUASHFS" = "xno" && AC_MSG_ERROR([mksquashfs must be installed])
+
dnl Check for QEMU for running binaries on this $host_cpu, fall
dnl back to basic 'qemu'. Allow the user to override it.
default_qemu="qemu-kvm qemu-system-$host_cpu qemu"
dnl Check for febootstrap etc.
AC_CHECK_PROG([FEBOOTSTRAP],
[febootstrap],[febootstrap],[no])
-test "x$FEBOOTSTRAP" = "xno" && \
- AC_MSG_ERROR([febootstrap must be installed])
-AC_CHECK_PROG([FEBOOTSTRAP_RUN],
+if test "x$FEBOOTSTRAP" != "xno"; then
+ AC_CHECK_PROG([FEBOOTSTRAP_RUN],
[febootstrap-run],[febootstrap-run],[no])
-test "x$FEBOOTSTRAP_RUN" = "xno" && \
+ test "x$FEBOOTSTRAP_RUN" = "xno" && \
AC_MSG_ERROR([febootstrap-run must be installed])
-AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
+ AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
[febootstrap-install],[febootstrap-install],[no])
-test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
+ test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
AC_MSG_ERROR([febootstrap-install must be installed])
-AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
+ AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
[febootstrap-minimize],[febootstrap-minimize],[no])
-test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
+ test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
AC_MSG_ERROR([febootstrap-minimize must be installed])
-AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
+ AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
[febootstrap-to-initramfs],[febootstrap-to-initramfs],[no])
-test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
+ test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
AC_MSG_ERROR([febootstrap-to-initramfs must be installed])
-dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
-dnl of febootstrap, but old versions will fail with yum).
-AC_CHECK_PROG([FAKECHROOT],
+ dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
+ dnl of febootstrap, but old versions will fail with yum).
+ AC_CHECK_PROG([FAKECHROOT],
[fakechroot],[fakechroot],[no])
-test "x$FAKECHROOT" = "xno" && \
+ test "x$FAKECHROOT" = "xno" && \
AC_MSG_ERROR([fakechroot must be installed])
-AC_MSG_CHECKING([fakechroot version])
-fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'`
-if test -z "$fakechroot_version"; then
+ AC_MSG_CHECKING([fakechroot version])
+ fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'`
+ if test -z "$fakechroot_version"; then
AC_MSG_RESULT([failed])
AC_MSG_WARN([fakechroot --version command failed, proceeding anyway])
-else
+ else
AC_MSG_RESULT([$fakechroot_version])
fakechroot_major=`echo $fakechroot_version | awk -F. '{print $1}'`
fakechroot_minor=`echo $fakechroot_version | awk -F. '{print $2}'`
\( "$fakechroot_major" -eq 2 -a "$fakechroot_minor" -lt 9 \); then
AC_MSG_ERROR([fakechroot version must be >= 2.9])
fi
+ fi
+else
+ # check for debootstrap and debirf
+ AC_CHECK_PROG([DEBOOTSTRAP],
+ [debootstrap],[debootstrap],[no])
+ test "x$DEBOOTSTRAP" = "xno" && \
+ AC_MSG_ERROR([Either febootstrap or debootstrap must be installed])
+ AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
+ test "x$DEBIRF" = "xno" &&
+ AC_MSG_ERROR([debirf must be installed])
fi
+
dnl --with-repo to specify a Fedora repository.
AC_ARG_WITH([repo],
[AS_HELP_STRING([--with-repo],
dnl --with-updates to specify a Fedora updates repository.
AC_ARG_WITH([updates],
[AS_HELP_STRING([--with-updates],
- [set name of Fedora updates repository @<:@default=updates-released-f10@:>@])],
+ [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])],
[],
[with_updates=updates-released-f11])
UPDATES="$with_updates"
MIRROR="$with_mirror"
AC_SUBST(MIRROR)
+dnl Build the supermin appliance? Please see README file before
+dnl enabling this option.
+AC_ARG_ENABLE([supermin],
+ [AS_HELP_STRING([--enable-supermin],
+ [enable supermin appliance (see README) @<:@default=no@:>@])],
+ [],
+ [enable_supermin=no])
+AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
+
+if test "x$enable_supermin" = "xyes"; then
+ dnl Check febootstrap-to-initramfs accepts the --files option
+ dnl (febootstrap >= 2.2).
+ AC_MSG_CHECKING([for --files support in $FEBOOTSTRAP_TO_INITRAMFS])
+ out=`$FEBOOTSTRAP_TO_INITRAMFS 2>&1 ||:`
+ echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
+ if ! echo $out | grep -sq -- "--files" ; then
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE(
+[febootstrap-to-initramfs does not support the --files option.
+
+To build the supermin appliance, you need to upgrade to the latest
+version of febootstrap.
+])
+ fi
+ AC_MSG_RESULT([yes])
+
+ dnl Check febootstrap-to-initramfs accepts the --nocompress option
+ dnl (febootstrap >= 2.3).
+ AC_MSG_CHECKING([for --nocompress support in $FEBOOTSTRAP_TO_INITRAMFS])
+ out=`$FEBOOTSTRAP_TO_INITRAMFS 2>&1 ||:`
+ echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
+ if ! echo $out | grep -sq -- "--nocompress" ; then
+ AC_MSG_RESULT([no])
+ AC_MSG_FAILURE(
+[febootstrap-to-initramfs does not support the --nocompress option.
+
+To build the supermin appliance, you need to upgrade to the latest
+version of febootstrap.
+])
+ fi
+ AC_MSG_RESULT([yes])
+fi
+
dnl Readline.
AC_ARG_WITH([readline],
[AS_HELP_STRING([--with-readline],
dnl For i18n.
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.17])
+AM_GNU_GETTEXT_VERSION([0.14])
dnl Check for OCaml (optional, for OCaml bindings).
AC_PROG_OCAML
AC_MSG_FAILURE([$with_java_home is not a directory (use --with-java-home=no to disable Java support)])
fi
fi
+
if test "x$JAVA_HOME" = "x"; then
- JAVA_HOME=/usr/lib/jvm/java
- fi
- AC_MSG_CHECKING(for JDK in $JAVA_HOME)
- if test ! -x "$JAVA_HOME/bin/java"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
- else
- JAVA="$JAVA_HOME/bin/java"
- fi
- if test ! -x "$JAVA_HOME/bin/javac"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/javac binary])
- else
- JAVAC="$JAVA_HOME/bin/javac"
- fi
- if test ! -x "$JAVA_HOME/bin/javah"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/javah binary])
- else
- JAVAH="$JAVA_HOME/bin/javah"
- fi
- if test ! -x "$JAVA_HOME/bin/javadoc"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/javadoc binary])
- else
- JAVADOC="$JAVA_HOME/bin/javadoc"
- fi
- if test ! -x "$JAVA_HOME/bin/jar"; then
- AC_MSG_ERROR([missing $JAVA_HOME/bin/jar binary])
- else
- JAR="$JAVA_HOME/bin/jar"
+ # Look for Java in some likely locations.
+ for d in \
+ /usr/lib/jvm/java \
+ /usr/lib/jvm/java-6-openjdk
+ do
+ if test -d $d -a -f $d/bin/java; then
+ JAVA_HOME=$d
+ break
+ fi
+ done
fi
- java_version=`$JAVA -version 2>&1 | grep "java version"`
- AC_MSG_RESULT(found $java_version in $JAVA_HOME)
- dnl Find jni.h.
- AC_MSG_CHECKING([for jni.h])
- if test -f "$JAVA_HOME/include/jni.h"; then
- JNI_CFLAGS="-I$JAVA_HOME/include"
- else
- if test "`find $JAVA_HOME -name jni.h`" != ""; then
- head=`find $JAVA_HOME -name jni.h | tail -1`
- dir=`dirname $head`
- JNI_CFLAGS="-I$dir"
- else
- AC_MSG_FAILURE([missing jni.h header file])
- fi
- fi
- AC_MSG_RESULT([$JNI_CFLAGS])
-
- dnl Find jni_md.h.
- AC_MSG_CHECKING([for jni_md.h])
- case "$build_os" in
- *linux*) system="linux" ;;
- *SunOS*) system="solaris" ;;
- *cygwin*) system="win32" ;;
- *) system="$build_os" ;;
- esac
- if test -f "$JAVA_HOME/include/$system/jni_md.h"; then
- JNI_CFLAGS="$JNI_CFLAGS -I$JAVA_HOME/include/$system"
- else
- if test "`find $JAVA_HOME -name jni_md.h`" != ""; then
- head=`find $JAVA_HOME -name jni_md.h | tail -1`
- dir=`dirname $head`
- JNI_CFLAGS="$JNI_CFLAGS -I$dir"
- else
- AC_MSG_FAILURE([missing jni_md.h header file])
- fi
+ if test "x$JAVA_HOME" != "x"; then
+ AC_MSG_CHECKING(for JDK in $JAVA_HOME)
+ if test ! -x "$JAVA_HOME/bin/java"; then
+ AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
+ else
+ JAVA="$JAVA_HOME/bin/java"
+ fi
+ if test ! -x "$JAVA_HOME/bin/javac"; then
+ AC_MSG_ERROR([missing $JAVA_HOME/bin/javac binary])
+ else
+ JAVAC="$JAVA_HOME/bin/javac"
+ fi
+ if test ! -x "$JAVA_HOME/bin/javah"; then
+ AC_MSG_ERROR([missing $JAVA_HOME/bin/javah binary])
+ else
+ JAVAH="$JAVA_HOME/bin/javah"
+ fi
+ if test ! -x "$JAVA_HOME/bin/javadoc"; then
+ AC_MSG_ERROR([missing $JAVA_HOME/bin/javadoc binary])
+ else
+ JAVADOC="$JAVA_HOME/bin/javadoc"
+ fi
+ if test ! -x "$JAVA_HOME/bin/jar"; then
+ AC_MSG_ERROR([missing $JAVA_HOME/bin/jar binary])
+ else
+ JAR="$JAVA_HOME/bin/jar"
+ fi
+ java_version=`$JAVA -version 2>&1 | grep "java version"`
+ AC_MSG_RESULT(found $java_version in $JAVA_HOME)
+
+ dnl Find jni.h.
+ AC_MSG_CHECKING([for jni.h])
+ if test -f "$JAVA_HOME/include/jni.h"; then
+ JNI_CFLAGS="-I$JAVA_HOME/include"
+ else
+ if test "`find $JAVA_HOME -name jni.h`" != ""; then
+ head=`find $JAVA_HOME -name jni.h | tail -1`
+ dir=`dirname $head`
+ JNI_CFLAGS="-I$dir"
+ else
+ AC_MSG_FAILURE([missing jni.h header file])
+ fi
+ fi
+ AC_MSG_RESULT([$JNI_CFLAGS])
+
+ dnl Find jni_md.h.
+ AC_MSG_CHECKING([for jni_md.h])
+ case "$build_os" in
+ *linux*) system="linux" ;;
+ *SunOS*) system="solaris" ;;
+ *cygwin*) system="win32" ;;
+ *) system="$build_os" ;;
+ esac
+ if test -f "$JAVA_HOME/include/$system/jni_md.h"; then
+ JNI_CFLAGS="$JNI_CFLAGS -I$JAVA_HOME/include/$system"
+ else
+ if test "`find $JAVA_HOME -name jni_md.h`" != ""; then
+ head=`find $JAVA_HOME -name jni_md.h | tail -1`
+ dir=`dirname $head`
+ JNI_CFLAGS="$JNI_CFLAGS -I$dir"
+ else
+ AC_MSG_FAILURE([missing jni_md.h header file])
+ fi
+ fi
+ AC_MSG_RESULT([$JNI_CFLAGS])
+
+ dnl Need extra version flag?
+ AC_MSG_CHECKING([extra javac flags])
+ JAVAC_FLAGS=
+ javac_version=`$JAVAC -version 2>&1`
+ case "$javac_version" in
+ *Eclipse*)
+ JAVAC_FLAGS="-source 1.5" ;;
+ esac
+ AC_MSG_RESULT([$JAVAC_FLAGS])
+
+ dnl Where to install jarfiles.
+ dnl XXX How to make it configurable?
+ JAR_INSTALL_DIR=\${prefix}/share/java
+ JNI_INSTALL_DIR=\${libdir}
+
+ dnl JNI version.
+ jni_major_version=`echo $VERSION | awk -F. '{print $1}'`
+ jni_minor_version=`echo $VERSION | awk -F. '{print $2}'`
+ jni_micro_version=`echo $VERSION | awk -F. '{print $3}'`
+ JNI_VERSION_INFO=`expr $jni_major_version + $jni_minor_version`:$jni_micro_version:$jni_minor_version
fi
- AC_MSG_RESULT([$JNI_CFLAGS])
-
- dnl Need extra version flag?
- AC_MSG_CHECKING([extra javac flags])
- JAVAC_FLAGS=
- javac_version=`$JAVAC -version 2>&1`
- case "$javac_version" in
- *Eclipse*)
- JAVAC_FLAGS="-source 1.5" ;;
- esac
- AC_MSG_RESULT([$JAVAC_FLAGS])
-
- dnl Where to install jarfiles.
- dnl XXX How to make it configurable?
- JAR_INSTALL_DIR=\${prefix}/share/java
- JNI_INSTALL_DIR=\${libdir}
-
- dnl JNI version.
- jni_major_version=`echo $VERSION | awk -F. '{print $1}'`
- jni_minor_version=`echo $VERSION | awk -F. '{print $2}'`
- jni_micro_version=`echo $VERSION | awk -F. '{print $3}'`
- JNI_VERSION_INFO=`expr $jni_major_version + $jni_minor_version`:$jni_micro_version:$jni_minor_version
fi
AC_SUBST(JAVA_HOME)
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile
src/Makefile fish/Makefile po/Makefile.in examples/Makefile
+ appliance/Makefile
+ appliance/make.sh appliance/update.sh
+ appliance/supermin-split.sh appliance/supermin-make.sh
+ appliance/libguestfs-supermin-helper
images/Makefile
+ capitests/Makefile
+ regressions/Makefile
ocaml/Makefile ocaml/examples/Makefile
perl/Makefile
python/Makefile
java/Makefile
haskell/Makefile
inspector/Makefile
- make-initramfs.sh update-initramfs.sh
libguestfs.pc
ocaml/META perl/Makefile.PL])
AC_OUTPUT
dnl WTF?
-chmod +x make-initramfs.sh update-initramfs.sh
+chmod +x appliance/*.sh appliance/libguestfs-supermin-helper
dnl Produce summary.
echo
if test "x$HAVE_HASKELL" = "x"; then echo "yes"; else echo "no"; fi
echo -n "virt-inspector ...................... "
if test "x$HAVE_INSPECTOR" = "x"; then echo "yes"; else echo "no"; fi
+echo "supermin appliance .................. $enable_supermin"
echo
echo "If any optional component is configured 'no' when you expected 'yes'"
echo "then you should check the preceeding messages."