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