X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=configure.in;h=ccedce4437da7731973125fc61d31ca45050cb43;hp=44a81a5b91e42ef35ca1869ee6e5eec28b949044;hb=7f7d329e78edfcea92bff630c3e942d3410fdaab;hpb=5c1faba5e99fac913e675f93b5afb847d87cc60a diff --git a/configure.in b/configure.in index 44a81a5..ccedce4 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,5 @@ AC_INIT(dump/dump.h) +AC_PREREQ(2.57) MCONFIG=./MCONFIG AC_SUBST_FILE(MCONFIG) @@ -19,21 +20,28 @@ AC_CHECK_TOOL(PATCH, patch, :) 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 AC_ARG_ENABLE([debug], -[ --enable-debug include debugging code], +[ --enable-debug include debugging code (default is NO)], if test "$enableval" = "no" then DUMPDEBUG="" RESTOREDEBUG="" + echo "Not including debugging code" else DUMPDEBUG="-DFDEBUG -DTDEBUG -DWRITEDEBUG -DDIRDEBUG" RESTOREDEBUG="-DDIRDEBUG" + echo "Including debugging code" fi, DUMPDEBUG="" RESTOREDEBUG="" +echo "Not including debugging code by default" ) AC_SUBST(DUMPDEBUG) AC_SUBST(RESTOREDEBUG) @@ -42,12 +50,14 @@ dnl dnl Handle --enable-static dnl AC_ARG_ENABLE([static], -[ --enable-static link dump and restore statically], +[ --enable-static link dump and restore statically (default is NO)], if test "$enableval" = "no" then STATIC="" + echo "Linking dump and restore dynamically" else STATIC="-static" + echo "Linking dump and restore statically" fi , STATIC="" @@ -55,30 +65,223 @@ echo "Linking dump and restore dynamically by default" ) 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 AC_ARG_ENABLE([rmt], -[ --enable-rmt compile and install rmt], +[ --enable-rmt compile and install rmt (default is YES)], if test "$enableval" = "no" then RMTDIR="" RMTMAKEFILE="" + echo "Not compiling rmt" else RMTDIR="rmt" RMTMAKEFILE="rmt/Makefile" + echo "Compiling rmt" fi , -RMTDIR="" -echo "Not compiling rmt by default" +RMTDIR="rmt" +RMTMAKEFILE="rmt/Makefile" +echo "Compiling rmt by default" ) 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 +AC_ARG_ENABLE([kerberos], +[ --enable-kerberos compile kerberos extensions (default is NO)], +if test "$enableval" = "yes" +then + OPTDEFS="-DKERBEROS" + echo "Compiling kerberos extensions" +else + OPTDEFS="" + echo "Not compiling kerberos extensions" +fi +, +OPTDEFS="" +echo "Not compiling kerberos extensions by default" +) +AC_SUBST(OPTDEFS) + +dnl +dnl Handle --enable-readline +dnl +AC_ARG_ENABLE([readline], +[ --enable-readline enable readline support in restore (default is YES)], +if test "$enableval" = "no" +then + READLINE="" + echo "Not including readline support" +else + READLINE="yes" + AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.]) + echo "Including readline support" +fi +, +READLINE="yes" +AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.]) +echo "Including readline support by default" +) + +dnl +dnl Handle --enable-oldsylefscript +dnl +AC_ARG_ENABLE([oldstylefscript], +[ --enable-oldstylefscript enable old style F script (no arguments) (default is NO)], +if test "$enableval" = "yes" +then + 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" +fi +, +echo "Using new style F script by default" +) + +dnl +dnl Handle --enable-largefile +dnl +AC_ARG_ENABLE([largefile], +[ --enable-largefile enable Large File System support (default is YES)], +if test "$enableval" = "yes" +then + 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 +, +AC_DEFINE([USE_LFS],1,[Define this if you want Large File System support.]) +echo "Enabling Large File System support by default" +) + +dnl +dnl Handle --enable-qfa +dnl +AC_ARG_ENABLE([qfa], +[ --enable-qfa enable Quick File Access support (default is YES)], +if test "$enableval" = "yes" +then + 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 +, +AC_DEFINE([USE_QFA],1,[Define this if you want Quick File Access support.]) +echo "Enabling Quick File Access support by default" +) + +dnl +dnl Handle --enable-qfadebug +dnl +AC_ARG_ENABLE([qfadebug], +[ --enable-qfadebug include Quick File Access debugging code (default is NO)], +if test "$enableval" = "yes" +then + 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" +fi +, +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 Handle --enable-transselinux +dnl +AC_ARG_ENABLE([transselinux], +[ --enable-transselinux restore can translate SELinux EAs (default is YES)], +if test "$enableval" = "yes" +then + LTRANSSELINUX="-lselinux" + CCTRANSSELINUX="-DTRANSSELINUX" + echo "restore can translate SELinux EAs" +else + LTRANSSELINUX="" + CCTRANSSELINUX="" + echo "restore can not translate SELinux EAs" +fi +, +LTRANSSELINUX="-lselinux" +CCTRANSSELINUX="-DTRANSSELINUX" +echo "restore can translate SELinux EAs by default" +) +AC_SUBST(LTRANSSELINUX) +AC_SUBST(CCTRANSSELINUX) + + dnl dnl set $(CC) from --with-cc=value dnl AC_ARG_WITH([cc], -[ --with-cc=COMPILER select compiler to use], +[ --with-cc=COMPILER select compiler to use], AC_MSG_RESULT(CC=$withval) CC=$withval, if test -z "$CC" ; then CC=cc; fi @@ -90,7 +293,7 @@ dnl dnl set $(LD) from --with-linker=value dnl AC_ARG_WITH([linker], -[ --with-linker=LINKER select linker to use], +[ --with-linker=LINKER select linker to use], AC_MSG_RESULT(LD=$withval) LD=$withval, if test -z "$LD" ; then LD=$CC; fi @@ -102,7 +305,7 @@ dnl dnl set $(CCOPTS) from --with-ccopts=value dnl AC_ARG_WITH([ccopts], -[ --with-ccopts=CCOPTS select compiler command line options], +[ --with-ccopts=CCOPTS select compiler command line options], AC_MSG_RESULT(CCOPTS is $withval) CCOPTS=$withval CFLAGS="$CFLAGS $withval", @@ -113,17 +316,18 @@ dnl dnl set $(LDFLAGS) from --with-ldopts=value dnl AC_ARG_WITH([ldopts], -[ --with-ldopts=LDOPTS select linker command line options], +[ --with-ldopts=LDOPTS select linker command line options], AC_MSG_RESULT(LDFLAGS is $withval) -LDFLAGS=$withval, -LDFLAGS=)dnl -AC_SUBST(LDFLAGS) +LDOPTS=$withval +LDFLAGS="$LDFLAGS $withval", +LDOPTS=)dnl +AC_SUBST(LDOPTS) dnl dnl set $(BINOWNER) from --with-binowner dnl AC_ARG_WITH([binowner], -[ --with-binowner=USER select owner for binaries], +[ --with-binowner=USER select owner for binaries], AC_MSG_RESULT(BINOWNER is $withval) BINOWNER=$withval, BINOWNER=root @@ -135,7 +339,7 @@ dnl dnl set $(BINGRP) from --with-bingrp dnl AC_ARG_WITH([bingrp], -[ --with-bingrp=GROUP select group for binaries], +[ --with-bingrp=GROUP select group for binaries], AC_MSG_RESULT(BINGRP is $withval) BINGRP=$withval, BINGRP=tty @@ -147,10 +351,10 @@ dnl dnl set $(BINMODE) from --with-binmode dnl AC_ARG_WITH([binmode], -[ --with-binmode=MODE select mode for binaries], +[ --with-binmode=MODE select mode for binaries], AC_MSG_RESULT(BINMODE is $withval) BINMODE=$withval, -BINMODE=6555 +BINMODE=0755 echo "BINMODE defaults to $BINMODE" )dnl AC_SUBST(BINMODE) @@ -159,7 +363,7 @@ dnl dnl set $(MANOWNER) from --with-manowner dnl AC_ARG_WITH([manowner], -[ --with-manowner=USER select owner for manual pages], +[ --with-manowner=USER select owner for manual pages], AC_MSG_RESULT(MANOWNER is $withval) MANOWNER=$withval, MANOWNER=man @@ -171,7 +375,7 @@ dnl dnl set $(MANGRP) from --with-mangrp dnl AC_ARG_WITH([mangrp], -[ --with-mangrp=group select group for manual pages], +[ --with-mangrp=GROUP select group for manual pages], AC_MSG_RESULT(MANGRP is $withval) MANGRP=$withval, MANGRP=tty @@ -183,10 +387,10 @@ dnl dnl set $(MANMODE) from --with-manmode dnl AC_ARG_WITH([manmode], -[ --with-manmode=MODE select mode for manual pages], +[ --with-manmode=MODE select mode for manual pages], AC_MSG_RESULT(MANMODE is $withval) MANMODE=$withval, -MANMODE=0444 +MANMODE=0644 echo "MANMODE defaults to $MANMODE" )dnl AC_SUBST(MANMODE) @@ -195,10 +399,10 @@ dnl dnl set $(DUMPDATESPATH) from --with-dumpdatespath dnl AC_ARG_WITH([dumpdatespath], -[ --with-dumpdatespath=path select path for dumpdates file], +[ --with-dumpdatespath=PATH select path for dumpdates file], AC_MSG_RESULT(DUMPDATESPATH is $withval) DUMPDATESPATH=$withval, -DUMPDATESPATH="/etc/dumpdates" +DUMPDATESPATH="${sysconfdir}/dumpdates" echo "DUMPDATESPATH defaults to $DUMPDATESPATH" )dnl AC_SUBST(DUMPDATESPATH) @@ -206,11 +410,149 @@ AC_SUBST(DUMPDATESPATH) 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) + AC_MSG_ERROR(You need to install the Ext2fs libraries from the E2fsprogs distribution first - hint: make install-libs) +fi + +dnl +dnl Check for ext2fs_read_inode_full +dnl +AC_CHECK_LIB(ext2fs, ext2fs_read_inode_full, [rif=yes], [rif=no], [-lcom_err]) +if test "$rif" = yes; then + AC_DEFINE([HAVE_EXT2FS_READ_INODE_FULL],1,[Define this if your ext2fs libs have the ext2fs_read_inode_full function.]) +fi + +dnl +dnl Try to use ext2_fs.h header from libext2fs instead of from the kernel +dnl +AC_CHECK_HEADERS(ext2fs/ext2_fs.h, [], [], [-]) + +dnl +dnl Check for ext2_ino_t type +dnl +AC_MSG_CHECKING(for ext2_ino_t type in libext2fs headers) +AC_TRY_COMPILE([#include +#ifdef HAVE_EXT2FS_EXT2_FS_H +#include +#else +#include +#endif +#include ], +[ext2_ino_t ino = 0;], +[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 +dnl Check for s_journal_inum field in ext2_super_block struct +dnl +AC_MSG_CHECKING(for s_journal_inum field in ext2_super_block struct) +AC_TRY_COMPILE([#include +#ifdef HAVE_EXT2FS_EXT2_FS_H +#include +#else +#include +#endif +#include ], +[struct ext2_super_block es; es.s_journal_inum = 0;], +[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 +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 -ldevmapper -lselinux -lsepol" +fi +AC_SUBST(BLKID) + +dnl +dnl Check for ncurses or termcap libraries +dnl +AC_CHECK_LIB(ncurses, tgetent, [ncurses_lib=yes], [ncurses_lib=no]) +AC_CHECK_LIB(termcap, tgetent, [termcap_lib=yes], [termcap_lib=no]) + +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 +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 +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" = "yes"; then + 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 + AC_DEFINE([HAVE_READLINE_RLCM],1,[Define this if your readline libs have the rl_completion_matches library.]) +fi + +dnl +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 + 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 +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 + 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 +AC_SUBST(ZLIB) + +dnl +dnl Check for bzlib headers and libraries +dnl +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 + 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 +AC_SUBST(BZLIB) dnl dnl Check for library functions @@ -221,6 +563,7 @@ AC_CHECK_FUNC(glob) dnl dnl Check for GLOB_ALTDIRFUNC dnl +AC_MSG_CHECKING(for extended glob routines) if test "$ac_cv_func_glob" = "yes"; then AC_EGREP_CPP(yes, [ @@ -228,17 +571,33 @@ if test "$ac_cv_func_glob" = "yes"; then # ifdef GLOB_ALTDIRFUNC yes # endif - ], AC_DEFINE(HAVE_GLOB), noglob=yes) - if test "$noglob" = "yes"; then - echo "Your system does not support extended glob, will use the internal routines" + ], + [ + AC_DEFINE([HAVE_GLOB],1,[Define if you have the glob function.]) + AC_MSG_RESULT(yes) + ], + [ + AC_MSG_RESULT(no) + echo "Your system does not support extended glob, will use the internal routines" + ]) +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 -AC_CHECK_TYPE(quad_t, __s64) -AC_CHECK_TYPE(u_quad_t, __u64) +AC_CHECK_TYPE(quad_t, int64_t) +AC_CHECK_TYPE(u_quad_t, uint64_t) dnl dnl Compute top_buildir