+Untested explanation of 'Why native NT autocheck ...'
[captive.git] / configure.in
index ba4cfbc..5008643 100644 (file)
 
 
 AC_INIT(src/libcaptive/Makefile-libcaptive.am)
+dnl 2.53 for AM_GLIB_GNU_GETTEXT:
+AC_PREREQ(2.53)
 AM_INIT_AUTOMAKE(captive,0.9cvs)
 AM_CONFIG_HEADER(config.h)
 AM_MAINTAINER_MODE
-#AM_ACLOCAL_INCLUDE(macros)
+dnl Call AC_PROG_CC before AC_ISC_POSIX.
+AC_PROG_CC(gcc3 gcc-3.0 gcc cc)
+AC_TRY_CPP([
+#if __GNUC__ >= 3
+#else
+#error "GCC version 3.0+ required at least for ReactOS anonymous unions"
+#endif
+],,[AC_MSG_ERROR([Captive requires GCC version 3.0+.])])
 dnl Prevent "AC_TRY_COMPILE was called before AC_ISC_POSIX":
 AC_ISC_POSIX
 AC_SYS_LARGEFILE
-AC_PROG_CC
 AM_PROG_AS
 AM_ENABLE_STATIC
 AM_DISABLE_SHARED
@@ -43,6 +51,7 @@ AM_GLIB_GNU_GETTEXT
 GTK_DOC_CHECK
 dnl AM_CONDITIONAL needs to be here explicitely for doc/apiref/Makefile rebuild
 AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
+AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL")
 
 dnl Do not discard 'CFLAGS' settings as they may have been passed us by rpmbuild(8)
 
@@ -54,6 +63,18 @@ if test "$USE_MAINTAINER_MODE" = "yes";then
 dnl Some Makefiles use additional tests etc.
 AM_CONDITIONAL(MAINTAINER_MODE,[test "$USE_MAINTAINER_MODE" = "yes"])
 
+
+AC_ARG_WITH(sbin-mountdir,
+               [  --with-sbin-mountdir=dir      mount(8) 'mount.captive' directory (def.=/sbin)],,
+               [ with_sbin_mountdir="/sbin" ])
+AM_CONDITIONAL(WITH_SBIN_MOUNT,[test "$with_sbin_mount" != "no"])
+AC_SUBST(with_sbin_mountdir)
+
+AC_ARG_WITH(sbin-mount-fs,
+               [  --with-sbin-mount-fs=fs1:fs2  sbin-mount pre-installed symlinks (def.=ntfs:fastfat:cdfs:ext2fsd)],,
+               [ with_sbin_mount_fs="ntfs:fastfat:cdfs:ext2fsd" ])
+AC_SUBST(with_sbin_mount_fs)
+
 AC_ARG_WITH(sandbox-setuid,
                [  --with-sandbox-setuid=user    non-privileged user  for captive-sandbox-server (def.=captive)],
                [ CAPTIVE_SANDBOX_SETUID="$withval" ],[ CAPTIVE_SANDBOX_SETUID="captive" ])
@@ -71,9 +92,10 @@ AC_ARG_WITH(sandbox-chroot,
                [ CAPTIVE_SANDBOX_CHROOT="$withval" ],[ CAPTIVE_SANDBOX_CHROOT="/var/lib/captive" ])
 AC_DEFINE_UNQUOTED(CAPTIVE_SANDBOX_CHROOT,"$CAPTIVE_SANDBOX_CHROOT",
                [root-owned directory for captive-sandbox-server])
+AC_SUBST(CAPTIVE_SANDBOX_CHROOT)
 
-dnl Permit 'if IS_FALSE' for Makefile.am-s; symbol 'FALSE' forbidden by automake
-AM_CONDITIONAL(IS_FALSE,false)
+dnl Permit 'if NEVER' for Makefile.am-s; symbol 'FALSE' forbidden by automake
+AM_CONDITIONAL(NEVER,false)
 
 dnl Separate 'acconfig.h' is no longer recommended by autoconf
 AH_TOP([
@@ -129,7 +151,7 @@ dnl popt
 AC_CHECK_LIB(popt,poptParseArgvString,[POPT_LIBS="-lpopt"],[AC_MSG_ERROR([Captive requires popt library.])])
 AC_SUBST(POPT_LIBS)
 
-AC_ARG_WITH(readline,  [  --with-readline=[no/yes/auto]        cmdline client w/line editing [default=auto]],,with_readline=auto)
+AC_ARG_WITH(readline,  [  --with-readline=[no/yes/auto]        cmdline client with line editing (def.=auto)],,with_readline=auto)
 AC_CHECK_HEADERS(readline/history.h)
 dnl Check for libraries, if needed by configuration options.
 if test "$with_readline" != "no"
@@ -192,6 +214,36 @@ PKG_CHECK_MODULES(GNOME_VFS_MODULE,gnome-vfs-module-2.0)
 AC_SUBST(GNOME_VFS_MODULE_CFLAGS)
 AC_SUBST(GNOME_VFS_MODULE_LIBS)
 
+dnl Check for 2.5.9 for: http://bugzilla.gnome.org/show_bug.cgi?id=117702
+dnl Check the version - impossible to reliably check the missing feature.
+PKG_CHECK_MODULES(LIBXML,libxml-2.0 >= 2.5.9,[ have_libxml_buffering=true ],[
+       dnl Disable bug-replay(1) build if not met; --bug-pathname would be still OK.
+       PKG_CHECK_MODULES(LIBXML,libxml-2.0,[ have_libxml_buffering=false ])
+       ])
+dnl We also condition 'HAVE_LIBXML_XMLREADER_H' by 'HAVE_LIBXML_BUFFERING'
+dnl as we have no use for xmlreader without working libxml buffering of 2.5.9.
+AM_CONDITIONAL(HAVE_LIBXML_BUFFERING,$have_libxml_buffering)
+if $have_libxml_buffering;then
+       AC_DEFINE(HAVE_LIBXML_BUFFERING,,[libxml2 correctly reads textnodes by its xmlTextReader.])
+fi
+AC_SUBST(LIBXML_CFLAGS)
+AC_SUBST(LIBXML_LIBS)
+
+PKG_CHECK_MODULES(OPENSSL,openssl,,[
+       dnl At least Debian-3.0r1 has openssl but without its .pc module.
+       AC_CHECK_LIB(crypto,MD5,[
+               OPENSSL_CFLAGS=""
+               OPENSSL_LIBS="-lcrypto"
+               ],[AC_MSG_ERROR([Captive requires crypto library (of openssl).])])
+       ])
+AC_SUBST(OPENSSL_CFLAGS)
+AC_SUBST(OPENSSL_LIBS)
+
+have_lufs_includes=true
+AC_CHECK_HEADERS(lufs/fs.h lufs/proto.h,,[ have_lufs_includes=false ])
+AM_CONDITIONAL(HAVE_LUFS_INCLUDES,$have_lufs_includes)
+AC_CHECK_TYPES([struct lufs_sbattr],,,[#include <lufs/proto.h>])
+
 dnl for $(top_srcdir)/src/libcaptive/sandbox/split-sandbox.c
 AM_PATH_LINC(,,[AC_MSG_ERROR([Captive requires linc library used by ORBit.])])
 
@@ -206,10 +258,12 @@ AC_SUBST(LIBS)
 
 dnl "Makefile" output files MUST have pathnames incl./excl. "./" prefix as specified!
 AC_OUTPUT([
-captive.spec
-Makefile
-./macros/Makefile
+./captive.spec
+./src/client/gnomevfs/captive.conf
+./src/client/lufs/mount.captive
 ./po/Makefile.in
+./Makefile
+./macros/Makefile
 ./src/Makefile
 ./src/libcaptive/Makefile
 ./src/libcaptive/include/Makefile
@@ -259,12 +313,14 @@ Makefile
 ./src/libcaptive/sandbox/Makefile
 ./src/libcaptive/client/Makefile
 ./src/client/Makefile
+./src/client/bug-replay/Makefile
 ./src/client/cmdline/Makefile
+./src/client/gnomevfs/Makefile
+./src/client/lufs/Makefile
 ./src/client/sandbox-server/Makefile
-./src/client/libcaptive-gnomevfs/Makefile
+./src/TraceFS/Makefile
 ./doc/Makefile
 ./doc/apiref/Makefile
-./src/client/libcaptive-gnomevfs/captive.conf
 ])
 
 dnl FIXME: Why is "po/POTFILES" being substituted?