############################################################################### ## Copyright (C) 2000-2004 Sistina Software, Inc. All rights reserved. ## Copyright (C) 2004-2014 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions ## of the GNU General Public License v.2. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software Foundation, ## Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ################################################################################ AC_PREREQ(2.61) ################################################################################ dnl -- Process this file with autoconf to produce a configure script. AC_INIT AC_CONFIG_SRCDIR([lib/device/dev-cache.h]) AC_CONFIG_HEADERS([lib/misc/configure.h]) ################################################################################ dnl -- Setup the directory where autoconf has auxilary files AC_CONFIG_AUX_DIR(autoconf) ################################################################################ dnl -- Get system type AC_CANONICAL_TARGET([]) case "$host_os" in linux*) CFLAGS="$CFLAGS" COPTIMISE_FLAG="-O2" CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" ELDFLAGS="-Wl,--export-dynamic" # FIXME Generate list and use --dynamic-list=.dlopen.sym CLDWHOLEARCHIVE="-Wl,-whole-archive" CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive" LDDEPS="$LDDEPS .export.sym" LIB_SUFFIX=so DEVMAPPER=yes LVMETAD=no ODIRECT=yes DM_IOCTLS=yes SELINUX=yes CLUSTER=internal FSADM=yes BLKDEACTIVATE=yes ;; darwin*) CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" COPTIMISE_FLAG="-O2" CLDFLAGS="$CLDFLAGS" ELDFLAGS= CLDWHOLEARCHIVE="-all_load" CLDNOWHOLEARCHIVE= LIB_SUFFIX=dylib DEVMAPPER=yes ODIRECT=no DM_IOCTLS=no SELINUX=no CLUSTER=none FSADM=no BLKDEACTIVATE=no ;; esac ################################################################################ dnl -- Checks for programs. AC_PROG_SED AC_PROG_AWK AC_PROG_CC dnl probably no longer needed in 2008, but... AC_PROG_GCC_TRADITIONAL AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_MKDIR_P AC_PROG_RANLIB AC_PATH_TOOL(CFLOW_CMD, cflow) AC_PATH_TOOL(CSCOPE_CMD, cscope) ################################################################################ dnl -- Check for header files. AC_HEADER_DIRENT AC_HEADER_MAJOR AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_CHECK_HEADERS([locale.h stddef.h syslog.h sys/file.h sys/time.h assert.h \ langinfo.h libgen.h signal.h sys/mman.h sys/resource.h sys/utsname.h \ sys/wait.h time.h], , [AC_MSG_ERROR(bailing out)]) case "$host_os" in linux*) AC_CHECK_HEADERS(asm/byteorder.h linux/fs.h malloc.h,,AC_MSG_ERROR(bailing out)) ;; darwin*) AC_CHECK_HEADERS(machine/endian.h sys/disk.h,,AC_MSG_ERROR(bailing out)) ;; esac AC_CHECK_HEADERS([ctype.h dirent.h errno.h fcntl.h getopt.h inttypes.h limits.h \ stdarg.h stdio.h stdlib.h string.h sys/ioctl.h sys/param.h sys/stat.h \ sys/types.h unistd.h], , [AC_MSG_ERROR(bailing out)]) AC_CHECK_HEADERS(termios.h sys/statvfs.h) ################################################################################ dnl -- Check for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_CHECK_MEMBERS([struct stat.st_rdev]) AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIGNAL AC_TYPE_SIZE_T AC_TYPE_MODE_T AC_TYPE_INT8_T AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT64_T AC_TYPE_SSIZE_T AC_TYPE_UID_T AC_TYPE_UINT8_T AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_TYPE_UINT64_T AC_CHECK_MEMBERS([struct stat.st_rdev]) AC_STRUCT_TM ################################################################################ dnl -- Check for functions AC_CHECK_FUNCS([ftruncate gethostname getpagesize \ gettimeofday memset mkdir mkfifo rmdir munmap nl_langinfo setenv setlocale \ strcasecmp strchr strcspn strspn strdup strncasecmp strerror strrchr \ strstr strtol strtoul uname], , [AC_MSG_ERROR(bailing out)]) AC_FUNC_ALLOCA AC_FUNC_CLOSEDIR_VOID AC_FUNC_CHOWN AC_FUNC_FORK AC_FUNC_LSTAT AC_FUNC_MALLOC AC_FUNC_MEMCMP AC_FUNC_MMAP AC_FUNC_REALLOC AC_FUNC_STAT AC_FUNC_STRTOD AC_FUNC_VPRINTF ################################################################################ dnl -- Enables statically-linked tools AC_MSG_CHECKING(whether to use static linking) AC_ARG_ENABLE(static_link, AC_HELP_STRING([--enable-static_link], [use this to link the tools to their libraries statically (default is dynamic linking]), STATIC_LINK=$enableval, STATIC_LINK=no) AC_MSG_RESULT($STATIC_LINK) ################################################################################ dnl -- Check if compiler/linker supports PIE and RELRO AC_TRY_CCFLAG([-pie], [HAVE_PIE], [], []) AC_SUBST(HAVE_PIE) AC_TRY_LDFLAGS([-Wl,-z,relro,-z,now], [HAVE_FULL_RELRO], [], []) AC_SUBST(HAVE_FULL_RELRO) ################################################################################ dnl -- Prefix is /usr by default, the exec_prefix default is setup later AC_PREFIX_DEFAULT(/usr) ################################################################################ dnl -- Setup the ownership of the files AC_MSG_CHECKING(file owner) AC_ARG_WITH(user, AC_HELP_STRING([--with-user=USER], [set the owner of installed files [[USER=]]]), OWNER=$withval) AC_MSG_RESULT($OWNER) test -n "$OWNER" && INSTALL="$INSTALL -o $OWNER" ################################################################################ dnl -- Setup the group ownership of the files AC_MSG_CHECKING(group owner) AC_ARG_WITH(group, AC_HELP_STRING([--with-group=GROUP], [set the group owner of installed files [[GROUP=]]]), GROUP=$withval) AC_MSG_RESULT($GROUP) test -n "$GROUP" && INSTALL="$INSTALL -g $GROUP" ################################################################################ dnl -- Setup device node ownership AC_MSG_CHECKING(device node uid) AC_ARG_WITH(device-uid, AC_HELP_STRING([--with-device-uid=UID], [set the owner used for new device nodes [[UID=0]]]), DM_DEVICE_UID=$withval, DM_DEVICE_UID=0) AC_MSG_RESULT($DM_DEVICE_UID) ################################################################################ dnl -- Setup device group ownership AC_MSG_CHECKING(device node gid) AC_ARG_WITH(device-gid, AC_HELP_STRING([--with-device-gid=GID], [set the group used for new device nodes [[GID=0]]]), DM_DEVICE_GID=$withval, DM_DEVICE_GID=0) AC_MSG_RESULT($DM_DEVICE_GID) ################################################################################ dnl -- Setup device mode AC_MSG_CHECKING(device node mode) AC_ARG_WITH(device-mode, AC_HELP_STRING([--with-device-mode=MODE], [set the mode used for new device nodes [[MODE=0600]]]), DM_DEVICE_MODE=$withval, DM_DEVICE_MODE=0600) AC_MSG_RESULT($DM_DEVICE_MODE) AC_MSG_CHECKING(when to create device nodes) AC_ARG_WITH(device-nodes-on, AC_HELP_STRING([--with-device-nodes-on=ON], [create nodes on resume or create [[ON=resume]]]), ADD_NODE=$withval, ADD_NODE=resume) case "$ADD_NODE" in resume) add_on=DM_ADD_NODE_ON_RESUME;; create) add_on=DM_ADD_NODE_ON_CREATE;; *) AC_MSG_ERROR([--with-device-nodes-on parameter invalid]);; esac AC_MSG_RESULT(on $ADD_NODE) AC_DEFINE_UNQUOTED([DEFAULT_DM_ADD_NODE], $add_on, [Define default node creation behavior with dmsetup create]) AC_MSG_CHECKING(default name mangling) AC_ARG_WITH(default-name-mangling, AC_HELP_STRING([--with-default-name-mangling=MANGLING], [default name mangling: auto/none/hex [[MANGLING=auto]]]), MANGLING=$withval, MANGLING=auto) case "$MANGLING" in auto) mangling=DM_STRING_MANGLING_AUTO;; none|disabled) mangling=DM_STRING_MANGLING_NONE;; hex) mangling=DM_STRING_MANGLING_HEX;; *) AC_MSG_ERROR([--with-default-name-mangling parameter invalid]);; esac AC_MSG_RESULT($MANGLING) AC_DEFINE_UNQUOTED([DEFAULT_DM_NAME_MANGLING], $mangling, [Define default name mangling behaviour]) ################################################################################ dnl -- LVM1 tool fallback option AC_MSG_CHECKING(whether to enable lvm1 fallback) AC_ARG_ENABLE(lvm1_fallback, AC_HELP_STRING([--enable-lvm1_fallback], [use this to fall back and use LVM1 binaries if device-mapper is missing from the kernel]), LVM1_FALLBACK=$enableval, LVM1_FALLBACK=no) AC_MSG_RESULT($LVM1_FALLBACK) if test "$LVM1_FALLBACK" = yes; then AC_DEFINE([LVM1_FALLBACK], 1, [Define to 1 if 'lvm' should fall back to using LVM1 binaries if device-mapper is missing from the kernel]) fi ################################################################################ dnl -- format1 inclusion type AC_MSG_CHECKING(whether to include support for lvm1 metadata) AC_ARG_WITH(lvm1, AC_HELP_STRING([--with-lvm1=TYPE], [LVM1 metadata support: internal/shared/none [[TYPE=internal]]]), LVM1=$withval, LVM1=internal) AC_MSG_RESULT($LVM1) case "$LVM1" in none|share) ;; internal) AC_DEFINE([LVM1_INTERNAL], 1, [Define to 1 to include built-in support for LVM1 metadata.]) ;; *) AC_MSG_ERROR([--with-lvm1 parameter invalid]) ;; esac ################################################################################ dnl -- format_pool inclusion type AC_MSG_CHECKING(whether to include support for GFS pool metadata) AC_ARG_WITH(pool, AC_HELP_STRING([--with-pool=TYPE], [GFS pool read-only support: internal/shared/none [[TYPE=internal]]]), POOL=$withval, POOL=internal) AC_MSG_RESULT($POOL) case "$POOL" in none|shared) ;; internal) AC_DEFINE([POOL_INTERNAL], 1, [Define to 1 to include built-in support for GFS pool metadata.]) ;; *) AC_MSG_ERROR([--with-pool parameter invalid]) esac ################################################################################ dnl -- cluster_locking inclusion type AC_MSG_CHECKING(whether to include support for cluster locking) AC_ARG_WITH(cluster, AC_HELP_STRING([--with-cluster=TYPE], [cluster LVM locking support: internal/shared/none [[TYPE=internal]]]), CLUSTER=$withval) AC_MSG_RESULT($CLUSTER) case "$CLUSTER" in none|shared) ;; internal) AC_DEFINE([CLUSTER_LOCKING_INTERNAL], 1, [Define to 1 to include built-in support for clustered LVM locking.]) ;; *) AC_MSG_ERROR([--with-cluster parameter invalid]) ;; esac ################################################################################ dnl -- snapshots inclusion type AC_MSG_CHECKING(whether to include snapshots) AC_ARG_WITH(snapshots, AC_HELP_STRING([--with-snapshots=TYPE], [snapshot support: internal/shared/none [[TYPE=internal]]]), SNAPSHOTS=$withval, SNAPSHOTS=internal) AC_MSG_RESULT($SNAPSHOTS) case "$SNAPSHOTS" in none|shared) ;; internal) AC_DEFINE([SNAPSHOT_INTERNAL], 1, [Define to 1 to include built-in support for snapshots.]) ;; *) AC_MSG_ERROR([--with-snapshots parameter invalid]) ;; esac ################################################################################ dnl -- mirrors inclusion type AC_MSG_CHECKING(whether to include mirrors) AC_ARG_WITH(mirrors, AC_HELP_STRING([--with-mirrors=TYPE], [mirror support: internal/shared/none [[TYPE=internal]]]), MIRRORS=$withval, MIRRORS=internal) AC_MSG_RESULT($MIRRORS) case "$MIRRORS" in none|shared) ;; internal) AC_DEFINE([MIRRORED_INTERNAL], 1, [Define to 1 to include built-in support for mirrors.]) ;; *) AC_MSG_ERROR([--with-mirrors parameter invalid]) ;; esac ################################################################################ dnl -- raid inclusion type AC_MSG_CHECKING(whether to include raid) AC_ARG_WITH(raid, AC_HELP_STRING([--with-raid=TYPE], [raid support: internal/shared/none [[TYPE=internal]]]), RAID=$withval, RAID=internal) AC_MSG_RESULT($RAID) case "$RAID" in none|shared) ;; internal) AC_DEFINE([RAID_INTERNAL], 1, [Define to 1 to include built-in support for raid.]) ;; *) AC_MSG_ERROR([--with-raid parameter invalid]) ;; esac ################################################################################ dnl -- asynchronous volume replicator inclusion type AC_MSG_CHECKING(whether to include replicators) AC_ARG_WITH(replicators, AC_HELP_STRING([--with-replicators=TYPE], [replicator support: internal/shared/none [[TYPE=none]]]), REPLICATORS=$withval, REPLICATORS=none) AC_MSG_RESULT($REPLICATORS) case "$REPLICATORS" in none|shared) ;; internal) AC_DEFINE([REPLICATOR_INTERNAL], 1, [Define to 1 to include built-in support for replicators.]) ;; *) AC_MSG_ERROR([--with-replicators parameter invalid ($REPLICATORS)]) ;; esac ################################################################################ dnl -- thin provisioning AC_MSG_CHECKING(whether to include thin provisioning) AC_ARG_WITH(thin, AC_HELP_STRING([--with-thin=TYPE], [thin provisioning support: internal/shared/none [[TYPE=internal]]]), THIN=$withval, THIN=internal) AC_ARG_WITH(thin-check, AC_HELP_STRING([--with-thin-check=PATH], [thin_check tool: [[autodetect]]]), THIN_CHECK_CMD=$withval, THIN_CHECK_CMD="autodetect") AC_ARG_WITH(thin-dump, AC_HELP_STRING([--with-thin-dump=PATH], [thin_dump tool: [[autodetect]]]), THIN_DUMP_CMD=$withval, THIN_DUMP_CMD="autodetect") AC_ARG_WITH(thin-repair, AC_HELP_STRING([--with-thin-repair=PATH], [thin_repair tool: [[autodetect]]]), THIN_REPAIR_CMD=$withval, THIN_REPAIR_CMD="autodetect") AC_ARG_WITH(thin-restore, AC_HELP_STRING([--with-thin-restore=PATH], [thin_restore tool: [[autodetect]]]), THIN_RESTORE_CMD=$withval, THIN_RESTORE_CMD="autodetect") AC_MSG_RESULT($THIN) case "$THIN" in none|shared) ;; internal) AC_DEFINE([THIN_INTERNAL], 1, [Define to 1 to include built-in support for thin provisioning.]) ;; *) AC_MSG_ERROR([--with-thin parameter invalid ($THIN)]) ;; esac dnl -- thin_check needs-check flag AC_ARG_ENABLE(thin_check_needs_check, AC_HELP_STRING([--disable-thin_check_needs_check], [required if thin_check version is < 0.3.0]), THIN_CHECK_NEEDS_CHECK=$enableval, THIN_CHECK_NEEDS_CHECK=yes) # Test if necessary thin tools are available # if not - use plain defaults and warn user case "$THIN" in internal|shared) # Empty means a config way to ignore thin checking if test "$THIN_CHECK_CMD" = "autodetect"; then AC_PATH_TOOL(THIN_CHECK_CMD, thin_check) if test -z "$THIN_CHECK_CMD"; then AC_MSG_WARN([thin_check not found in path $PATH]) THIN_CHECK_CMD=/usr/sbin/thin_check THIN_CONFIGURE_WARN=y fi fi if test "$THIN_CHECK_NEEDS_CHECK" = yes; then THIN_CHECK_VSN=`"$THIN_CHECK_CMD" -V 2>/dev/null` THIN_CHECK_VSN_MAJOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $1}'` THIN_CHECK_VSN_MINOR=`echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $2}'` if test -z "$THIN_CHECK_VSN_MAJOR" -o -z "$THIN_CHECK_VSN_MINOR"; then AC_MSG_WARN([$THIN_CHECK_CMD: Bad version "$THIN_CHECK_VSN" found]) THIN_CHECK_VERSION_WARN=y THIN_CHECK_NEEDS_CHECK=no elif test "$THIN_CHECK_VSN_MAJOR" -eq 0 -a "$THIN_CHECK_VSN_MINOR" -lt 3; then AC_MSG_WARN([$THIN_CHECK_CMD: Old version "$THIN_CHECK_VSN" found]) THIN_CHECK_VERSION_WARN=y THIN_CHECK_NEEDS_CHECK=no fi fi # Empty means a config way to ignore thin checking if test "$THIN_DUMP_CMD" = "autodetect"; then AC_PATH_TOOL(THIN_DUMP_CMD, thin_dump) test -z "$THIN_DUMP_CMD" && { AC_MSG_WARN(thin_dump not found in path $PATH) THIN_DUMP_CMD=/usr/sbin/thin_dump THIN_CONFIGURE_WARN=y } fi # Empty means a config way to ignore thin checking if test "$THIN_REPAIR_CMD" = "autodetect"; then AC_PATH_TOOL(THIN_REPAIR_CMD, thin_repair) test -z "$THIN_REPAIR_CMD" && { AC_MSG_WARN(thin_repair not found in path $PATH) THIN_REPAIR_CMD=/usr/sbin/thin_repair THIN_CONFIGURE_WARN=y } fi # Empty means a config way to ignore thin checking if test "$THIN_RESTORE_CMD" = "autodetect"; then AC_PATH_TOOL(THIN_RESTORE_CMD, thin_restore) test -z "$THIN_RESTORE_CMD" && { AC_MSG_WARN(thin_restore not found in path $PATH) THIN_RESTORE_CMD=/usr/sbin/thin_restore THIN_CONFIGURE_WARN=y } fi ;; esac AC_MSG_CHECKING([whether thin_check supports the needs-check flag]) AC_MSG_RESULT([$THIN_CHECK_NEEDS_CHECK]) if test "$THIN_CHECK_NEEDS_CHECK" = yes; then AC_DEFINE([THIN_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'thin_check' tool requires the --clear-needs-check-flag option]) fi AC_DEFINE_UNQUOTED([THIN_CHECK_CMD], ["$THIN_CHECK_CMD"], [The path to 'thin_check', if available.]) AC_DEFINE_UNQUOTED([THIN_DUMP_CMD], ["$THIN_DUMP_CMD"], [The path to 'thin_dump', if available.]) AC_DEFINE_UNQUOTED([THIN_REPAIR_CMD], ["$THIN_REPAIR_CMD"], [The path to 'thin_repair', if available.]) AC_DEFINE_UNQUOTED([THIN_RESTORE_CMD], ["$THIN_RESTORE_CMD"], [The path to 'thin_restore', if available.]) ################################################################################ dnl -- cache inclusion type AC_MSG_CHECKING(whether to include cache) AC_ARG_WITH(cache, AC_HELP_STRING([--with-cache=TYPE], [cache support: internal/shared/none [[TYPE=none]]]), CACHE=$withval, CACHE=none) AC_MSG_RESULT($CACHE) case "$CACHE" in none|shared) ;; internal) AC_DEFINE([CACHE_INTERNAL], 1, [Define to 1 to include built-in support for cache.]) ;; *) AC_MSG_ERROR([--with-cache parameter invalid]) ;; esac ################################################################################ dnl -- Disable readline AC_MSG_CHECKING(whether to enable readline) AC_ARG_ENABLE([readline], AC_HELP_STRING([--disable-readline], [disable readline support]), READLINE=$enableval, READLINE=maybe) AC_MSG_RESULT($READLINE) ################################################################################ dnl -- Disable realtime clock support AC_MSG_CHECKING(whether to enable realtime support) AC_ARG_ENABLE(realtime, AC_HELP_STRING([--enable-realtime], [enable realtime clock support]), REALTIME=$enableval) AC_MSG_RESULT($REALTIME) ################################################################################ dnl -- disable OCF resource agents AC_MSG_CHECKING(whether to enable OCF resource agents) AC_ARG_ENABLE(ocf, AC_HELP_STRING([--enable-ocf], [enable Open Cluster Framework (OCF) compliant resource agents]), OCF=$enableval, OCF=no) AC_MSG_RESULT($OCF) AC_ARG_WITH(ocfdir, AC_HELP_STRING([--with-ocfdir=DIR], [install OCF files in DIR [[PREFIX/lib/ocf/resource.d/lvm2]]]), OCFDIR=$withval, OCFDIR='${prefix}/lib/ocf/resource.d/lvm2') ################################################################################ dnl -- Init pkg-config with dummy invokation: dnl -- this is required because PKG_CHECK_MODULES macro is expanded dnl -- to initialize the pkg-config environment only at the first invokation, dnl -- that would be conditional in this configure.in. pkg_config_init() { if test "$PKGCONFIG_INIT" != 1; then PKG_CHECK_MODULES(PKGCONFIGINIT, pkgconfiginit, [], [AC_MSG_RESULT([pkg-config initialized])]) PKGCONFIG_INIT=1 fi } ################################################################################ dnl -- Set up pidfile and run directory AH_TEMPLATE(DEFAULT_PID_DIR) AC_ARG_WITH(default-pid-dir, AC_HELP_STRING([--with-default-pid-dir=PID_DIR], [Default directory to keep PID files in. [[/var/run]]]), DEFAULT_PID_DIR="$withval", DEFAULT_PID_DIR="/var/run") AC_DEFINE_UNQUOTED(DEFAULT_PID_DIR, ["$DEFAULT_PID_DIR"], [Default directory to keep PID files in.]) AH_TEMPLATE(DEFAULT_DM_RUN_DIR, [Name of default DM run directory.]) AC_ARG_WITH(default-dm-run-dir, AC_HELP_STRING([--with-default-dm-run-dir=DM_RUN_DIR], [ Default DM run directory. [[/var/run]]]), DEFAULT_DM_RUN_DIR="$withval", DEFAULT_DM_RUN_DIR="/var/run") AC_DEFINE_UNQUOTED(DEFAULT_DM_RUN_DIR, ["$DEFAULT_DM_RUN_DIR"], [Default DM run directory.]) AH_TEMPLATE(DEFAULT_RUN_DIR, [Name of default LVM run directory.]) AC_ARG_WITH(default-run-dir, AC_HELP_STRING([--with-default-run-dir=RUN_DIR], [Default LVM run directory. [[/var/run/lvm]]]), DEFAULT_RUN_DIR="$withval", DEFAULT_RUN_DIR="/var/run/lvm") AC_DEFINE_UNQUOTED(DEFAULT_RUN_DIR, ["$DEFAULT_RUN_DIR"], [Default LVM run directory.]) ################################################################################ dnl -- Build cluster LVM daemon AC_MSG_CHECKING(whether to build cluster LVM daemon) AC_ARG_WITH(clvmd, [ --with-clvmd=TYPE build cluster LVM Daemon The following cluster manager combinations are valid: * cman (RHEL5 or equivalent) * cman,corosync,openais (or selection of them) * singlenode (localhost only) * all (autodetect) * none (disable build) [[TYPE=none]]], CLVMD=$withval, CLVMD=none) test "$CLVMD" = yes && CLVMD=all AC_MSG_RESULT($CLVMD) dnl -- If clvmd enabled without cluster locking, automagically include it test "$CLVMD" != none -a "$CLUSTER" = none && CLUSTER=internal dnl -- init pkgconfig if required test "$CLVMD" != none && pkg_config_init dnl -- Express clvmd init script Required-Start / Required-Stop CLVMD_CMANAGERS="" dnl -- On RHEL4/RHEL5, qdiskd is started from a separate init script. dnl -- Enable if we are build for cman. CLVMD_NEEDS_QDISKD=no dnl -- define build types if [[ `expr x"$CLVMD" : '.*gulm.*'` != 0 ]]; then AC_MSG_ERROR([Since version 2.02.87 GULM locking is no longer supported.]); fi if [[ `expr x"$CLVMD" : '.*cman.*'` != 0 ]]; then BUILDCMAN=yes CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman" CLVMD_NEEDS_QDISKD=yes fi if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then BUILDCOROSYNC=yes CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync" fi if [[ `expr x"$CLVMD" : '.*openais.*'` != 0 ]]; then BUILDOPENAIS=yes CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais" fi test "$CLVMD_NEEDS_QDISKD" != no && CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd" dnl -- define a soft bailout if we are autodetecting soft_bailout() { NOTFOUND=1 } hard_bailout() { AC_MSG_ERROR([bailing out]) } dnl -- if clvmd=all then set soft_bailout (we do not want to error) dnl -- and set all builds to yes. We need to do this here dnl -- to skip the openais|corosync sanity check above. if test "$CLVMD" = all; then bailout=soft_bailout BUILDCMAN=yes BUILDCOROSYNC=yes BUILDOPENAIS=yes else bailout=hard_bailout fi dnl -- helper macro to check libs without adding them to LIBS check_lib_no_libs() { lib_no_libs_arg1=$1 shift lib_no_libs_arg2=$1 shift lib_no_libs_args=$@ AC_CHECK_LIB([$lib_no_libs_arg1], [$lib_no_libs_arg2],, [$bailout], [$lib_no_libs_args]) LIBS=$ac_check_lib_save_LIBS } dnl -- Look for cman libraries if required. if test "$BUILDCMAN" = yes; then PKG_CHECK_MODULES(CMAN, libcman, [HAVE_CMAN=yes], [NOTFOUND=0 AC_CHECK_HEADERS(libcman.h,,$bailout) check_lib_no_libs cman cman_init if test $NOTFOUND = 0; then AC_MSG_RESULT([no pkg for libcman, using -lcman]) CMAN_LIBS="-lcman" HAVE_CMAN=yes fi]) CHECKCONFDB=yes CHECKDLM=yes fi dnl -- Look for corosync that is required also for openais build dnl -- only enough recent version of corosync ship pkg-config files. dnl -- We can safely rely on that to detect the correct bits. if test "$BUILDCOROSYNC" = yes -o "$BUILDOPENAIS" = yes; then PKG_CHECK_MODULES(COROSYNC, corosync, [HAVE_COROSYNC=yes], $bailout) CHECKCONFDB=yes CHECKCMAP=yes fi dnl -- Look for corosync libraries if required. if test "$BUILDCOROSYNC" = yes; then PKG_CHECK_MODULES(QUORUM, libquorum, [HAVE_QUORUM=yes], $bailout) CHECKCPG=yes CHECKDLM=yes fi dnl -- Look for openais libraries if required. if test "$BUILDOPENAIS" = yes; then PKG_CHECK_MODULES(SALCK, libSaLck, [HAVE_SALCK=yes], $bailout) CHECKCPG=yes fi dnl -- Below are checks for libraries common to more than one build. dnl -- Check confdb library. dnl -- mandatory for corosync < 2.0 build. dnl -- optional for openais/cman build. if test "$CHECKCONFDB" = yes; then PKG_CHECK_MODULES(CONFDB, libconfdb, [HAVE_CONFDB=yes], [HAVE_CONFDB=no]) AC_CHECK_HEADERS([corosync/confdb.h], [HAVE_CONFDB_H=yes], [HAVE_CONFDB_H=no]) if test "$HAVE_CONFDB" != yes -a "$HAVE_CONFDB_H" = yes; then check_lib_no_libs confdb confdb_initialize AC_MSG_RESULT([no pkg for confdb, using -lconfdb]) CONFDB_LIBS="-lconfdb" HAVE_CONFDB=yes fi fi dnl -- Check cmap library dnl -- mandatory for corosync >= 2.0 build. if test "$CHECKCMAP" = yes; then PKG_CHECK_MODULES(CMAP, libcmap, [HAVE_CMAP=yes], [HAVE_CMAP=no]) AC_CHECK_HEADERS([corosync/cmap.h], [HAVE_CMAP_H=yes], [HAVE_CMAP_H=no]) if test "$HAVE_CMAP" != yes -a "$HAVE_CMAP_H" = yes; then check_lib_no_libs cmap cmap_initialize AC_MSG_RESULT([no pkg for cmap, using -lcmap]) CMAP_LIBS="-lcmap" HAVE_CMAP=yes fi fi if test "$BUILDCOROSYNC" = yes -a \ "$HAVE_CMAP" != yes -a "$HAVE_CONFDB" != yes -a "$CLVMD" != all; then AC_MSG_ERROR([bailing out... cmap (corosync >= 2.0) or confdb (corosync < 2.0) library is required]) fi dnl -- Check cpg library. if test "$CHECKCPG" = yes; then PKG_CHECK_MODULES(CPG, libcpg, [HAVE_CPG=yes], [$bailout]) fi dnl -- Check dlm library. if test "$CHECKDLM" = yes; then PKG_CHECK_MODULES(DLM, libdlm, [HAVE_DLM=yes], [NOTFOUND=0 AC_CHECK_HEADERS(libdlm.h,,[$bailout]) check_lib_no_libs dlm dlm_lock -lpthread if test $NOTFOUND = 0; then AC_MSG_RESULT([no pkg for libdlm, using -ldlm]) DLM_LIBS="-ldlm -lpthread" HAVE_DLM=yes fi]) fi dnl -- If we are autodetecting, we need to re-create dnl -- the depedencies checks and set a proper CLVMD, dnl -- together with init script Required-Start/Stop entries. if test "$CLVMD" = all; then CLVMD=none CLVMD_CMANAGERS="" CLVMD_NEEDS_QDISKD=no if test "$HAVE_CMAN" = yes -a \ "$HAVE_DLM" = yes; then AC_MSG_RESULT([Enabling clvmd cman cluster manager]) CLVMD="$CLVMD,cman" CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman" CLVMD_NEEDS_QDISKD=yes fi if test "$HAVE_COROSYNC" = yes -a \ "$HAVE_QUORUM" = yes -a \ "$HAVE_CPG" = yes -a \ "$HAVE_DLM" = yes; then if test "$HAVE_CONFDB" = yes -o "$HAVE_CMAP" = yes; then AC_MSG_RESULT([Enabling clvmd corosync cluster manager]) CLVMD="$CLVMD,corosync" CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync" fi fi if test "$HAVE_COROSYNC" = yes -a \ "$HAVE_CPG" = yes -a \ "$HAVE_SALCK" = yes; then AC_MSG_RESULT([Enabling clvmd openais cluster manager]) CLVMD="$CLVMD,openais" CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais" fi test "$CLVMD_NEEDS_QDISKD" != no && CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd" test "$CLVMD" = none && AC_MSG_RESULT([Disabling clvmd build. No cluster manager detected.]) fi dnl -- Fixup CLVMD_CMANAGERS with new corosync dnl -- clvmd built with corosync >= 2.0 needs dlm (either init or systemd service) dnl -- to be started. if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then test "$HAVE_CMAP" = yes && CLVMD_CMANAGERS="$CLVMD_CMANAGERS dlm" fi ################################################################################ dnl -- clvmd pidfile if test "$CLVMD" != none; then AC_ARG_WITH(clvmd-pidfile, AC_HELP_STRING([--with-clvmd-pidfile=PATH], [clvmd pidfile [[PID_DIR/clvmd.pid]]]), CLVMD_PIDFILE=$withval, CLVMD_PIDFILE="$DEFAULT_PID_DIR/clvmd.pid") AC_DEFINE_UNQUOTED(CLVMD_PIDFILE, ["$CLVMD_PIDFILE"], [Path to clvmd pidfile.]) fi ################################################################################ dnl -- Build cluster mirror log daemon AC_MSG_CHECKING(whether to build cluster mirror log daemon) AC_ARG_ENABLE(cmirrord, AC_HELP_STRING([--enable-cmirrord], [enable the cluster mirror log daemon]), CMIRRORD=$enableval, CMIRRORD=no) AC_MSG_RESULT($CMIRRORD) BUILD_CMIRRORD=$CMIRRORD ################################################################################ dnl -- cmirrord pidfile if test "$BUILD_CMIRRORD" = yes; then AC_ARG_WITH(cmirrord-pidfile, AC_HELP_STRING([--with-cmirrord-pidfile=PATH], [cmirrord pidfile [[PID_DIR/cmirrord.pid]]]), CMIRRORD_PIDFILE=$withval, CMIRRORD_PIDFILE="$DEFAULT_PID_DIR/cmirrord.pid") AC_DEFINE_UNQUOTED(CMIRRORD_PIDFILE, ["$CMIRRORD_PIDFILE"], [Path to cmirrord pidfile.]) fi ################################################################################ dnl -- Look for corosync libraries if required. if [[ "$BUILD_CMIRRORD" = yes ]]; then pkg_config_init AC_DEFINE([CMIRROR_HAS_CHECKPOINT], 1, [Define to 1 to include libSaCkpt.]) PKG_CHECK_MODULES(SACKPT, libSaCkpt, [HAVE_SACKPT=yes], [AC_MSG_RESULT([no libSaCkpt, compiling without it]) AC_DEFINE([CMIRROR_HAS_CHECKPOINT], 0, [Define to 0 to exclude libSaCkpt.])]) test "$HAVE_CPG" != yes && PKG_CHECK_MODULES(CPG, libcpg) fi ################################################################################ dnl -- Enable debugging AC_MSG_CHECKING(whether to enable debugging) AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [enable debugging]), DEBUG=$enableval, DEBUG=no) AC_MSG_RESULT($DEBUG) dnl -- Normally turn off optimisation for debug builds if test "$DEBUG" = yes; then COPTIMISE_FLAG= else CSCOPE_CMD= fi dnl -- Check if compiler supports -Wjump-misses-init AC_TRY_CCFLAG([-Wjump-misses-init], [HAVE_WJUMP], [], []) AC_SUBST(HAVE_WJUMP) AC_TRY_CCFLAG([-Wclobbered], [HAVE_WCLOBBERED], [], []) AC_SUBST(HAVE_WCLOBBERED) ################################################################################ dnl -- Override optimisation AC_MSG_CHECKING(for C optimisation flag) AC_ARG_WITH(optimisation, AC_HELP_STRING([--with-optimisation=OPT], [C optimisation flag [[OPT=-O2]]]), COPTIMISE_FLAG=$withval) AC_MSG_RESULT($COPTIMISE_FLAG) ################################################################################ dnl -- Enable profiling AC_MSG_CHECKING(whether to gather gcov profiling data) AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [gather gcov profiling data]), PROFILING=$enableval, PROFILING=no) AC_MSG_RESULT($PROFILING) if test "$PROFILING" = yes; then COPTIMISE_FLAG="$COPTIMISE_FLAG -fprofile-arcs -ftest-coverage" AC_PATH_TOOL(LCOV, lcov) AC_PATH_TOOL(GENHTML, genhtml) test -z "$LCOV" -o -z "$GENHTML" && AC_MSG_ERROR([lcov and genhtml are required for profiling]) AC_PATH_TOOL(GENPNG, genpng) if test -n "$GENPNG"; then AC_MSG_CHECKING([whether $GENPNG has all required modules]) if "$GENPNG" --help > /dev/null 2>&1 ; then AC_MSG_RESULT(ok) GENHTML="$GENHTML --frames" else AC_MSG_RESULT([not supported]) AC_MSG_WARN([GD.pm perl module is not installed]) GENPNG= fi fi fi ################################################################################ dnl -- Enable testing AC_MSG_CHECKING(whether to enable unit testing) AC_ARG_ENABLE(testing, AC_HELP_STRING([--enable-testing], [enable testing targets in the makefile]), TESTING=$enableval, TESTING=no) AC_MSG_RESULT($TESTING) if test "$TESTING" = yes; then pkg_config_init PKG_CHECK_MODULES(CUNIT, cunit >= 2.0) fi ################################################################################ dnl -- Enable valgrind awareness of memory pools AC_MSG_CHECKING(whether to enable valgrind awareness of pools) AC_ARG_ENABLE(valgrind_pool, AC_HELP_STRING([--enable-valgrind-pool], [enable valgrind awareness of pools]), VALGRIND_POOL=$enableval, VALGRIND_POOL=no) AC_MSG_RESULT($VALGRIND_POOL) if test "$VALGRIND_POOL" = yes; then pkg_config_init PKG_CHECK_MODULES(VALGRIND, valgrind, [], [AC_MSG_ERROR(bailing out)]) AC_DEFINE([VALGRIND_POOL], 1, [Enable a valgrind aware build of pool]) AC_SUBST(VALGRIND_POOL) AC_SUBST(VALGRIND_CFLAGS) fi ################################################################################ dnl -- Disable devmapper AC_MSG_CHECKING(whether to use device-mapper) AC_ARG_ENABLE(devmapper, AC_HELP_STRING([--disable-devmapper], [disable LVM2 device-mapper interaction]), DEVMAPPER=$enableval) AC_MSG_RESULT($DEVMAPPER) if test "$DEVMAPPER" = yes; then AC_DEFINE([DEVMAPPER_SUPPORT], 1, [Define to 1 to enable LVM2 device-mapper interaction.]) fi ################################################################################ dnl -- Build lvmetad AC_MSG_CHECKING(whether to build LVMetaD) AC_ARG_ENABLE(lvmetad, AC_HELP_STRING([--enable-lvmetad], [enable the LVM Metadata Daemon]), LVMETAD=$enableval) AC_MSG_RESULT($LVMETAD) BUILD_LVMETAD=$LVMETAD if test "$BUILD_LVMETAD" = yes; then AC_DEFINE([LVMETAD_SUPPORT], 1, [Define to 1 to include code that uses lvmetad.]) AC_ARG_WITH(lvmetad-pidfile, AC_HELP_STRING([--with-lvmetad-pidfile=PATH], [lvmetad pidfile [[PID_DIR/lvmetad.pid]]]), LVMETAD_PIDFILE=$withval, LVMETAD_PIDFILE="$DEFAULT_PID_DIR/lvmetad.pid") AC_DEFINE_UNQUOTED(LVMETAD_PIDFILE, ["$LVMETAD_PIDFILE"], [Path to lvmetad pidfile.]) fi ################################################################################ dnl -- Enable blkid wiping functionality AC_MSG_CHECKING(whether to enable libblkid detection of signatures when wiping) AC_ARG_ENABLE(blkid_wiping, AC_HELP_STRING([--disable-blkid_wiping], [disable libblkid detection of signatures when wiping and use native code instead]), BLKID_WIPING=$enableval, BLKID_WIPING=maybe) AC_MSG_RESULT($BLKID_WIPING) if test "$BLKID_WIPING" != no; then pkg_config_init PKG_CHECK_MODULES(BLKID, blkid >= 2.24, [test "$BLKID_WIPING" = maybe && BLKID_WIPING=yes], [if test "$BLKID_WIPING" = maybe; then BLKID_WIPING=no else AC_MSG_ERROR([bailing out... blkid library >= 2.24 is required]) fi]) if test "$BLKID_WIPING" = yes; then BLKID_PC="blkid" AC_DEFINE([BLKID_WIPING_SUPPORT], 1, [Define to 1 to use libblkid detection of signatures when wiping.]) fi fi ################################################################################ dnl -- Enable udev-systemd protocol to instantiate a service for background jobs AC_MSG_CHECKING(whether to use udev-systemd protocol for jobs in background) AC_ARG_ENABLE(udev-systemd-background-jobs, AC_HELP_STRING([--disable-udev-systemd-background-jobs], [disable udev-systemd protocol to instantiate a service for background job]), UDEV_SYSTEMD_BACKGROUND_JOBS=$enableval, UDEV_SYSTEMD_BACKGROUND_JOBS=yes) AC_MSG_RESULT($UDEV_SYSTEMD_BACKGROUND_JOBS) ################################################################################ dnl -- Enable udev synchronisation AC_MSG_CHECKING(whether to enable synchronisation with udev processing) AC_ARG_ENABLE(udev_sync, AC_HELP_STRING([--enable-udev_sync], [enable synchronisation with udev processing]), UDEV_SYNC=$enableval, UDEV_SYNC=no) AC_MSG_RESULT($UDEV_SYNC) if test "$UDEV_SYNC" = yes; then pkg_config_init PKG_CHECK_MODULES(UDEV, libudev >= 143, [UDEV_PC="libudev"]) AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.]) fi dnl -- Enable udev rules AC_MSG_CHECKING(whether to enable installation of udev rules required for synchronisation) AC_ARG_ENABLE(udev_rules, AC_HELP_STRING([--enable-udev_rules], [install rule files needed for udev synchronisation]), UDEV_RULES=$enableval, UDEV_RULES=$UDEV_SYNC) AC_MSG_RESULT($UDEV_RULES) AC_MSG_CHECKING(whether to enable executable path detection in udev rules) AC_ARG_ENABLE(udev_rule_exec_detection, AC_HELP_STRING([--enable-udev-rule-exec-detection], [enable executable path detection in udev rules]), UDEV_RULE_EXEC_DETECTION=$enableval, UDEV_RULE_EXEC_DETECTION=no) AC_MSG_RESULT($UDEV_RULE_EXEC_DETECTION) dnl -- Check support for built-in blkid against target udev version if test "$UDEV_RULE" != no ; then AC_MSG_CHECKING(whether udev supports built-in blkid) pkg_config_init if $("$PKG_CONFIG" --atleast-version=176 libudev); then UDEV_HAS_BUILTIN_BLKID=yes else UDEV_HAS_BUILTIN_BLKID=no fi AC_MSG_RESULT($UDEV_HAS_BUILTIN_BLKID) fi ################################################################################ dnl -- Compatibility mode AC_ARG_ENABLE(compat, AC_HELP_STRING([--enable-compat], [enable support for old device-mapper versions]), DM_COMPAT=$enableval, DM_COMPAT=no) if test "$DM_COMPAT" = yes; then AC_MSG_ERROR([--enable-compat is not currently supported. Since device-mapper version 1.02.66, only one version (4) of the device-mapper ioctl protocol is supported.]) fi ################################################################################ dnl -- Compatible units suffix mode AC_ARG_ENABLE(units-compat, AC_HELP_STRING([--enable-units-compat], [enable output compatibility with old versions that that do not use KiB-style unit suffixes]), UNITS_COMPAT=$enableval, UNITS_COMPAT=no) if test "$UNITS_COMPAT" = yes; then AC_DEFINE([DEFAULT_SI_UNIT_CONSISTENCY], 0, [Define to 0 to reinstate the pre-2.02.54 handling of unit suffixes.]) fi ################################################################################ dnl -- Disable ioctl AC_ARG_ENABLE(ioctl, AC_HELP_STRING([--disable-ioctl], [disable ioctl calls to device-mapper in the kernel]), DM_IOCTLS=$enableval) ################################################################################ dnl -- Disable O_DIRECT AC_MSG_CHECKING(whether to enable O_DIRECT) AC_ARG_ENABLE(o_direct, AC_HELP_STRING([--disable-o_direct], [disable O_DIRECT]), ODIRECT=$enableval) AC_MSG_RESULT($ODIRECT) if test "$ODIRECT" = yes; then AC_DEFINE([O_DIRECT_SUPPORT], 1, [Define to 1 to enable O_DIRECT support.]) fi ################################################################################ dnl -- Enable liblvm2app.so AC_MSG_CHECKING(whether to build liblvm2app.so application library) AC_ARG_ENABLE(applib, AC_HELP_STRING([--enable-applib], [build application library]), APPLIB=$enableval, APPLIB=no) AC_MSG_RESULT($APPLIB) AC_SUBST([LVM2APP_LIB]) test "$APPLIB" = yes \ && LVM2APP_LIB=-llvm2app \ || LVM2APP_LIB= ################################################################################ dnl -- Enable cmdlib AC_MSG_CHECKING(whether to compile liblvm2cmd.so) AC_ARG_ENABLE(cmdlib, AC_HELP_STRING([--enable-cmdlib], [build shared command library]), CMDLIB=$enableval, CMDLIB=no) AC_MSG_RESULT($CMDLIB) AC_SUBST([LVM2CMD_LIB]) test "$CMDLIB" = yes \ && LVM2CMD_LIB=-llvm2cmd \ || LVM2CMD_LIB= ################################################################################ dnl -- Enable Python liblvm2app bindings AC_MSG_CHECKING(whether to build Python wrapper for liblvm2app.so) AC_ARG_ENABLE(python_bindings, AC_HELP_STRING([--enable-python_bindings], [build Python applib bindings]), PYTHON_BINDINGS=$enableval, PYTHON_BINDINGS=no) AC_MSG_RESULT($PYTHON_BINDINGS) if test "$PYTHON_BINDINGS" = yes; then test "$APPLIB" != yes && AC_MSG_ERROR([--enable-python_bindings requires --enable-applib]) AC_PATH_TOOL(PYTHON, python) test -z "$PYTHON" && AC_MSG_ERROR([python is required for --enable-python_bindings but cannot be found]) AC_PATH_TOOL(PYTHON_CONFIG, python-config) test -z "$PYTHON_CONFIG" && AC_MSG_ERROR([python headers are required for --enable-python_bindings but cannot be found]) PYTHON_INCDIRS=`"$PYTHON_CONFIG" --includes` PYTHON_LIBDIRS=`"$PYTHON_CONFIG" --libs` fi ################################################################################ dnl -- Enable pkg-config AC_ARG_ENABLE(pkgconfig, AC_HELP_STRING([--enable-pkgconfig], [install pkgconfig support]), PKGCONFIG=$enableval, PKGCONFIG=no) ################################################################################ dnl -- Enable installation of writable files by user AC_ARG_ENABLE(write_install, AC_HELP_STRING([--enable-write_install], [install user writable files]), WRITE_INSTALL=$enableval, WRITE_INSTALL=no) ################################################################################ dnl -- Enable fsadm AC_MSG_CHECKING(whether to install fsadm) AC_ARG_ENABLE(fsadm, AC_HELP_STRING([--disable-fsadm], [disable fsadm]), FSADM=$enableval) AC_MSG_RESULT($FSADM) ################################################################################ dnl -- Enable blkdeactivate AC_MSG_CHECKING(whether to install blkdeactivate) AC_ARG_ENABLE(blkdeactivate, AC_HELP_STRING([--disable-blkdeactivate], [disable blkdeactivate]), BLKDEACTIVATE=$enableval) AC_MSG_RESULT($BLKDEACTIVATE) ################################################################################ dnl -- enable dmeventd handling AC_MSG_CHECKING(whether to use dmeventd) AC_ARG_ENABLE(dmeventd, AC_HELP_STRING([--enable-dmeventd], [enable the device-mapper event daemon]), DMEVENTD=$enableval) AC_MSG_RESULT($DMEVENTD) BUILD_DMEVENTD=$DMEVENTD dnl -- dmeventd currently requires internal mirror support if test "$DMEVENTD" = yes; then if test "$MIRRORS" != internal; then AC_MSG_ERROR([--enable-dmeventd currently requires --with-mirrors=internal]) fi if test "$CMDLIB" = no; then AC_MSG_ERROR([--enable-dmeventd requires --enable-cmdlib to be used as well]) fi AC_DEFINE([DMEVENTD], 1, [Define to 1 to enable the device-mapper event daemon.]) fi ################################################################################ dnl -- getline included in recent libc AC_CHECK_LIB(c, getline, AC_DEFINE([HAVE_GETLINE], 1, [Define to 1 if getline is available.])) ################################################################################ dnl -- canonicalize_file_name included in recent libc AC_CHECK_LIB(c, canonicalize_file_name, AC_DEFINE([HAVE_CANONICALIZE_FILE_NAME], 1, [Define to 1 if canonicalize_file_name is available.])) ################################################################################ dnl -- Clear default exec_prefix - install into /sbin rather than /usr/sbin test "$exec_prefix" = NONE -a "$prefix" = NONE && exec_prefix="" ################################################################################ dnl -- Check for dlopen AC_CHECK_LIB(dl, dlopen, [AC_DEFINE([HAVE_LIBDL], 1, [Define to 1 if dynamic libraries are available.]) DL_LIBS="-ldl" HAVE_LIBDL=yes], [DL_LIBS= HAVE_LIBDL=no ]) ################################################################################ dnl -- Check for shared/static conflicts if [[ \( "$LVM1" = shared -o "$POOL" = shared -o "$CLUSTER" = shared \ -o "$SNAPSHOTS" = shared -o "$MIRRORS" = shared \ -o "$RAID" = shared -o "$CACHE" = shared \ \) -a "$STATIC_LINK" = yes ]]; then AC_MSG_ERROR([Features cannot be 'shared' when building statically]) fi ################################################################################ AC_CHECK_LIB([pthread], [pthread_mutex_lock], [PTHREAD_LIBS="-lpthread"], hard_bailout) ################################################################################ dnl -- Disable selinux AC_MSG_CHECKING(whether to enable selinux support) AC_ARG_ENABLE(selinux, AC_HELP_STRING([--disable-selinux], [disable selinux support]), SELINUX=$enableval) AC_MSG_RESULT($SELINUX) ################################################################################ dnl -- Check for selinux if test "$SELINUX" = yes; then AC_CHECK_LIB([sepol], [sepol_check_context], [ AC_DEFINE([HAVE_SEPOL], 1, [Define to 1 if sepol_check_context is available.]) SELINUX_LIBS="-lsepol"]) AC_CHECK_LIB([selinux], [is_selinux_enabled], [ AC_CHECK_HEADERS([selinux/selinux.h],, hard_bailout) AC_CHECK_HEADERS([selinux/label.h]) AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.]) SELINUX_LIBS="-lselinux $SELINUX_LIBS" SELINUX_PC="libselinux" HAVE_SELINUX=yes ], [ AC_MSG_WARN(Disabling selinux) SELINUX_LIBS= SELINUX_PC= HAVE_SELINUX=no ]) fi ################################################################################ dnl -- Check for realtime clock support if test "$REALTIME" = yes; then AC_CHECK_LIB(rt, clock_gettime, HAVE_REALTIME=yes, HAVE_REALTIME=no) if test "$HAVE_REALTIME" = yes; then AC_DEFINE([HAVE_REALTIME], 1, [Define to 1 to include support for realtime clock.]) LIBS="-lrt $LIBS" else AC_MSG_WARN(Disabling realtime clock) fi fi ################################################################################ dnl -- Check for getopt AC_CHECK_HEADERS(getopt.h, AC_DEFINE([HAVE_GETOPTLONG], 1, [Define to 1 if getopt_long is available.])) ################################################################################ dnl -- Check for readline (Shamelessly copied from parted 1.4.17) if test "$READLINE" != no; then lvm_saved_libs=$LIBS AC_SEARCH_LIBS([tgetent], [tinfo ncurses curses termcap termlib], READLINE_LIBS=$ac_cv_search_tgetent, [ if test "$READLINE" = yes; then AC_MSG_ERROR( [termcap could not be found which is required for the --enable-readline option (which is enabled by default). Either disable readline support with --disable-readline or download and install termcap from: ftp.gnu.org/gnu/termcap Note: if you are using precompiled packages you will also need the development package as well (which may be called termcap-devel or something similar). Note: (n)curses also seems to work as a substitute for termcap. This was not found either - but you could try installing that as well.]) fi]) dnl -- Old systems may need extra termcap dependency explicitly in LIBS AC_CHECK_LIB([readline], [readline], [ AC_DEFINE([READLINE_SUPPORT], 1, [Define to 1 to include the LVM readline shell.]) dnl -- Try only with -lreadline and check for different symbol LIBS=$lvm_saved_libs AC_CHECK_LIB([readline], [rl_line_buffer], [ READLINE_LIBS="-lreadline" ], [ AC_MSG_RESULT([linking -lreadline with $READLINE_LIBS needed]) READLINE_LIBS="-lreadline $READLINE_LIBS" ]) ], [ READLINE_LIBS= if test "$READLINE" = yes; then AC_MSG_ERROR( [GNU Readline could not be found which is required for the --enable-readline option (which is enabled by default). Either disable readline support with --disable-readline or download and install readline from: ftp.gnu.org/gnu/readline Note: if you are using precompiled packages you will also need the development package as well (which may be called readline-devel or something similar).]) fi ]) LIBS="$READLINE_LIBS $lvm_saved_libs" AC_CHECK_FUNCS([rl_completion_matches]) LIBS=$lvm_saved_libs fi ################################################################################ dnl -- Internationalisation stuff AC_MSG_CHECKING(whether to enable internationalisation) AC_ARG_ENABLE(nls, AC_HELP_STRING([--enable-nls], [enable Native Language Support]), INTL=$enableval, INTL=no) AC_MSG_RESULT($INTL) if test "$INTL" = yes; then # FIXME - Move this - can be device-mapper too INTL_PACKAGE="lvm2" AC_PATH_TOOL(MSGFMT, msgfmt) if [[ -z "$MSGFMT" ]]; then AC_MSG_ERROR([msgfmt not found in path $PATH]) fi AC_ARG_WITH(localedir, AC_HELP_STRING([--with-localedir=DIR], [translation files in DIR [[PREFIX/share/locale]]]), LOCALEDIR=$withval, LOCALEDIR='${prefix}/share/locale') fi ################################################################################ dnl -- FIXME: need to switch to regular option here --sysconfdir AC_ARG_WITH(confdir, AC_HELP_STRING([--with-confdir=DIR], [configuration files in DIR [[/etc]]]), CONFDIR=$withval, CONFDIR='/etc') AC_ARG_WITH(staticdir, AC_HELP_STRING([--with-staticdir=DIR], [static binaries in DIR [[EPREFIX/sbin]]]), STATICDIR=$withval, STATICDIR='${exec_prefix}/sbin') AC_ARG_WITH(usrlibdir, AC_HELP_STRING([--with-usrlibdir=DIR], [usrlib in DIR [[PREFIX/lib]]]), usrlibdir=$withval, usrlibdir='${prefix}/lib') AC_ARG_WITH(usrsbindir, AC_HELP_STRING([--with-usrsbindir=DIR], [usrsbin executables in DIR [[PREFIX/sbin]]]), usrsbindir=$withval, usrsbindir='${prefix}/sbin') ################################################################################ AC_ARG_WITH(udev_prefix, AC_HELP_STRING([--with-udev-prefix=UPREFIX], [install udev rule files in UPREFIX [[EPREFIX]]]), udev_prefix=$withval, udev_prefix='${exec_prefix}') AC_ARG_WITH(udevdir, AC_HELP_STRING([--with-udevdir=DIR], [udev rules in DIR [[UPREFIX/lib/udev/rules.d]]]), udevdir=$withval, udevdir='${udev_prefix}/lib/udev/rules.d') ################################################################################ dnl -- Get the systemd system unit dir value from pkg_config automatically if value not given explicitly. dnl -- This follows the recommendation for systemd integration best practices mentioned in daemon(7) manpage. AC_ARG_WITH(systemdsystemunitdir, AC_HELP_STRING([--with-systemdsystemunitdir=DIR], [systemd service files in DIR]), systemdsystemunitdir=$withval, pkg_config_init pkg_systemdsystemunitdir=$("$PKG_CONFIG" --variable=systemdsystemunitdir systemd)) test -n "$pkg_systemdsystemunitdir" && systemdsystemunitdir=$pkg_systemdsystemunitdir test -z "$systemdsystemunitdir" && systemdsystemunitdir='${exec_prefix}/lib/systemd/system'; systemdutildir=$("$PKG_CONFIG" --variable=systemdutildir systemd) test -z "$systemdutildir" && systemdutildir='${exec_prefix}/lib/systemd'; ################################################################################ AC_ARG_WITH(tmpfilesdir, AC_HELP_STRING([--with-tmpfilesdir=DIR], [install configuration files for management of volatile files and directories in DIR [[PREFIX/lib/tmpfiles.d]]]), tmpfilesdir=$withval, tmpfilesdir='${prefix}/lib/tmpfiles.d') ################################################################################ dnl -- Ensure additional headers required if test "$READLINE" = yes; then AC_CHECK_HEADERS(readline/readline.h readline/history.h,,hard_bailout) fi if test "$CLVMD" != none; then AC_CHECK_HEADERS(mntent.h netdb.h netinet/in.h pthread.h search.h sys/mount.h sys/socket.h sys/uio.h sys/un.h utmpx.h,,AC_MSG_ERROR(bailing out)) AC_CHECK_FUNCS(dup2 getmntent memmove select socket,,hard_bailout) AC_FUNC_GETMNTENT AC_FUNC_SELECT_ARGTYPES fi if test "$CLUSTER" != none; then AC_CHECK_HEADERS(sys/socket.h sys/un.h,,hard_bailout) AC_CHECK_FUNCS(socket,,hard_bailout) fi if test "$DMEVENTD" = yes; then AC_CHECK_HEADERS(arpa/inet.h,,hard_bailout) fi if test "$HAVE_LIBDL" = yes; then AC_CHECK_HEADERS(dlfcn.h,,hard_bailout) fi if test "$INTL" = yes; then AC_CHECK_HEADERS(libintl.h,,hard_bailout) fi if test "$UDEV_SYNC" = yes; then AC_CHECK_HEADERS(sys/ipc.h sys/sem.h,,hard_bailout) fi ################################################################################ AC_PATH_TOOL(MODPROBE_CMD, modprobe) if test -n "$MODPROBE_CMD"; then AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.]) fi lvm_exec_prefix=$exec_prefix test "$lvm_exec_prefix" = NONE && lvm_exec_prefix=$prefix test "$lvm_exec_prefix" = NONE && lvm_exec_prefix=$ac_default_prefix LVM_PATH="$lvm_exec_prefix/sbin/lvm" AC_DEFINE_UNQUOTED(LVM_PATH, ["$LVM_PATH"], [Path to lvm binary.]) if test "$CLVMD" != none; then clvmd_prefix=$ac_default_prefix CLVMD_PATH="$clvmd_prefix/sbin/clvmd" test "$prefix" != NONE && clvmd_prefix=$prefix AC_DEFINE_UNQUOTED(CLVMD_PATH, ["$CLVMD_PATH"], [Path to clvmd binary.]) fi ################################################################################ dnl -- dmeventd pidfile and executable path if test "$BUILD_DMEVENTD" = yes; then AC_ARG_WITH(dmeventd-pidfile, AC_HELP_STRING([--with-dmeventd-pidfile=PATH], [dmeventd pidfile [[PID_DIR/dmeventd.pid]]]), DMEVENTD_PIDFILE=$withval, DMEVENTD_PIDFILE="$DEFAULT_PID_DIR/dmeventd.pid") AC_DEFINE_UNQUOTED(DMEVENTD_PIDFILE, ["$DMEVENTD_PIDFILE"], [Path to dmeventd pidfile.]) fi if test "$BUILD_DMEVENTD" = yes; then AC_ARG_WITH(dmeventd-path, AC_HELP_STRING([--with-dmeventd-path=PATH], [dmeventd path [[EPREFIX/sbin/dmeventd]]]), DMEVENTD_PATH=$withval, DMEVENTD_PATH="$lvm_exec_prefix/sbin/dmeventd") AC_DEFINE_UNQUOTED(DMEVENTD_PATH, ["$DMEVENTD_PATH"], [Path to dmeventd binary.]) fi ################################################################################ dnl -- various defaults dnl -- FIXME: need to switch to regular option here --sysconfdir AC_ARG_WITH(default-system-dir, AC_HELP_STRING([--with-default-system-dir=DIR], [default LVM system directory [[/etc/lvm]]]), DEFAULT_SYS_DIR=$withval, DEFAULT_SYS_DIR="/etc/lvm") AC_DEFINE_UNQUOTED(DEFAULT_SYS_DIR, ["$DEFAULT_SYS_DIR"], [Path to LVM system directory.]) AC_ARG_WITH(default-profile-subdir, AC_HELP_STRING([--with-default-profile-subdir=SUBDIR], [default configuration profile subdir [[profile]]]), DEFAULT_PROFILE_SUBDIR=$withval, DEFAULT_PROFILE_SUBDIR=profile) AC_DEFINE_UNQUOTED(DEFAULT_PROFILE_SUBDIR, ["$DEFAULT_PROFILE_SUBDIR"], [Name of default configuration profile subdirectory.]) AC_ARG_WITH(default-archive-subdir, AC_HELP_STRING([--with-default-archive-subdir=SUBDIR], [default metadata archive subdir [[archive]]]), DEFAULT_ARCHIVE_SUBDIR=$withval, DEFAULT_ARCHIVE_SUBDIR=archive) AC_DEFINE_UNQUOTED(DEFAULT_ARCHIVE_SUBDIR, ["$DEFAULT_ARCHIVE_SUBDIR"], [Name of default metadata archive subdirectory.]) AC_ARG_WITH(default-backup-subdir, AC_HELP_STRING([--with-default-backup-subdir=SUBDIR], [default metadata backup subdir [[backup]]]), DEFAULT_BACKUP_SUBDIR=$withval, DEFAULT_BACKUP_SUBDIR=backup) AC_DEFINE_UNQUOTED(DEFAULT_BACKUP_SUBDIR, ["$DEFAULT_BACKUP_SUBDIR"], [Name of default metadata backup subdirectory.]) AC_ARG_WITH(default-cache-subdir, AC_HELP_STRING([--with-default-cache-subdir=SUBDIR], [default metadata cache subdir [[cache]]]), DEFAULT_CACHE_SUBDIR=$withval, DEFAULT_CACHE_SUBDIR=cache) AC_DEFINE_UNQUOTED(DEFAULT_CACHE_SUBDIR, ["$DEFAULT_CACHE_SUBDIR"], [Name of default metadata cache subdirectory.]) AC_ARG_WITH(default-locking-dir, AC_HELP_STRING([--with-default-locking-dir=DIR], [default locking directory [[/var/lock/lvm]]]), DEFAULT_LOCK_DIR=$withval, DEFAULT_LOCK_DIR="/var/lock/lvm") AC_DEFINE_UNQUOTED(DEFAULT_LOCK_DIR, ["$DEFAULT_LOCK_DIR"], [Name of default locking directory.]) ################################################################################ dnl -- Setup default data alignment AC_ARG_WITH(default-data-alignment, AC_HELP_STRING([--with-default-data-alignment=NUM], [set the default data alignment in MiB [[1]]]), DEFAULT_DATA_ALIGNMENT=$withval, DEFAULT_DATA_ALIGNMENT=1) AC_DEFINE_UNQUOTED(DEFAULT_DATA_ALIGNMENT, [$DEFAULT_DATA_ALIGNMENT], [Default data alignment.]) ################################################################################ dnl -- which kernel interface to use (ioctl only) AC_MSG_CHECKING(for kernel interface choice) AC_ARG_WITH(interface, AC_HELP_STRING([--with-interface=IFACE], [choose kernel interface (ioctl) [[ioctl]]]), interface=$withval, interface=ioctl) test "$interface" != ioctl && AC_MSG_ERROR([--with-interface=ioctl required. fs no longer supported.]) AC_MSG_RESULT($interface) ################################################################################ DM_LIB_VERSION="\"`cat "$srcdir"/VERSION_DM 2>/dev/null || echo Unknown`\"" AC_DEFINE_UNQUOTED(DM_LIB_VERSION, $DM_LIB_VERSION, [Library version]) DM_LIB_PATCHLEVEL=`cat "$srcdir"/VERSION_DM | $AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'` LVM_VERSION="\"`cat "$srcdir"/VERSION 2>/dev/null || echo Unknown`\"" VER=`cat "$srcdir"/VERSION` LVM_RELEASE_DATE="\"`echo $VER | $SED 's/.* (//;s/).*//'`\"" VER=`echo "$VER" | $AWK '{print $1}'` LVM_RELEASE="\"`echo "$VER" | $AWK -F '-' '{print $2}'`\"" VER=`echo "$VER" | $AWK -F '-' '{print $1}'` LVM_MAJOR=`echo "$VER" | $AWK -F '.' '{print $1}'` LVM_MINOR=`echo "$VER" | $AWK -F '.' '{print $2}'` LVM_PATCHLEVEL=`echo "$VER" | $AWK -F '[[(.]]' '{print $3}'` LVM_LIBAPI=`echo "$VER" | $AWK -F '[[()]]' '{print $2}'` ################################################################################ AC_SUBST(APPLIB) AC_SUBST(AWK) AC_SUBST(BLKID_PC) AC_SUBST(BLKID_WIPING) AC_SUBST(BUILD_CMIRRORD) AC_SUBST(BUILD_DMEVENTD) AC_SUBST(BUILD_LVMETAD) AC_SUBST(CACHE) AC_SUBST(CFLAGS) AC_SUBST(CFLOW_CMD) AC_SUBST(CLDFLAGS) AC_SUBST(CLDNOWHOLEARCHIVE) AC_SUBST(CLDWHOLEARCHIVE) AC_SUBST(CLUSTER) AC_SUBST(CLVMD) AC_SUBST(CLVMD_CMANAGERS) AC_SUBST(CLVMD_PATH) AC_SUBST(CMAN_CFLAGS) AC_SUBST(CMAN_LIBS) AC_SUBST(CMAP_CFLAGS) AC_SUBST(CMAP_LIBS) AC_SUBST(CMDLIB) AC_SUBST(CONFDB_CFLAGS) AC_SUBST(CONFDB_LIBS) AC_SUBST(CONFDIR) AC_SUBST(COPTIMISE_FLAG) AC_SUBST(CPG_CFLAGS) AC_SUBST(CPG_LIBS) AC_SUBST(CSCOPE_CMD) AC_SUBST(DEBUG) AC_SUBST(DEFAULT_SYS_DIR) AC_SUBST(DEFAULT_ARCHIVE_SUBDIR) AC_SUBST(DEFAULT_BACKUP_SUBDIR) AC_SUBST(DEFAULT_CACHE_SUBDIR) AC_SUBST(DEFAULT_PROFILE_SUBDIR) AC_SUBST(DEFAULT_DATA_ALIGNMENT) AC_SUBST(DEFAULT_LOCK_DIR) AC_SUBST(DEFAULT_DM_RUN_DIR) AC_SUBST(DEFAULT_PID_DIR) AC_SUBST(DEFAULT_RUN_DIR) AC_SUBST(DEVMAPPER) AC_SUBST(DLM_CFLAGS) AC_SUBST(DLM_LIBS) AC_SUBST(DL_LIBS) AC_SUBST(DMEVENTD) AC_SUBST(DMEVENTD_PATH) AC_SUBST(DM_COMPAT) AC_SUBST(DM_DEVICE_GID) AC_SUBST(DM_DEVICE_MODE) AC_SUBST(DM_DEVICE_UID) AC_SUBST(DM_IOCTLS) AC_SUBST(DM_LIB_VERSION) AC_SUBST(DM_LIB_PATCHLEVEL) AC_SUBST(ELDFLAGS) AC_SUBST(FSADM) AC_SUBST(BLKDEACTIVATE) AC_SUBST(HAVE_LIBDL) AC_SUBST(HAVE_REALTIME) AC_SUBST(INTL) AC_SUBST(INTL_PACKAGE) AC_SUBST(JOBS) AC_SUBST(LDDEPS) AC_SUBST(LIBS) AC_SUBST(LIB_SUFFIX) AC_SUBST(LOCALEDIR) AC_SUBST(LVM1) AC_SUBST(LVM1_FALLBACK) AC_SUBST(LVM_VERSION) AC_SUBST(LVM_LIBAPI) AC_SUBST(LVM_MAJOR) AC_SUBST(LVM_MINOR) AC_SUBST(LVM_PATCHLEVEL) AC_SUBST(LVM_PATH) AC_SUBST(LVM_RELEASE) AC_SUBST(LVM_RELEASE_DATE) AC_SUBST(MANGLING) AC_SUBST(MIRRORS) AC_SUBST(MSGFMT) AC_SUBST(OCF) AC_SUBST(OCFDIR) AC_SUBST(PKGCONFIG) AC_SUBST(POOL) AC_SUBST(PTHREAD_LIBS) AC_SUBST(PYTHON) AC_SUBST(PYTHON_BINDINGS) AC_SUBST(PYTHON_INCDIRS) AC_SUBST(PYTHON_LIBDIRS) AC_SUBST(QUORUM_CFLAGS) AC_SUBST(QUORUM_LIBS) AC_SUBST(RAID) AC_SUBST(READLINE_LIBS) AC_SUBST(REPLICATORS) AC_SUBST(SACKPT_CFLAGS) AC_SUBST(SACKPT_LIBS) AC_SUBST(SALCK_CFLAGS) AC_SUBST(SALCK_LIBS) AC_SUBST(SELINUX_LIBS) AC_SUBST(SELINUX_PC) AC_SUBST(SNAPSHOTS) AC_SUBST(STATICDIR) AC_SUBST(STATIC_LINK) AC_SUBST(TESTING) AC_SUBST(THIN) AC_SUBST(THIN_CHECK_CMD) AC_SUBST(THIN_DUMP_CMD) AC_SUBST(THIN_REPAIR_CMD) AC_SUBST(THIN_RESTORE_CMD) AC_SUBST(UDEV_PC) AC_SUBST(UDEV_RULES) AC_SUBST(UDEV_SYNC) AC_SUBST(UDEV_SYSTEMD_BACKGROUND_JOBS) AC_SUBST(UDEV_RULE_EXEC_DETECTION) AC_SUBST(UDEV_HAS_BUILTIN_BLKID) AC_SUBST(WRITE_INSTALL) AC_SUBST(DMEVENTD_PIDFILE) AC_SUBST(LVMETAD_PIDFILE) AC_SUBST(CLVMD_PIDFILE) AC_SUBST(CMIRRORD_PIDFILE) AC_SUBST(interface) AC_SUBST(kerneldir) AC_SUBST(missingkernel) AC_SUBST(kernelvsn) AC_SUBST(tmpdir) AC_SUBST(udev_prefix) AC_SUBST(udevdir) AC_SUBST(systemdsystemunitdir) AC_SUBST(systemdutildir) AC_SUBST(tmpfilesdir) AC_SUBST(usrlibdir) AC_SUBST(usrsbindir) ################################################################################ dnl -- First and last lines should not contain files to generate in order to dnl -- keep utility scripts running properly AC_CONFIG_FILES([ Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/cmirrord/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/lvm2/Makefile daemons/dmeventd/plugins/raid/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile daemons/dmeventd/plugins/thin/Makefile daemons/lvmetad/Makefile conf/Makefile conf/example.conf conf/command_profile_template.profile conf/metadata_profile_template.profile include/.symlinks include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile lib/mirror/Makefile lib/replicator/Makefile lib/misc/lvm-version.h lib/raid/Makefile lib/snapshot/Makefile lib/thin/Makefile lib/cache_segtype/Makefile libdaemon/Makefile libdaemon/client/Makefile libdaemon/server/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile python/Makefile python/setup.py scripts/blkdeactivate.sh scripts/blk_availability_init_red_hat scripts/blk_availability_systemd_red_hat.service scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/dm_event_systemd_red_hat.service scripts/dm_event_systemd_red_hat.socket scripts/lvm2_cluster_activation_red_hat.sh scripts/lvm2_cluster_activation_systemd_red_hat.service scripts/lvm2_clvmd_systemd_red_hat.service scripts/lvm2_cmirrord_systemd_red_hat.service scripts/lvm2_lvmetad_init_red_hat scripts/lvm2_lvmetad_systemd_red_hat.service scripts/lvm2_lvmetad_systemd_red_hat.socket scripts/lvm2_monitoring_init_red_hat scripts/lvm2_monitoring_systemd_red_hat.service scripts/lvm2_pvscan_systemd_red_hat@.service scripts/lvm2_tmpfiles_red_hat.conf scripts/Makefile test/Makefile test/api/Makefile test/unit/Makefile tools/Makefile udev/Makefile unit-tests/datastruct/Makefile unit-tests/regex/Makefile unit-tests/mm/Makefile ]) AC_OUTPUT test -n "$THIN_CONFIGURE_WARN" && AC_MSG_WARN([Support for thin provisioning is limited since some thin provisioning tools are missing!]) test -n "$THIN_CHECK_VERSION_WARN" && AC_MSG_WARN([You should also install thin_check vsn 0.3.2 (or later) to use lvm2 thin provisioning]) test "$ODIRECT" != yes && AC_MSG_WARN([O_DIRECT disabled: low-memory pvmove may lock up])