16e16c8f7427a70585a7bdbcc91b1050c465c9e9
[libguestfs.git] / configure.ac
1 # libguestfs
2 # Copyright (C) 2009 Red Hat Inc.
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 # major/minor/release must be numbers
19 m4_define([libguestfs_major],   [1])
20 m4_define([libguestfs_minor],   [0])
21 m4_define([libguestfs_release], [65])
22 # extra can be any string
23 m4_define([libguestfs_extra],   [])
24
25 AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release[]libguestfs_extra)
26 AM_INIT_AUTOMAKE([foreign])
27
28 AC_CONFIG_MACRO_DIR([m4])
29
30 AC_PROG_LIBTOOL
31
32 dnl Split up the version string.
33 AC_DEFINE([PACKAGE_VERSION_MAJOR],[libguestfs_major],[Major version number])
34 AC_DEFINE([PACKAGE_VERSION_MINOR],[libguestfs_minor],[Minor version number])
35 AC_DEFINE([PACKAGE_VERSION_RELEASE],[libguestfs_release],[Release number])
36 AC_DEFINE([PACKAGE_VERSION_EXTRA],["libguestfs_extra"],[Extra version string])
37
38 dnl Check for basic C environment.
39 AC_PROG_CC_STDC
40 AC_PROG_INSTALL
41 AC_PROG_CPP
42
43 AC_C_PROTOTYPES
44 test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant])
45
46 AM_PROG_CC_C_O
47
48 dnl Check support for 64 bit file offsets.
49 AC_SYS_LARGEFILE
50
51 dnl Check sizeof long.
52 AC_CHECK_SIZEOF([long])
53
54 dnl Headers.
55 AC_CHECK_HEADERS([errno.h sys/types.h sys/un.h sys/wait.h sys/socket.h])
56
57 dnl Check for rpcgen and XDR library.  rpcgen is optional.
58 AC_CHECK_PROG([RPCGEN],[rpcgen],[rpcgen],[no])
59 AM_CONDITIONAL([HAVE_RPCGEN],[test "x$RPCGEN" != "xno"])
60 AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
61         AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
62         ])
63
64 dnl Check for pod2man and pod2text.
65 AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no])
66 test "x$POD2MAN" = "xno" &&
67      AC_MSG_ERROR([pod2man must be installed])
68 AC_CHECK_PROG([POD2TEXT],[pod2text],[pod2text],[no])
69 test "x$POD2TEXT" = "xno" &&
70      AC_MSG_ERROR([pod2text must be installed])
71
72 dnl Check for mksquashfs.
73 AC_PATH_PROGS([MKSQUASHFS],[mksquashfs],[no],
74         [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin])
75 test "x$MKSQUASHFS" = "xno" && AC_MSG_ERROR([mksquashfs must be installed])
76
77 dnl Check for QEMU for running binaries on this $host_cpu, fall
78 dnl back to basic 'qemu'.  Allow the user to override it.
79 default_qemu="qemu-kvm qemu-system-$host_cpu qemu"
80 AC_ARG_WITH([qemu],
81         [AS_HELP_STRING([--with-qemu],
82           [set default QEMU binary @<:@default=[qemu-kvm] qemu-system-<host> qemu@:>@])],
83         [],
84         [with_qemu="$default_qemu"])
85 AC_PATH_PROGS([QEMU],[$with_qemu],[no],
86         [$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/libexec])
87 test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be installed])
88 AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
89
90 dnl Check that the chosen qemu has vmchannel support.
91 dnl http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
92 if test "x$vmchannel_test" != "xno"; then
93     AC_MSG_CHECKING([for "guestfwd" support in $QEMU])
94     if $QEMU --help | grep -sq guestfwd; then
95         AC_MSG_RESULT([yes])
96     else
97         AC_MSG_RESULT([no])
98         AC_MSG_CHECKING([for "-net channel" support in $QEMU])
99         vmchannelout=`$QEMU -net channel /dev/zero 2>&1 ||:`
100         echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD
101         if echo $vmchannelout | grep -sq "vmchannel wrong port number" ; then
102             AC_MSG_RESULT([yes])
103         else
104             AC_MSG_RESULT([no])
105             AC_MSG_FAILURE(
106 [I did not find vmchannel support in $QEMU.
107
108 vmchannel support is vital for libguestfs to operate.  You need a version
109 of qemu >= 0.10, or the following patch backported to earlier versions:
110
111 http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg01042.html
112
113 You can override this test by setting the environment variable
114 vmchannel_test=no  However if you don't have vmchannel support
115 in your qemu, then this just delays the pain.
116
117 If I am using the wrong qemu or you want to compile qemu from source
118 and install it in another location, then you should configure with
119 the --with-qemu option.
120 ])
121         fi
122     fi
123 fi
124
125 dnl Set drive interface used by the guestfs_add_drive{,_ro} calls
126 dnl ('-drive ...,if=...' option to qemu).
127 dnl
128 dnl NB. We will change the default in future to virtio, but at the
129 dnl moment this causes a performance problem, RHBZ#509383.
130 AC_ARG_WITH([drive-if],
131         [AS_HELP_STRING([--with-drive-if],
132           [set default driver (ide|scsi|virtio) @<:@default=ide@:>@])],
133         [],
134         [with_drive_if=ide])
135 AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.])
136
137 dnl Check for febootstrap etc.
138 AC_CHECK_PROG([FEBOOTSTRAP],
139         [febootstrap],[febootstrap],[no])
140 if test "x$FEBOOTSTRAP" != "xno"; then
141   AC_CHECK_PROG([FEBOOTSTRAP_RUN],
142         [febootstrap-run],[febootstrap-run],[no])
143   test "x$FEBOOTSTRAP_RUN" = "xno" && \
144      AC_MSG_ERROR([febootstrap-run must be installed])
145   AC_CHECK_PROG([FEBOOTSTRAP_INSTALL],
146         [febootstrap-install],[febootstrap-install],[no])
147   test "x$FEBOOTSTRAP_INSTALL" = "xno" && \
148      AC_MSG_ERROR([febootstrap-install must be installed])
149   AC_CHECK_PROG([FEBOOTSTRAP_MINIMIZE],
150         [febootstrap-minimize],[febootstrap-minimize],[no])
151   test "x$FEBOOTSTRAP_MINIMIZE" = "xno" && \
152      AC_MSG_ERROR([febootstrap-minimize must be installed])
153   AC_CHECK_PROG([FEBOOTSTRAP_TO_INITRAMFS],
154         [febootstrap-to-initramfs],[febootstrap-to-initramfs],[no])
155   test "x$FEBOOTSTRAP_TO_INITRAMFS" = "xno" && \
156      AC_MSG_ERROR([febootstrap-to-initramfs must be installed])
157
158   dnl Check we have fakechroot >= 2.9 (it's an indirect requirement
159   dnl of febootstrap, but old versions will fail with yum).
160   AC_CHECK_PROG([FAKECHROOT],
161         [fakechroot],[fakechroot],[no])
162   test "x$FAKECHROOT" = "xno" && \
163     AC_MSG_ERROR([fakechroot must be installed])
164
165   AC_MSG_CHECKING([fakechroot version])
166   fakechroot_version=`$FAKECHROOT --version | awk '{print $3}'`
167   if test -z "$fakechroot_version"; then
168     AC_MSG_RESULT([failed])
169     AC_MSG_WARN([fakechroot --version command failed, proceeding anyway])
170   else
171     AC_MSG_RESULT([$fakechroot_version])
172     fakechroot_major=`echo $fakechroot_version | awk -F. '{print $1}'`
173     fakechroot_minor=`echo $fakechroot_version | awk -F. '{print $2}'`
174     if test "$fakechroot_major" -lt 2 -o \
175             \( "$fakechroot_major" -eq 2 -a "$fakechroot_minor" -lt 9 \); then
176         AC_MSG_ERROR([fakechroot version must be >= 2.9])
177     fi
178   fi
179   DIST="REDHAT"
180 else
181   # check for debootstrap and debirf
182   AC_CHECK_PROG([DEBOOTSTRAP],
183         [debootstrap],[debootstrap],[no])
184   test "x$DEBOOTSTRAP" = "xno" && \
185         AC_MSG_ERROR([Either febootstrap or debootstrap must be installed])
186   AC_CHECK_PROG([DEBIRF],[debirf],[debirf],[no])
187   test "x$DEBIRF" = "xno" &&
188         AC_MSG_ERROR([debirf must be installed])
189   DIST="DEBIAN"
190   case $host_cpu in
191       *86)
192           DEBIAN_KERNEL_ARCH=486
193           ;;
194       x86_64)
195           DEBIAN_KERNEL_ARCH=amd64
196           ;;
197       *)
198          DEBIAN_KERNEL_ARCH=$host_cpu
199          ;;
200    esac
201    AC_SUBST(DEBIAN_KERNEL_ARCH)
202 fi
203 AC_SUBST(DIST)
204
205
206 dnl --with-repo to specify a Fedora repository.
207 AC_ARG_WITH([repo],
208         [AS_HELP_STRING([--with-repo],
209           [set name of Fedora repository @<:@default=fedora-11@:>@])],
210         [],
211         [with_repo=fedora-11])
212 REPO="$with_repo"
213 AC_SUBST(REPO)
214 AC_DEFINE_UNQUOTED([REPO],["$REPO"],[Name of Fedora repository.])
215
216 dnl --with-updates to specify a Fedora updates repository.
217 AC_ARG_WITH([updates],
218         [AS_HELP_STRING([--with-updates],
219           [set name of Fedora updates repository @<:@default=updates-released-f11@:>@])],
220         [],
221         [with_updates=updates-released-f11])
222 UPDATES="$with_updates"
223 AC_SUBST(UPDATES)
224
225 dnl Define a symbol for the host CPU architecture.
226 AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.])
227
228 dnl --with-mirror to specify a local Fedora mirror.
229 AC_ARG_WITH([mirror],
230         [AS_HELP_STRING([--with-mirror],
231           [set URI of a local Fedora mirror])],
232         [],
233         [with_mirror=])
234 MIRROR="$with_mirror"
235 AC_SUBST(MIRROR)
236
237 dnl Build the supermin appliance?  Please see README file before
238 dnl enabling this option.
239 AC_ARG_ENABLE([supermin],
240         [AS_HELP_STRING([--enable-supermin],
241           [enable supermin appliance (see README) @<:@default=no@:>@])],
242         [],
243         [enable_supermin=no])
244 AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
245
246 if test "x$enable_supermin" = "xyes"; then
247     dnl Check febootstrap-to-initramfs accepts the --files option
248     dnl (febootstrap >= 2.2).
249     AC_MSG_CHECKING([for --files support in $FEBOOTSTRAP_TO_INITRAMFS])
250     out=`$FEBOOTSTRAP_TO_INITRAMFS 2>&1 ||:`
251     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
252     if ! echo "$out" | grep -sq -e --files ; then
253         AC_MSG_RESULT([no])
254         AC_MSG_FAILURE(
255 [febootstrap-to-initramfs does not support the --files option.
256
257 To build the supermin appliance, you need to upgrade to the latest
258 version of febootstrap.
259 ])
260     fi
261     AC_MSG_RESULT([yes])
262
263     dnl Check febootstrap-to-initramfs accepts the --nocompress option
264     dnl (febootstrap >= 2.3).
265     AC_MSG_CHECKING([for --nocompress support in $FEBOOTSTRAP_TO_INITRAMFS])
266     out=`$FEBOOTSTRAP_TO_INITRAMFS 2>&1 ||:`
267     echo "febootstrap_to_initramfs test command output: $out" >&AS_MESSAGE_LOG_FD
268     if ! echo "$out" | grep -sq -e --nocompress ; then
269         AC_MSG_RESULT([no])
270         AC_MSG_FAILURE(
271 [febootstrap-to-initramfs does not support the --nocompress option.
272
273 To build the supermin appliance, you need to upgrade to the latest
274 version of febootstrap.
275 ])
276     fi
277     AC_MSG_RESULT([yes])
278 fi
279
280 dnl Readline.
281 AC_ARG_WITH([readline],
282     [AS_HELP_STRING([--with-readline],
283         [support fancy command line editing @<:@default=check@:>@])],
284     [],
285     [with_readline=check])
286
287 LIBREADLINE=
288 AS_IF([test "x$with_readline" != xno],
289     [AC_CHECK_LIB([readline], [main],
290         [AC_SUBST([LIBREADLINE], ["-lreadline -lncurses"])
291          AC_DEFINE([HAVE_LIBREADLINE], [1],
292                    [Define if you have libreadline])
293         ],
294         [if test "x$with_readline" != xcheck; then
295          AC_MSG_FAILURE(
296              [--with-readline was given, but test for readline failed])
297          fi
298         ], -lncurses)])
299
300 dnl For i18n.
301 AM_GNU_GETTEXT([external])
302 AM_GNU_GETTEXT_VERSION([0.14])
303
304 dnl Check for OCaml (optional, for OCaml bindings).
305 AC_PROG_OCAML
306 AC_PROG_FINDLIB
307 AM_CONDITIONAL([HAVE_OCAML],[test "x$OCAMLC" != "xno" -a "x$OCAMLFIND" != "xno"])
308
309 dnl Check for Perl (optional, for Perl bindings).
310 dnl XXX This isn't quite right, we should check for Perl devel library.
311 AC_CHECK_PROG([PERL],[perl],[perl],[no])
312
313 dnl Check for Perl modules that must be present to compile and
314 dnl test the Perl bindings.
315 missing_perl_modules=no
316 for pm in Test::More Test::Pod Test::Pod::Coverage ExtUtils::MakeMaker; do
317     AC_MSG_CHECKING([for $pm])
318     if ! perl -M$pm -e1 >/dev/null 2>&1; then
319         AC_MSG_RESULT([no])
320         missing_perl_modules=yes
321     else
322         AC_MSG_RESULT([yes])
323     fi
324 done
325 if test "x$missing_perl_modules" = "xyes"; then
326     AC_MSG_WARN([some Perl modules required to compile or test the Perl bindings are missing])
327 fi
328
329 AM_CONDITIONAL([HAVE_PERL],
330     [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
331
332 dnl Check for Python (optional, for Python bindings).
333 AC_CHECK_PROG([PYTHON],[python],[python],[no])
334
335 PYTHON_PREFIX=
336 PYTHON_VERSION=
337 PYTHON_INCLUDEDIR=
338 PYTHON_SITE_PACKAGES=
339
340 if test "x$PYTHON" != "xno"; then
341     PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
342     PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
343     for d in \
344         $PYTHON_PREFIX/include/python$PYTHON_VERSION \
345         /usr/include/python$PYTHON_VERSION \
346         /usr/local/include/python$PYTHON_VERSION
347     do
348         AC_MSG_CHECKING([Python.h in $d])
349         if test -r "$d/Python.h"; then
350             AC_MSG_RESULT([found])
351             PYTHON_INCLUDEDIR=$d
352             break
353         fi
354         AC_MSG_RESULT([not found])
355     done
356     for d in \
357         $PYTHON_PREFIX/lib64/python$PYTHON_VERSION/site-packages \
358         $PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages \
359         /usr/lib64/python$PYTHON_VERSION/site-packages \
360         /usr/lib/python$PYTHON_VERSION/site-packages \
361         /usr/local/lib/python$PYTHON_VERSION/site-packages
362     do
363         AC_MSG_CHECKING([for $d])
364         if test -d "$d"; then
365             AC_MSG_RESULT([found])
366             PYTHON_SITE_PACKAGES=$d
367             break
368         fi
369         AC_MSG_RESULT([not found])
370     done
371 fi
372
373 AC_SUBST(PYTHON_PREFIX)
374 AC_SUBST(PYTHON_VERSION)
375 AC_SUBST(PYTHON_INCLUDEDIR)
376 AC_SUBST(PYTHON_SITE_PACKAGES)
377
378 AM_CONDITIONAL([HAVE_PYTHON],
379     [test "x$PYTHON_INCLUDEDIR" != "x" -a "x$PYTHON_SITE_PACKAGES" != "x"])
380
381 dnl Check for Ruby and rake (optional, for Ruby bindings).
382 AC_CHECK_LIB([ruby],[ruby_init],[HAVE_LIBRUBY=1],[HAVE_LIBRUBY=0])
383 AC_CHECK_PROG([RAKE],[rake],[rake],[no])
384
385 AM_CONDITIONAL([HAVE_RUBY],
386     [test "x$RAKE" != "xno" -a -n "$HAVE_LIBRUBY"])
387
388 dnl Check for Java.
389 AC_ARG_WITH(java_home,
390     [AS_HELP_STRING([--with-java-home],
391         [specify path to JDK directory @<:@default=check@:>@])],
392     [],
393     [with_java_home=check])
394
395 if test "x$with_java_home" != "xno"; then
396     if test "x$with_java_home" != "xyes" -a "x$with_java_home" != "xcheck"
397     then
398         if test -d "$with_java_home"; then
399             JAVA_HOME="$with_java_home"
400         else
401             AC_MSG_FAILURE([$with_java_home is not a directory (use --with-java-home=no to disable Java support)])
402         fi
403     fi
404
405     if test "x$JAVA_HOME" = "x"; then
406         # Look for Java in some likely locations.
407         for d in \
408             /usr/lib/jvm/java \
409             /usr/lib/jvm/java-6-openjdk
410         do
411             if test -d $d -a -f $d/bin/java; then
412                 JAVA_HOME=$d
413                 break
414             fi
415         done
416     fi
417
418     if test "x$JAVA_HOME" != "x"; then
419         AC_MSG_CHECKING(for JDK in $JAVA_HOME)
420         if test ! -x "$JAVA_HOME/bin/java"; then
421             AC_MSG_ERROR([missing $JAVA_HOME/bin/java binary (use --with-java-home=no to disable Java support)])
422         else
423             JAVA="$JAVA_HOME/bin/java"
424         fi
425         if test ! -x "$JAVA_HOME/bin/javac"; then
426             AC_MSG_ERROR([missing $JAVA_HOME/bin/javac binary])
427         else
428             JAVAC="$JAVA_HOME/bin/javac"
429         fi
430         if test ! -x "$JAVA_HOME/bin/javah"; then
431             AC_MSG_ERROR([missing $JAVA_HOME/bin/javah binary])
432         else
433             JAVAH="$JAVA_HOME/bin/javah"
434         fi
435         if test ! -x "$JAVA_HOME/bin/javadoc"; then
436             AC_MSG_ERROR([missing $JAVA_HOME/bin/javadoc binary])
437         else
438             JAVADOC="$JAVA_HOME/bin/javadoc"
439         fi
440         if test ! -x "$JAVA_HOME/bin/jar"; then
441             AC_MSG_ERROR([missing $JAVA_HOME/bin/jar binary])
442         else
443             JAR="$JAVA_HOME/bin/jar"
444         fi
445         java_version=`$JAVA -version 2>&1 | grep "java version"`
446         AC_MSG_RESULT(found $java_version in $JAVA_HOME)
447
448         dnl Find jni.h.
449         AC_MSG_CHECKING([for jni.h])
450         if test -f "$JAVA_HOME/include/jni.h"; then
451             JNI_CFLAGS="-I$JAVA_HOME/include"
452         else
453             if test "`find $JAVA_HOME -name jni.h`" != ""; then
454                 head=`find $JAVA_HOME -name jni.h | tail -1`
455                 dir=`dirname $head`
456                 JNI_CFLAGS="-I$dir"
457             else
458                 AC_MSG_FAILURE([missing jni.h header file])
459             fi
460         fi
461         AC_MSG_RESULT([$JNI_CFLAGS])
462
463         dnl Find jni_md.h.
464         AC_MSG_CHECKING([for jni_md.h])
465         case "$build_os" in
466         *linux*) system="linux" ;;
467         *SunOS*) system="solaris" ;;
468         *cygwin*) system="win32" ;;
469         *) system="$build_os" ;;
470         esac
471         if test -f "$JAVA_HOME/include/$system/jni_md.h"; then
472             JNI_CFLAGS="$JNI_CFLAGS -I$JAVA_HOME/include/$system"
473         else
474             if test "`find $JAVA_HOME -name jni_md.h`" != ""; then
475                 head=`find $JAVA_HOME -name jni_md.h | tail -1`
476                 dir=`dirname $head`
477                 JNI_CFLAGS="$JNI_CFLAGS -I$dir"
478             else
479                 AC_MSG_FAILURE([missing jni_md.h header file])
480             fi
481         fi
482         AC_MSG_RESULT([$JNI_CFLAGS])
483
484         dnl Need extra version flag?
485         AC_MSG_CHECKING([extra javac flags])
486         JAVAC_FLAGS=
487         javac_version=`$JAVAC -version 2>&1`
488         case "$javac_version" in
489         *Eclipse*)
490             JAVAC_FLAGS="-source 1.5" ;;
491         esac
492         AC_MSG_RESULT([$JAVAC_FLAGS])
493
494         dnl Where to install jarfiles.
495         dnl XXX How to make it configurable?
496         JAR_INSTALL_DIR=\${prefix}/share/java
497         JNI_INSTALL_DIR=\${libdir}
498
499         dnl JNI version.
500         jni_major_version=`echo $VERSION | awk -F. '{print $1}'`
501         jni_minor_version=`echo $VERSION | awk -F. '{print $2}'`
502         jni_micro_version=`echo $VERSION | awk -F. '{print $3}'`
503         JNI_VERSION_INFO=`expr $jni_major_version + $jni_minor_version`:$jni_micro_version:$jni_minor_version
504     fi
505 fi
506
507 AC_SUBST(JAVA_HOME)
508 AC_SUBST(JAVA)
509 AC_SUBST(JAVAC)
510 AC_SUBST(JAVAH)
511 AC_SUBST(JAVADOC)
512 AC_SUBST(JAR)
513 AC_SUBST(JNI_CFLAGS)
514 AC_SUBST(JAVAC_FLAGS)
515 AC_SUBST(JAR_INSTALL_DIR)
516 AC_SUBST(JNI_INSTALL_DIR)
517 AC_SUBST(JNI_VERSION_INFO)
518
519 AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC"])
520
521 dnl Check for Haskell (GHC).
522 AC_CHECK_PROG([GHC],[ghc],[ghc],[no])
523
524 AM_CONDITIONAL([HAVE_HASKELL],
525     [test "x$GHC" != "xno"])
526
527 dnl Check for Perl modules needed by virt-df, inspector, V2V etc.
528 missing_perl_modules=no
529 for pm in Pod::Usage Getopt::Long Sys::Virt Data::Dumper XML::Writer Locale::TextDomain; do
530     AC_MSG_CHECKING([for $pm])
531     if ! perl -M$pm -e1 >/dev/null 2>&1; then
532         AC_MSG_RESULT([no])
533         missing_perl_modules=yes
534     else
535         AC_MSG_RESULT([yes])
536     fi
537 done
538 if test "x$missing_perl_modules" = "xyes"; then
539     AC_MSG_WARN([some Perl modules required to compile virt-cat, virt-df, virt-inspector and virt-v2v are missing])
540 fi
541
542 AM_CONDITIONAL([HAVE_CAT],
543     [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
544 AM_CONDITIONAL([HAVE_DF],
545     [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
546 AM_CONDITIONAL([HAVE_INSPECTOR],
547     [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
548 AM_CONDITIONAL([HAVE_V2V],
549     [test "x$PERL" != "xno" -a "x$missing_perl_modules" != "xyes"])
550
551 dnl Library versioning.
552 MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
553 AC_SUBST(MAX_PROC_NR)
554
555 dnl Run in subdirs.
556 AC_CONFIG_SUBDIRS([daemon])
557
558 dnl Produce output files.
559 AC_CONFIG_HEADERS([config.h])
560 dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
561 AC_CONFIG_FILES([appliance/make.sh],
562                 [chmod +x appliance/make.sh])
563 AC_CONFIG_FILES([appliance/update.sh],
564                 [chmod +x appliance/update.sh])
565 AC_CONFIG_FILES([appliance/supermin-split.sh],
566                 [chmod +x appliance/supermin-split.sh])
567 AC_CONFIG_FILES([appliance/supermin-make.sh],
568                 [chmod +x appliance/supermin-make.sh])
569 AC_CONFIG_FILES([appliance/libguestfs-supermin-helper],
570                 [chmod +x appliance/libguestfs-supermin-helper])
571 AC_CONFIG_FILES([Makefile
572                  src/Makefile fish/Makefile po/Makefile.in examples/Makefile
573                  appliance/Makefile
574                  appliance/debian/debirf.conf
575                  images/Makefile
576                  capitests/Makefile
577                  regressions/Makefile
578                  test-tool/Makefile
579                  ocaml/Makefile ocaml/examples/Makefile
580                  perl/Makefile
581                  python/Makefile
582                  ruby/Makefile ruby/Rakefile
583                  java/Makefile
584                  haskell/Makefile
585                  cat/Makefile
586                  df/Makefile
587                  inspector/Makefile
588                  v2v/Makefile
589                  libguestfs.pc
590                  ocaml/META perl/Makefile.PL])
591 AC_OUTPUT
592
593 dnl Produce summary.
594 echo
595 echo
596 echo "------------------------------------------------------------"
597 echo "Thank you for downloading $PACKAGE_STRING"
598 echo
599 echo "This is how we have configured the optional components for you today:"
600 echo
601 echo    "QEMU ................................ $QEMU"
602 echo -n "OCaml bindings ...................... "
603 if test "x$HAVE_OCAML_TRUE" = "x"; then echo "yes"; else echo "no"; fi
604 echo -n "Perl bindings ....................... "
605 if test "x$HAVE_PERL_TRUE" = "x"; then echo "yes"; else echo "no"; fi
606 echo -n "Python bindings ..................... "
607 if test "x$HAVE_PYTHON_TRUE" = "x"; then echo "yes"; else echo "no"; fi
608 echo -n "Ruby bindings ....................... "
609 if test "x$HAVE_RUBY_TRUE" = "x"; then echo "yes"; else echo "no"; fi
610 echo -n "Java bindings ....................... "
611 if test "x$HAVE_JAVA_TRUE" = "x"; then echo "yes"; else echo "no"; fi
612 echo -n "Haskell bindings .................... "
613 if test "x$HAVE_HASKELL" = "x"; then echo "yes"; else echo "no"; fi
614 echo -n "virt-cat ............................ "
615 if test "x$HAVE_CAT" = "x"; then echo "yes"; else echo "no"; fi
616 echo -n "virt-df ............................. "
617 if test "x$HAVE_DF" = "x"; then echo "yes"; else echo "no"; fi
618 echo -n "virt-inspector ...................... "
619 if test "x$HAVE_INSPECTOR" = "x"; then echo "yes"; else echo "no"; fi
620 echo -n "virt-v2v ............................ "
621 if test "x$HAVE_V2V" = "x"; then echo "yes"; else echo "no"; fi
622 echo "supermin appliance .................. $enable_supermin"
623 echo
624 echo "If any optional component is configured 'no' when you expected 'yes'"
625 echo "then you should check the preceeding messages."
626 echo
627 echo "Please report bugs back to the mailing list:"
628 echo "http://www.redhat.com/mailman/listinfo/libguestfs"
629 echo
630 echo "Next you should type 'make' to build the package,"
631 echo "then 'make check' to run the tests."
632 echo "------------------------------------------------------------"