]> git.wh0rd.org - dump.git/blobdiff - configure.in
Fix the 'do not save directory entries to non-dumped inodes
[dump.git] / configure.in
index eb54a532b944fbd8cb05df0cf2893d6f35cc0461..57b2a090601942a72b0271b78b1e1c8055787eea 100644 (file)
@@ -1,4 +1,5 @@
 AC_INIT(dump/dump.h)
 AC_INIT(dump/dump.h)
+AC_PREREQ(2.57)
 
 MCONFIG=./MCONFIG
 AC_SUBST_FILE(MCONFIG)
 
 MCONFIG=./MCONFIG
 AC_SUBST_FILE(MCONFIG)
@@ -19,6 +20,10 @@ AC_CHECK_TOOL(PATCH, patch, :)
 AC_PROG_CC
 AC_PROG_INSTALL
 
 AC_PROG_CC
 AC_PROG_INSTALL
 
+AC_CHECK_HEADERS([sys/types.h])
+
+CPPFLAGS="-D_BSD_SOURCE -D_USE_BSD_SIGNAL ${CPPFLAGS}"
+
 dnl
 dnl Handle --enable-debug
 dnl
 dnl
 dnl Handle --enable-debug
 dnl
@@ -60,6 +65,24 @@ echo "Linking dump and restore dynamically by default"
 )
 AC_SUBST(STATIC)
 
 )
 AC_SUBST(STATIC)
 
+dnl
+dnl Handle --enable-staticz
+dnl
+AC_ARG_ENABLE([staticz],
+[  --enable-staticz           link libz and libbz2 statically (default is NO)],
+if test "$enableval" = "no"
+then
+       STATICZ="no"
+       echo "Linking libz and libbz2 dynamically"
+else
+       STATICZ="yes"
+       echo "Linking libz and libbz2 statically"
+fi
+,
+STATICZ="no"
+echo "Linking libz and libbz2 dynamically by default"
+)
+
 dnl
 dnl Handle --enable-rmt
 dnl
 dnl
 dnl Handle --enable-rmt
 dnl
@@ -82,6 +105,33 @@ echo "Compiling rmt by default"
 )
 AC_SUBST(RMTDIR)
 
 )
 AC_SUBST(RMTDIR)
 
+dnl
+dnl Handle --enable-ermt
+dnl
+AC_ARG_ENABLE([ermt],
+[  --enable-ermt              compile ermt, an encrypting version of rmt (default is NO)],
+if test "$enableval" = "no"
+then
+       ERMT=""
+       CRYPTO=""
+       echo "Not compiling ermt"
+else
+       if test "$RMTDIR" = ""
+       then
+               AC_MSG_ERROR(ermt requires --enable-rmt)
+       fi
+       ERMT="ermt"
+       CRYPTO="-lcrypto"
+       echo "Compiling ermt"
+fi
+,
+ERMT=""
+CRYPTO=""
+echo "Not compiling ermt by default"
+)
+AC_SUBST(ERMT)
+AC_SUBST(CRYPTO)
+
 dnl
 dnl Handle --enable-kerberos
 dnl
 dnl
 dnl Handle --enable-kerberos
 dnl
@@ -111,16 +161,15 @@ then
        READLINE=""
        echo "Not including readline support"
 else
        READLINE=""
        echo "Not including readline support"
 else
-       READLINE="-lreadline -ltermcap"
-       AC_DEFINE(HAVE_READLINE)
+       READLINE="yes"
+       AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.])
        echo "Including readline support"
 fi
 ,
        echo "Including readline support"
 fi
 ,
-READLINE="-lreadline -ltermcap"
-AC_DEFINE(HAVE_READLINE)
+READLINE="yes"
+AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.])
 echo "Including readline support by default"
 )
 echo "Including readline support by default"
 )
-AC_SUBST(READLINE)
 
 dnl
 dnl Handle --enable-oldsylefscript
 
 dnl
 dnl Handle --enable-oldsylefscript
@@ -129,7 +178,7 @@ AC_ARG_ENABLE([oldstylefscript],
 [  --enable-oldstylefscript   enable old style F script (no arguments) (default is NO)],
 if test "$enableval" = "yes"
 then
 [  --enable-oldstylefscript   enable old style F script (no arguments) (default is NO)],
 if test "$enableval" = "yes"
 then
-       AC_DEFINE(OLD_STYLE_FSCRIPT)
+       AC_DEFINE([OLD_STYLE_FSCRIPT],1,[Define this is you want old style F script (no arguments).])
        echo "Using old style F script"
 else
        echo "Using new style F script"
        echo "Using old style F script"
 else
        echo "Using new style F script"
@@ -145,13 +194,13 @@ AC_ARG_ENABLE([largefile],
 [  --enable-largefile         enable Large File System support (default is YES)],
 if test "$enableval" = "yes"
 then
 [  --enable-largefile         enable Large File System support (default is YES)],
 if test "$enableval" = "yes"
 then
-       AC_DEFINE(USE_LFS)
+       AC_DEFINE([USE_LFS],1,[Define this if you want Large File System support.])
        echo "Enabling Large File System support"
 else
        echo "Not enabling Large File System support"
 fi
 ,
        echo "Enabling Large File System support"
 else
        echo "Not enabling Large File System support"
 fi
 ,
-AC_DEFINE(USE_LFS)
+AC_DEFINE([USE_LFS],1,[Define this if you want Large File System support.])
 echo "Enabling Large File System support by default"
 )
 
 echo "Enabling Large File System support by default"
 )
 
@@ -162,13 +211,13 @@ AC_ARG_ENABLE([qfa],
 [  --enable-qfa               enable Quick File Access support (default is YES)],
 if test "$enableval" = "yes"
 then
 [  --enable-qfa               enable Quick File Access support (default is YES)],
 if test "$enableval" = "yes"
 then
-       AC_DEFINE(USE_QFA)
+       AC_DEFINE([USE_QFA],1,[Define this if you want Quick File Access support.])
        echo "Enabling Quick File Access support"
 else
        echo "Not enabling Quick File Access support"
 fi
 ,
        echo "Enabling Quick File Access support"
 else
        echo "Not enabling Quick File Access support"
 fi
 ,
-AC_DEFINE(USE_QFA)
+AC_DEFINE([USE_QFA],1,[Define this if you want Quick File Access support.])
 echo "Enabling Quick File Access support by default"
 )
 
 echo "Enabling Quick File Access support by default"
 )
 
@@ -179,7 +228,7 @@ AC_ARG_ENABLE([qfadebug],
 [  --enable-qfadebug          include Quick File Access debugging code (default is NO)],
 if test "$enableval" = "yes"
 then
 [  --enable-qfadebug          include Quick File Access debugging code (default is NO)],
 if test "$enableval" = "yes"
 then
-       AC_DEFINE(DEBUG_QFA)
+       AC_DEFINE([DEBUG_QFA],1,[Define this if you want to include Quick File Access debugging code.])
        echo "Including Quick File Access debugging code"
 else
        echo "Not including Quick File Access debugging code"
        echo "Including Quick File Access debugging code"
 else
        echo "Not including Quick File Access debugging code"
@@ -188,6 +237,23 @@ fi
 echo "Not including Quick File Access debugging code by default"
 )
 
 echo "Not including Quick File Access debugging code by default"
 )
 
+dnl
+dnl Handle --enable-macosx
+dnl
+AC_ARG_ENABLE([macosx],
+[  --enable-macosx            include Mac OSX restore compatibility (default is NO)],
+if test "$enableval" = "yes"
+then
+       AC_DEFINE([DUMP_MACOSX],1,[Define this if you want to include Mac OSX restore compatibility.])
+       echo "Including Mac OSX restore compatibility code"
+else
+       echo "Not including Mac OSX restore compatibility code"
+fi
+,
+echo "Not including Mac OSX restore compatibility code by default"
+)
+
+
 dnl
 dnl set $(CC) from --with-cc=value
 dnl
 dnl
 dnl set $(CC) from --with-cc=value
 dnl
@@ -321,7 +387,7 @@ AC_SUBST(DUMPDATESPATH)
 dnl
 dnl Check for Ext2fs headers and libraries
 dnl
 dnl
 dnl Check for Ext2fs headers and libraries
 dnl
-AC_CHECK_HEADER(ext2fs/ext2fs.h, [ext2fs_h=yes], [ext2fs_h=no])
+AC_CHECK_HEADER(ext2fs/ext2fs.h, [ext2fs_h=yes], [ext2fs_h=no], [-])
 AC_CHECK_LIB(ext2fs, ext2fs_open, [ext2fs_lib=yes], [ext2fs_lib=no], [-lcom_err])
 if test "$ext2fs_h" = no -o "$ext2fs_lib" = no; then
        AC_MSG_ERROR(You need to install the Ext2fs libraries from the E2fsprogs distribution first - hint: make install-libs)
 AC_CHECK_LIB(ext2fs, ext2fs_open, [ext2fs_lib=yes], [ext2fs_lib=no], [-lcom_err])
 if test "$ext2fs_h" = no -o "$ext2fs_lib" = no; then
        AC_MSG_ERROR(You need to install the Ext2fs libraries from the E2fsprogs distribution first - hint: make install-libs)
@@ -330,7 +396,7 @@ fi
 dnl
 dnl Try to use ext2_fs.h header from libext2fs instead of from the kernel
 dnl
 dnl
 dnl Try to use ext2_fs.h header from libext2fs instead of from the kernel
 dnl
-AC_CHECK_HEADERS(ext2fs/ext2_fs.h)
+AC_CHECK_HEADERS(ext2fs/ext2_fs.h, [], [], [-])
 
 dnl
 dnl Check for ext2_ino_t type
 
 dnl
 dnl Check for ext2_ino_t type
@@ -344,7 +410,8 @@ AC_TRY_COMPILE([#include <stdio.h>
 #endif
 #include <ext2fs/ext2fs.h>],
 [ext2_ino_t ino = 0;], 
 #endif
 #include <ext2fs/ext2fs.h>],
 [ext2_ino_t ino = 0;], 
-[AC_DEFINE(HAVE_EXT2_INO_T) AC_MSG_RESULT(yes)],
+[AC_DEFINE([HAVE_EXT2_INO_T],1,[Define if we have the ext2_ino_t type (from e2fsprogs 1.20+).])
+ AC_MSG_RESULT(yes)],
 AC_MSG_RESULT(no))
 
 dnl
 AC_MSG_RESULT(no))
 
 dnl
@@ -359,36 +426,59 @@ AC_TRY_COMPILE([#include <stdio.h>
 #endif
 #include <ext2fs/ext2fs.h>],
 [struct ext2_super_block es; es.s_journal_inum = 0;],
 #endif
 #include <ext2fs/ext2fs.h>],
 [struct ext2_super_block es; es.s_journal_inum = 0;],
-[AC_DEFINE(HAVE_EXT2_JOURNAL_INUM) AC_MSG_RESULT(yes)],
+[AC_DEFINE([HAVE_EXT2_JOURNAL_INUM],1,[Define if we have the s_journal_inum field in struct ext2_super_block.])
+ AC_MSG_RESULT(yes)],
 AC_MSG_RESULT(no))
 
 dnl
 AC_MSG_RESULT(no))
 
 dnl
-dnl Check for termcap libraries
+dnl Check for blkid headers libraries
+dnl
+AC_CHECK_HEADER(blkid/blkid.h, [blkid_h=yes], [blkid_h=no], [-])
+AC_CHECK_LIB(blkid, blkid_get_devname, [blkid_lib=yes], [blkid_lib=no], [-luuid])
+if test "$blkid_h" = yes -a "$blkid_lib" = yes; then
+       AC_DEFINE([HAVE_BLKID],1,[Define this if you have the blkid library.])
+       BLKID="-lblkid -luuid"
+fi
+AC_SUBST(BLKID)
+
+dnl
+dnl Check for ncurses or termcap libraries
 dnl
 dnl
+AC_CHECK_LIB(ncurses, tgetent, [ncurses_lib=yes], [ncurses_lib=no])
 AC_CHECK_LIB(termcap, tgetent, [termcap_lib=yes], [termcap_lib=no])
 AC_CHECK_LIB(termcap, tgetent, [termcap_lib=yes], [termcap_lib=no])
-if test "$termcap_lib" = no; then
-       if test "$READLINE" = "-lreadline -ltermcap"; then
-               AC_MSG_ERROR(You need to install the GNU termcap library or configure without --enable-readline)
+
+if test "$ncurses_lib" = no -a "$termcap_lib" = no; then
+       if test "$READLINE" = "yes"; then
+               AC_MSG_ERROR(You need to install the ncurses or termcap library or configure without --enable-readline)
        fi
 fi
        fi
 fi
+if test "$ncurses_lib" = yes; then
+       rdllib="-lncurses"
+elif test "$termcap_lib" = yes; then
+       rdllib="-ltermcap"
+fi
 
 dnl
 dnl Check for readline headers and libraries
 dnl
 
 dnl
 dnl Check for readline headers and libraries
 dnl
-AC_CHECK_HEADER(readline/readline.h, [readline_h=yes], [readline_h=no])
-AC_CHECK_LIB(readline, readline, [readline_lib=yes], [readline_lib=no], "-ltermcap")
+AC_CHECK_HEADER(readline/readline.h, [readline_h=yes], [readline_h=no], [-])
+AC_CHECK_LIB(readline, readline, [readline_lib=yes], [readline_lib=no], $rdllib)
 if test "$readline_h" = no -o "$readline_lib" = no; then
 if test "$readline_h" = no -o "$readline_lib" = no; then
-       if test "$READLINE" = "-lreadline -ltermcap"; then
+       if test "$READLINE" = "yes"; then
                AC_MSG_ERROR(You need to install the GNU readline library or configure without --enable-readline)
        fi
 fi
                AC_MSG_ERROR(You need to install the GNU readline library or configure without --enable-readline)
        fi
 fi
+if test "$READLINE" = yes; then
+       READLINE="-lreadline $rdllib"
+fi
+AC_SUBST(READLINE)
 
 dnl
 dnl Check for rl_completion_matches
 dnl
 AC_CHECK_LIB(readline, rl_completion_matches, [rlcm=yes], [rlcm=no], "-ltermcap")
 if test "$rlcm" = yes; then
 
 dnl
 dnl Check for rl_completion_matches
 dnl
 AC_CHECK_LIB(readline, rl_completion_matches, [rlcm=yes], [rlcm=no], "-ltermcap")
 if test "$rlcm" = yes; then
-       AC_DEFINE(HAVE_READLINE_RLCM)
+       AC_DEFINE([HAVE_READLINE_RLCM],1,[Define this if your readline libs have the rl_completion_matches library.])
 fi
 
 dnl
 fi
 
 dnl
@@ -396,17 +486,21 @@ dnl Check for rl_completion_append_character
 dnl
 AC_CHECK_LIB(readline, rl_completion_append_character, [rcac=yes], [rcac=no], "-ltermcap")
 if test "$rcac" = yes; then
 dnl
 AC_CHECK_LIB(readline, rl_completion_append_character, [rcac=yes], [rcac=no], "-ltermcap")
 if test "$rcac" = yes; then
-       AC_DEFINE(HAVE_READLINE_CAC)
+       AC_DEFINE([HAVE_READLINE_CAC],1,[Define this if your readline libs have the rl_completion_append_character variable.])
 fi
 
 dnl
 dnl Check for zlib headers and libraries
 dnl
 fi
 
 dnl
 dnl Check for zlib headers and libraries
 dnl
-AC_CHECK_HEADER(zlib.h, [zlib_h=yes], [zlib_h=no])
+AC_CHECK_HEADER(zlib.h, [zlib_h=yes], [zlib_h=no], [-])
 AC_CHECK_LIB(z, compress2, [zlib_lib=yes], [zlib_lib=no])
 if test "$zlib_h" = yes -a "$zlib_lib" = yes; then
 AC_CHECK_LIB(z, compress2, [zlib_lib=yes], [zlib_lib=no])
 if test "$zlib_h" = yes -a "$zlib_lib" = yes; then
-       ZLIB="-lz"
-       AC_DEFINE(HAVE_ZLIB)
+       if test "$STATICZ" = yes; then
+               ZLIB="-Wl,-Bstatic -lz -Wl,-Bdynamic"
+       else
+               ZLIB="-lz"
+       fi
+       AC_DEFINE([HAVE_ZLIB],1,[Define this if you have zlib compression library.])
 else
        ZLIB=""
 fi
 else
        ZLIB=""
 fi
@@ -415,11 +509,15 @@ AC_SUBST(ZLIB)
 dnl
 dnl Check for bzlib headers and libraries
 dnl
 dnl
 dnl Check for bzlib headers and libraries
 dnl
-AC_CHECK_HEADER(bzlib.h, [bzlib_h=yes], [bzlib_h=no])
+AC_CHECK_HEADER(bzlib.h, [bzlib_h=yes], [bzlib_h=no], [-])
 AC_CHECK_LIB(bz2, BZ2_bzBuffToBuffCompress, [bzlib_lib=yes], [bzlib_lib=no])
 if test "$bzlib_h" = yes -a "$bzlib_lib" = yes; then
 AC_CHECK_LIB(bz2, BZ2_bzBuffToBuffCompress, [bzlib_lib=yes], [bzlib_lib=no])
 if test "$bzlib_h" = yes -a "$bzlib_lib" = yes; then
-       BZLIB="-lbz2"
-       AC_DEFINE(HAVE_BZLIB)
+       if test "$STATICZ" = yes; then
+               BZLIB="-Wl,-Bstatic -lbz2 -Wl,-Bdynamic"
+       else
+               BZLIB="-lbz2"
+       fi
+       AC_DEFINE([HAVE_BZLIB],1,[Define this if you have bzlib compression library.])
 else
        BZLIB=""
 fi
 else
        BZLIB=""
 fi
@@ -444,7 +542,7 @@ if test "$ac_cv_func_glob" = "yes"; then
 #      endif
        ], 
        [
 #      endif
        ], 
        [
-       AC_DEFINE(HAVE_GLOB)
+       AC_DEFINE([HAVE_GLOB],1,[Define if you have the glob function.])
        AC_MSG_RESULT(yes)
        ],
        [
        AC_MSG_RESULT(yes)
        ],
        [
@@ -453,6 +551,17 @@ if test "$ac_cv_func_glob" = "yes"; then
        ])
 fi
 
        ])
 fi
 
+dnl
+dnl Check for OpenSSL, for ermt
+dnl
+if test "$ERMT" != ""; then
+       AC_CHECK_HEADER(openssl/evp.h, [evp_h=yes], [evp_h=no])
+       AC_CHECK_LIB(crypto, EVP_CIPHER_CTX_set_padding, [crypto_lib=yes], [crypto_lib=no])
+       if test "$evp_h" = no -o "$crypto_lib" = no; then
+               AC_MSG_ERROR(You need to install the OpenSSL library (version 0.9.7a or later), or configure without --enable-ermt)
+       fi
+fi
+
 dnl
 dnl Check for types
 dnl
 dnl
 dnl Check for types
 dnl