X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=configure.ac;h=3b86c1a141e9250451cf349aea20fd8e6e32539b;hb=c554f5558cb37cf640048d693be81bf3b9dff150;hp=c1fe224c7180a7b2e0f250c74f2e68d34dd62f6f;hpb=956b0f18a5ddb6815a9dff4f10a1e3125cdca9ba;p=thirdparty%2Fe2fsprogs.git diff --git a/configure.ac b/configure.ac index c1fe224c7..3b86c1a14 100644 --- a/configure.ac +++ b/configure.ac @@ -11,11 +11,11 @@ dnl This is to figure out the version number and the date.... dnl E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ | awk '{print $3}' | tr \" " " | awk '{print $1}'` -DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ - | tr \" " "` -E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'` -MONTH=`echo $DATE | awk -F- '{print $2}'` -YEAR=`echo $DATE | awk -F- '{print $3}'` +E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ + | tr \" " " | awk '{print $1}'` +E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/') +MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'` +YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'` if expr $YEAR ">" 1900 > /dev/null ; then E2FSPROGS_YEAR=$YEAR @@ -48,7 +48,7 @@ date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} case $E2FSPROGS_VERSION in *-WIP|pre-*) - E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY" + E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec" ;; *) E2FSPROGS_PKGVER="$base_ver" @@ -63,6 +63,7 @@ AC_SUBST(E2FSPROGS_MONTH) AC_SUBST(E2FSPROGS_DAY) AC_SUBST(E2FSPROGS_VERSION) AC_SUBST(E2FSPROGS_PKGVER) +AC_SUBST(E2FSPROGS_DATE) dnl dnl Use diet libc dnl @@ -84,9 +85,7 @@ dnl dnl Check to see if libdl exists for the sake of dlopen dnl DLOPEN_LIB='' -AC_CHECK_LIB(dl, dlopen, -[DLOPEN_LIB=-ldl -AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])]) +AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl) AC_SUBST(DLOPEN_LIB) dnl AC_ARG_WITH([cc], @@ -126,8 +125,8 @@ else fi AC_USE_SYSTEM_EXTENSIONS dnl -dnl Set default values for library extentions. Will be dealt with after -dnl parsing configuration opions, which may modify these +dnl Set default values for library extensions. Will be dealt with after +dnl parsing configuration options, which may modify these dnl LIB_EXT=.a STATIC_LIB_EXT=.a @@ -355,7 +354,28 @@ then AC_MSG_RESULT([Enabling gcov support]) fi ) - +dnl +dnl handle --enable-hardening +dnl +CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}" +CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}" +LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} +LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS} +AC_ARG_ENABLE([hardening], +[ --enable-hardening build for coverage testing using gcov], +if test "$enableval" = "yes" +then + HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong" + HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"] + CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE" + CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS" + CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE" + LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie" + LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS" + LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS" + AC_MSG_RESULT([Enabling hardening support]) +fi +) dnl dnl Substitute library extensions dnl @@ -546,6 +566,24 @@ AC_SUBST(PROFILED_LIBBLKID) AC_SUBST(DEPPROFILED_LIBBLKID) AC_SUBST(BLKID_CMT) dnl +dnl handle --enable-subset +dnl +ALL_CMT= +SUBSET_CMT= +AC_ARG_ENABLE([subset], +[ --enable-subset enable subset-only build], +if test "$enableval" = "no" +then + SUBSET_CMT=# + AC_MSG_RESULT([Disabling subset-only build]) +else + ALL_CMT=# + AC_MSG_RESULT([Enabling subset-only-build]) +fi +,) +AC_SUBST(ALL_CMT) +AC_SUBST(SUBSET_CMT) +dnl dnl handle --disable-backtrace dnl AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace]) @@ -756,6 +794,31 @@ AC_MSG_RESULT([Enabling mmp support by default]) AC_DEFINE(CONFIG_MMP, 1) ) dnl +dnl handle --disable-tdb +dnl +AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support]) +AC_ARG_ENABLE([tdb], +[ --disable-tdb disable tdb support], +if test "$enableval" = "no" +then + AC_MSG_RESULT([Disabling tdb support]) + TDB_CMT="#" + TDB_MAN_COMMENT='.\"' +else + AC_MSG_RESULT([Enabling tdb support]) + AC_DEFINE(CONFIG_TDB, 1) + TDB_CMT="" + TDB_MAN_COMMENT="" +fi +, +AC_MSG_RESULT([Enabling mmp support by default]) +AC_DEFINE(CONFIG_TDB, 1) +TDB_CMT="" +TDB_MAN_COMMENT="" +) +AC_SUBST(TDB_CMT) +AC_SUBST(TDB_MAN_COMMENT) +dnl dnl handle --disable-bmap-stats dnl AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.]) @@ -818,6 +881,7 @@ AC_SUBST(BINARY_TYPE) AC_PROG_MAKE_SET CHECK_GNU_MAKE AC_PATH_PROG(LN, ln, ln) +AC_PROG_MKDIR_P AC_PROG_LN_S AC_PATH_PROG(MV, mv, mv) AC_PATH_PROG(CP, cp, cp) @@ -833,7 +897,7 @@ AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) if test "_$MAKEINFO" = "_"; then - MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true" + MAKEINFO="echo Makeinfo is missing. Info documentation will not be built." else case "$MAKEINFO" in */missing.*) @@ -874,8 +938,10 @@ AC_CHECK_HEADERS(m4_flatten([ attr/xattr.h linux/falloc.h linux/fd.h + linux/fsmap.h linux/major.h linux/loop.h + linux/types.h net/if_dl.h netinet/in.h sys/acl.h @@ -900,7 +966,27 @@ AC_CHECK_HEADERS(m4_flatten([ sys/types.h sys/un.h sys/wait.h + sys/xattr.h ])) +dnl Check where to find a dd(1) that supports iflag=fullblock +dnl and oflag=append +AC_MSG_CHECKING([for a dd(1) program that supports iflag=fullblock]) +DD= +for i in dd gdd ; do + if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then + DD=$i + break + fi +done +if test -n "$DD" ; then + AC_MSG_RESULT([$DD]) +else + AC_MSG_RESULT([not found, using dd]) + DD=dd + AC_MSG_WARN([No GNU-compatible dd(1) program found, expect some self-test failures.]) +fi +AC_SUBST([DD]) + AC_CHECK_HEADERS(net/if.h,,, [[ #if HAVE_SYS_TYPES_H @@ -912,7 +998,7 @@ AC_CHECK_HEADERS(net/if.h,,, ]]) AC_FUNC_VPRINTF dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen -dnl is not decleared. +dnl is not declared. AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1, [Define to 1 if dirent has d_reclen])],, [#include ]) @@ -950,16 +1036,19 @@ AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) AC_CHECK_SIZEOF(off_t) +AC_CHECK_SIZEOF(time_t) SIZEOF_SHORT=$ac_cv_sizeof_short SIZEOF_INT=$ac_cv_sizeof_int SIZEOF_LONG=$ac_cv_sizeof_long SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long SIZEOF_OFF_T=$ac_cv_sizeof_off_t +SIZEOF_TIME_T=$ac_cv_sizeof_time_t AC_SUBST(SIZEOF_SHORT) AC_SUBST(SIZEOF_INT) AC_SUBST(SIZEOF_LONG) AC_SUBST(SIZEOF_LONG_LONG) AC_SUBST(SIZEOF_OFF_T) +AC_SUBST(SIZEOF_TIME_T) AC_C_BIGENDIAN if test $cross_compiling = no; then BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh @@ -1025,30 +1114,40 @@ AC_CHECK_MEMBER(struct sockaddr.sa_len, [#include #include ]) dnl -dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using -dnl the system-provided blkid library +dnl If we are using the system-provided blkid library, check for +dnl the functions added after migrating that library to util-linux dnl if test -n "$BLKID_CMT"; then - AC_SEARCH_LIBS([blkid_probe_all], [blkid]) + AC_CHECK_LIB(blkid, blkid_probe_get_topology, + AC_DEFINE(HAVE_BLKID_PROBE_GET_TOPOLOGY, 1, + [Define to 1 if blkid has blkid_probe_get_topology])) + AC_CHECK_LIB(blkid, blkid_probe_enable_partitions, + AC_DEFINE(HAVE_BLKID_PROBE_ENABLE_PARTITIONS, 1, + [Define to 1 if blkid has blkid_probe_enable_partitions])) fi dnl +if test -n "$DLOPEN_LIB" ; then + ac_cv_func_dlopen=yes +fi AC_CHECK_FUNCS(m4_flatten([ __secure_getenv add_key backtrace - blkid_probe_get_topology - blkid_probe_enable_partitions chflags + dlopen fadvise64 fallocate fallocate64 fchown + fcntl fdatasync fstat64 + fsync ftruncate64 futimes getcwd getdtablesize + gethostname getmntinfo getpwuid_r getrlimit @@ -1106,11 +1205,16 @@ dnl See if libmagic exists dnl AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic AC_CHECK_HEADERS([magic.h])]) -if test "$ac_cv_lib_dl_dlopen" = yes ; then +if test "$ac_cv_func_dlopen" = yes ; then MAGIC_LIB=$DLOPEN_LIB fi AC_SUBST(MAGIC_LIB) dnl +dnl Check to see if librt is required for clock_gettime() (glibc < 2.17) +dnl +AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt]) +AC_SUBST(CLOCK_GETTIME_LIB) +dnl dnl Check to see if the FUSE library is -lfuse or -losxfuse dnl FUSE_CMT= @@ -1179,16 +1283,20 @@ dnl Test for sem_init, and which library it might require: dnl AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists]) SEM_INIT_LIB='' -AC_CHECK_FUNC(sem_init, , - AC_CHECK_LIB(pthread, sem_init, +echo GL_THREADS_API: ${gl_threads_api} +if test "${gl_threads_api}" != none +then + AC_CHECK_FUNC(sem_init, , + AC_CHECK_LIB(pthread, sem_init, AC_DEFINE(HAVE_SEM_INIT, 1) SEM_INIT_LIB=-lpthread, - AC_CHECK_LIB(rt, sem_init, + AC_CHECK_LIB(rt, sem_init, AC_DEFINE(HAVE_SEM_INIT, 1) SEM_INIT_LIB=-lrt, - AC_CHECK_LIB(posix4, sem_init, + AC_CHECK_LIB(posix4, sem_init, AC_DEFINE(HAVE_SEM_INIT, 1) SEM_INIT_LIB=-lposix4))))dnl +fi AC_SUBST(SEM_INIT_LIB) dnl dnl Check for unified diff @@ -1210,6 +1318,131 @@ linux*) ;; esac dnl +dnl Check the available mount options +dnl +AX_CHECK_MOUNT_OPT(nosuid) +AX_CHECK_MOUNT_OPT(nodev) +dnl Enable LTO for all packages +dnl +AC_ARG_ENABLE([lto], +[ --enable-lto enable link time optimization],, +enable_lto=no) +if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then + AC_MSG_CHECKING([if C compiler supports LTO]) + OLD_CFLAGS="$CFLAGS" + OLD_LDFLAGS="$LDFLAGS" + LTO_FLAGS="-g -flto -ffat-lto-objects" + CFLAGS="$CFLAGS $LTO_FLAGS" + LDFLAGS="$LDFLAGS $LTO_FLAGS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])] + [lto_cflags=$LTO_FLAGS] + [lto_ldflags=$LTO_FLAGS] + [AC_PATH_PROG(gcc_ar, gcc-ar,,)] + [AC_PATH_PROG(gcc_ranlib, gcc-ranlib,,)], + [AC_MSG_RESULT([no])]) + if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then + have_lto=yes + AR="${gcc_ar}" + RANLIB="${gcc_ranlib}" + fi + CFLAGS="${OLD_CFLAGS}" + LDFLAGS="${OLD_LDFLAGS}" + AC_SUBST(have_lto) + AC_SUBST(lto_cflags) + AC_SUBST(lto_ldflags) +fi +if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then + AC_MSG_ERROR([LTO not supported by compiler.]) +fi +dnl +dnl Enable UBSAN for all packages +dnl +AC_ARG_ENABLE([ubsan], +[ --enable-ubsan enable undefined behavior sanitizer],, +enable_ubsan=no) +if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then + AC_MSG_CHECKING([if C compiler supports UBSAN]) + OLD_CFLAGS="$CFLAGS" + OLD_LDFLAGS="$LDFLAGS" + UBSAN_FLAGS="-fsanitize=undefined" + CFLAGS="$CFLAGS $UBSAN_FLAGS" + LDFLAGS="$LDFLAGS $UBSAN_FLAGS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])] + [ubsan_cflags=$UBSAN_FLAGS] + [ubsan_ldflags=$UBSAN_FLAGS] + [have_ubsan=yes], + [AC_MSG_RESULT([no])]) + CFLAGS="${OLD_CFLAGS}" + LDFLAGS="${OLD_LDFLAGS}" + AC_SUBST(have_ubsan) + AC_SUBST(ubsan_cflags) + AC_SUBST(ubsan_ldflags) +fi +if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then + AC_MSG_ERROR([UBSAN not supported by compiler.]) +fi +dnl +dnl Enable ADDRSAN for all packages +dnl +AC_ARG_ENABLE([addrsan], +[ --enable-addrsan enable address sanitizer],, +enable_addrsan=no) +if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then + AC_MSG_CHECKING([if C compiler supports ADDRSAN]) + OLD_CFLAGS="$CFLAGS" + OLD_LDFLAGS="$LDFLAGS" + ADDRSAN_FLAGS="-fsanitize=address" + CFLAGS="$CFLAGS $ADDRSAN_FLAGS" + LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])] + [addrsan_cflags=$ADDRSAN_FLAGS] + [addrsan_ldflags=$ADDRSAN_FLAGS] + [have_addrsan=yes], + [AC_MSG_RESULT([no])]) + CFLAGS="${OLD_CFLAGS}" + LDFLAGS="${OLD_LDFLAGS}" + AC_SUBST(have_addrsan) + AC_SUBST(addrsan_cflags) + AC_SUBST(addrsan_ldflags) +fi +if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then + AC_MSG_ERROR([ADDRSAN not supported by compiler.]) +fi +dnl +dnl Enable THREADSAN for all packages +dnl +AC_ARG_ENABLE([threadsan], +[ --enable-threadsan enable thread sanitizer],, +enable_threadsan=no) +if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then + AC_MSG_CHECKING([if C compiler supports THREADSAN]) + OLD_CFLAGS="$CFLAGS" + OLD_LDFLAGS="$LDFLAGS" + THREADSAN_FLAGS="-fsanitize=thread" + CFLAGS="$CFLAGS $THREADSAN_FLAGS" + LDFLAGS="$LDFLAGS $THREADSAN_FLAGS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])] + [threadsan_cflags=$THREADSAN_FLAGS] + [threadsan_ldflags=$THREADSAN_FLAGS] + [have_threadsan=yes], + [AC_MSG_RESULT([no])]) + CFLAGS="${OLD_CFLAGS}" + LDFLAGS="${OLD_LDFLAGS}" + AC_SUBST(have_threadsan) + AC_SUBST(threadsan_cflags) + AC_SUBST(threadsan_ldflags) +fi +if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then + AC_MSG_ERROR([THREADSAN not supported by compiler.]) +fi +if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then + AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.]) +fi +dnl dnl OS-specific uncomment control dnl LINUX_CMT="#" @@ -1228,6 +1461,11 @@ AC_SUBST(LINUX_CMT) AC_SUBST(CYGWIN_CMT) AC_SUBST(UNIX_CMT) dnl +dnl e2scrub only builds on linux +dnl +E2SCRUB_CMT="$LINUX_CMT" +AC_SUBST(E2SCRUB_CMT) +dnl dnl Linux and Hurd places root files in the / by default dnl case "$host_os" in @@ -1302,7 +1540,8 @@ else libdir=$libdir/$withval root_libdir=$root_libdir/$withval fi -)dnl +) +dnl dnl dnl See if -static works. This could fail if the linker does not dnl support -static, or if required external libraries are not available @@ -1310,7 +1549,7 @@ dnl in static form. dnl AC_MSG_CHECKING([whether we can link with -static]) AC_CACHE_VAL(ac_cv_e2fsprogs_use_static, -[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static" +[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static" AC_TRY_LINK([#include ],[fflush(stdout);], ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no) LDFLAGS=$SAVE_LDFLAGS]) @@ -1327,11 +1566,10 @@ solaris2.*) ;; esac AC_MSG_RESULT($ac_cv_e2fsprogs_use_static) -LDFLAG_STATIC= if test $ac_cv_e2fsprogs_use_static = yes; then - LDFLAG_STATIC=-static + LDFLAGS_STATIC="$LDFLAGS_STATIC -static" fi -AC_SUBST(LDFLAG_STATIC) +AC_SUBST(LDFLAGS_STATIC) dnl dnl Work around mysterious Darwin / GNU libintl problem dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like @@ -1345,13 +1583,6 @@ darwin*) ;; esac dnl -dnl Make the ss and et directories work correctly. -dnl -SS_DIR=`cd ${srcdir}/lib/ss; pwd` -ET_DIR=`cd ${srcdir}/lib/et; pwd` -AC_SUBST(SS_DIR) -AC_SUBST(ET_DIR) -dnl dnl Only try to run the test suite if we're not cross compiling. dnl if test "$cross_compiling" = yes ; then @@ -1374,7 +1605,6 @@ if test -n "$WITH_DIET_LIBC" ; then INCLUDES="$INCLUDES -D_REENTRANT" fi AC_SUBST(INCLUDES) -AM_MKINSTALLDIRS dnl dnl Build CFLAGS dnl @@ -1384,6 +1614,124 @@ if test $cross_compiling = no; then fi AC_SUBST(BUILD_CFLAGS) AC_SUBST(BUILD_LDFLAGS) +dnl +dnl Define CFLAGS and LDFLAGS for shared libraries +dnl +CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS} +CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS} +LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} +AC_SUBST(CFLAGS_SHLIB) +AC_SUBST(CFLAGS_STLIB) +AC_SUBST(LDFLAGS_SHLIB) + +dnl +dnl Where do udev rules go? +dnl +AC_ARG_WITH([udev_rules_dir], + [AS_HELP_STRING([--with-udev-rules-dir@<:@=DIR@:>@], + [Install udev rules into DIR.])], + [], + [with_udev_rules_dir=yes]) +AS_IF([test "x${with_udev_rules_dir}" != "xno"], + [ + AS_IF([test "x${with_udev_rules_dir}" = "xyes"], + [ + PKG_CHECK_MODULES([udev], [udev], + [ + with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d" + ], [ + with_udev_rules_dir="" + ]) + ]) + AC_MSG_CHECKING([for udev rules dir]) + pkg_udev_rules_dir="${with_udev_rules_dir}" + AS_IF([test -n "${pkg_udev_rules_dir}"], + [ + AC_MSG_RESULT(${pkg_udev_rules_dir}) + have_udev="yes" + ], + [ + AC_MSG_RESULT(no) + have_udev="no" + ]) + ], + [ + have_udev="disabled" + ]) +AC_SUBST(have_udev) +AC_SUBST(pkg_udev_rules_dir) + +dnl +dnl Where do cron jobs go? +dnl +AC_ARG_WITH([crond_dir], + [AS_HELP_STRING([--with-crond-dir@<:@=DIR@:>@], + [Install system crontabs into DIR.])], + [], + [with_crond_dir=yes]) +AS_IF([test "x${with_crond_dir}" != "xno"], + [ + AS_IF([test "x${with_crond_dir}" = "xyes"], + [ + AS_IF([test -d "/etc/cron.d"], + [with_crond_dir="/etc/cron.d"]) + ]) + AC_MSG_CHECKING([for system crontab dir]) + crond_dir="${with_crond_dir}" + AS_IF([test -n "${crond_dir}"], + [ + AC_MSG_RESULT(${crond_dir}) + have_crond="yes" + ], + [ + AC_MSG_RESULT(no) + have_crond="no" + ]) + ], + [ + have_crond="disabled" + ]) +AC_SUBST(have_crond) +AC_SUBST(crond_dir) + +dnl +dnl Where do systemd services go? +dnl +AC_ARG_WITH([systemd_unit_dir], + [AS_HELP_STRING([--with-systemd-unit-dir@<:@=DIR@:>@], + [Install systemd system units into DIR.])], + [], + [with_systemd_unit_dir=yes]) +AS_IF([test "x${with_systemd_unit_dir}" != "xno"], + [ + AS_IF([test "x${with_systemd_unit_dir}" = "xyes"], + [ + PKG_CHECK_MODULES([systemd], [systemd], + [ + with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)" + ], [ + with_systemd_unit_dir="" + ]) + m4_pattern_allow([^PKG_(MAJOR|MINOR|BUILD|REVISION)$]) + ]) + AC_MSG_CHECKING([for systemd system unit dir]) + systemd_system_unit_dir="${with_systemd_unit_dir}" + AS_IF([test -n "${systemd_system_unit_dir}"], + [ + AC_MSG_RESULT(${systemd_system_unit_dir}) + have_systemd="yes" + ], + [ + AC_MSG_RESULT(no) + have_systemd="no" + ]) + ], + [ + have_systemd="disabled" + ]) +AC_SUBST(have_systemd) +AC_SUBST(systemd_system_unit_dir) + dnl dnl Make our output files, being sure that we create the some miscellaneous dnl directories @@ -1400,7 +1748,7 @@ if test -z "$BLKID_CMT" ; then blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \ lib/blkid/blkid_types.h" fi -for i in MCONFIG Makefile e2fsprogs.spec \ +for i in MCONFIG Makefile \ util/Makefile util/subst.conf util/gen-tarball util/install-symlink \ lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \ lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \ @@ -1409,7 +1757,7 @@ for i in MCONFIG Makefile e2fsprogs.spec \ misc/Makefile ext2ed/Makefile e2fsck/Makefile \ debugfs/Makefile tests/Makefile tests/progs/Makefile \ resize/Makefile doc/Makefile intl/Makefile \ - intl/libgnuintl.h po/Makefile.in ; do + intl/libgnuintl.h po/Makefile.in scrub/Makefile; do if test -d `dirname ${srcdir}/$i` ; then outlist="$outlist $i" fi