Home | History | Annotate | Line # | Download | only in dist
      1 ###############################################################################
      2 ## Copyright (C) 2000-2004 Sistina Software, Inc. All rights reserved.
      3 ## Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
      4 ##
      5 ## This copyrighted material is made available to anyone wishing to use,
      6 ## modify, copy, or redistribute it subject to the terms and conditions
      7 ## of the GNU General Public License v.2.
      8 ##
      9 ## You should have received a copy of the GNU General Public License
     10 ## along with this program; if not, write to the Free Software Foundation,
     11 ## Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     12 ################################################################################
     13 
     14 AC_PREREQ(2.57)
     15 ################################################################################
     16 dnl -- Process this file with autoconf to produce a configure script.
     17 AC_INIT
     18 AC_CONFIG_SRCDIR([lib/device/dev-cache.h])
     19 AC_CONFIG_HEADERS([lib/misc/configure.h])
     20 
     21 ################################################################################
     22 dnl -- Setup the directory where autoconf has auxilary files
     23 AC_CONFIG_AUX_DIR(autoconf)
     24 
     25 ################################################################################
     26 dnl -- Get system type
     27 AC_CANONICAL_TARGET([])
     28 
     29 case "$host_os" in
     30 	linux*)
     31 		CFLAGS="$CFLAGS"
     32 		COPTIMISE_FLAG="-O2"
     33 		CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
     34 		CLDWHOLEARCHIVE="-Wl,-whole-archive"
     35 		CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
     36 		LDDEPS="$LDDEPS .export.sym"
     37 		LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
     38 		LIB_SUFFIX=so
     39 		DEVMAPPER=yes
     40 		ODIRECT=yes
     41 		DM_IOCTLS=yes
     42 		SELINUX=yes
     43 		CLUSTER=internal
     44 		FSADM=yes
     45 		;;
     46 	darwin*)
     47 		CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
     48 		COPTIMISE_FLAG="-O2"
     49 		CLDFLAGS="$CLDFLAGS"
     50 		CLDWHOLEARCHIVE="-all_load"
     51 		CLDNOWHOLEARCHIVE=
     52 		LIB_SUFFIX=dylib
     53 		DEVMAPPER=yes
     54 		ODIRECT=no
     55 		DM_IOCTLS=no
     56 		SELINUX=no
     57 		CLUSTER=none
     58 		FSADM=no
     59 		;;
     60 esac
     61 
     62 ################################################################################
     63 dnl -- Checks for programs.
     64 AC_PROG_SED
     65 AC_PROG_AWK
     66 AC_PROG_CC
     67 
     68 dnl probably no longer needed in 2008, but...
     69 AC_PROG_GCC_TRADITIONAL
     70 AC_PROG_INSTALL
     71 AC_PROG_LN_S
     72 AC_PROG_MAKE_SET
     73 AC_PROG_MKDIR_P
     74 AC_PROG_RANLIB
     75 AC_PATH_PROG(CFLOW_CMD, cflow)
     76 AC_PATH_PROG(CSCOPE_CMD, cscope)
     77 
     78 ################################################################################
     79 dnl -- Check for header files.
     80 AC_HEADER_DIRENT
     81 AC_HEADER_STDC
     82 AC_HEADER_SYS_WAIT
     83 AC_HEADER_TIME
     84 
     85 AC_CHECK_HEADERS([locale.h stddef.h syslog.h sys/file.h sys/time.h assert.h \
     86   libgen.h signal.h sys/mman.h sys/resource.h sys/utsname.h sys/wait.h time.h], ,
     87   [AC_MSG_ERROR(bailing out)])
     88 
     89 case "$host_os" in
     90 	linux*)
     91 		AC_CHECK_HEADERS(asm/byteorder.h linux/fs.h malloc.h,,AC_MSG_ERROR(bailing out)) ;;
     92 	darwin*)
     93 		AC_CHECK_HEADERS(machine/endian.h sys/disk.h,,AC_MSG_ERROR(bailing out)) ;;
     94 esac
     95 
     96 AC_CHECK_HEADERS([ctype.h dirent.h errno.h fcntl.h getopt.h inttypes.h limits.h \
     97   stdarg.h stdio.h stdlib.h string.h sys/ioctl.h sys/param.h sys/stat.h \
     98   sys/types.h unistd.h], , [AC_MSG_ERROR(bailing out)])
     99 AC_CHECK_HEADERS(termios.h sys/statvfs.h)
    100 
    101 ################################################################################
    102 dnl -- Check for typedefs, structures, and compiler characteristics.
    103 AC_C_CONST
    104 AC_C_INLINE
    105 AC_CHECK_MEMBERS([struct stat.st_rdev])
    106 AC_TYPE_OFF_T
    107 AC_TYPE_PID_T
    108 AC_TYPE_SIGNAL
    109 AC_TYPE_SIZE_T
    110 AC_TYPE_MODE_T
    111 AC_CHECK_MEMBERS([struct stat.st_rdev])
    112 AC_STRUCT_TM
    113 
    114 ################################################################################
    115 dnl -- Check for functions
    116 AC_CHECK_FUNCS([gethostname getpagesize memset mkdir rmdir munmap setlocale \
    117   strcasecmp strchr strdup strncasecmp strerror strrchr strstr strtol strtoul \
    118   uname], , [AC_MSG_ERROR(bailing out)])
    119 AC_CHECK_FUNCS(siginterrupt)
    120 AC_FUNC_ALLOCA
    121 AC_FUNC_CLOSEDIR_VOID
    122 AC_FUNC_FORK
    123 AC_FUNC_LSTAT
    124 AC_FUNC_MALLOC
    125 AC_FUNC_MEMCMP
    126 AC_FUNC_MMAP
    127 AC_FUNC_STAT
    128 AC_FUNC_STRTOD
    129 AC_FUNC_VPRINTF
    130 
    131 ################################################################################
    132 dnl -- Enables statically-linked tools
    133 AC_MSG_CHECKING(whether to use static linking)
    134 AC_ARG_ENABLE(static_link,
    135   [  --enable-static_link    Use this to link the tools to their libraries
    136                           statically.  Default is dynamic linking],
    137   STATIC_LINK=$enableval, STATIC_LINK=no)
    138 AC_MSG_RESULT($STATIC_LINK)
    139 
    140 ################################################################################
    141 dnl -- Prefix is /usr by default, the exec_prefix default is setup later
    142 AC_PREFIX_DEFAULT(/usr)
    143 
    144 ################################################################################
    145 dnl -- Setup the ownership of the files
    146 AC_MSG_CHECKING(file owner)
    147 OWNER=""
    148 
    149 AC_ARG_WITH(user,
    150   [  --with-user=USER        Set the owner of installed files [[USER=]] ],
    151   [ OWNER="$withval" ])
    152 AC_MSG_RESULT($OWNER)
    153 
    154 if test x$OWNER != x; then
    155 	OWNER="-o $OWNER"
    156 fi
    157 
    158 ################################################################################
    159 dnl -- Setup the group ownership of the files
    160 AC_MSG_CHECKING(group owner)
    161 GROUP=""
    162 AC_ARG_WITH(group,
    163   [  --with-group=GROUP      Set the group owner of installed files [[GROUP=]] ],
    164   [ GROUP="$withval" ])
    165 AC_MSG_RESULT($GROUP)
    166 
    167 if test x$GROUP != x; then
    168 	GROUP="-g $GROUP"
    169 fi
    170 
    171 ################################################################################
    172 dnl -- Setup device node ownership
    173 AC_MSG_CHECKING(device node uid)
    174 
    175 AC_ARG_WITH(device-uid,
    176   [  --with-device-uid=UID   Set the owner used for new device nodes [[UID=0]] ],
    177   [ DM_DEVICE_UID="$withval" ], [ DM_DEVICE_UID="0" ] )
    178 AC_MSG_RESULT($DM_DEVICE_UID)
    179 
    180 ################################################################################
    181 dnl -- Setup device group ownership
    182 AC_MSG_CHECKING(device node gid)
    183 
    184 AC_ARG_WITH(device-gid,
    185   [  --with-device-gid=UID   Set the group used for new device nodes [[GID=0]] ],
    186   [ DM_DEVICE_GID="$withval" ], [ DM_DEVICE_GID="0" ] )
    187 AC_MSG_RESULT($DM_DEVICE_GID)
    188 
    189 ################################################################################
    190 dnl -- Setup device mode
    191 AC_MSG_CHECKING(device node mode)
    192 
    193 AC_ARG_WITH(device-mode,
    194   [  --with-device-mode=MODE Set the mode used for new device nodes [[MODE=0600]] ],
    195   [ DM_DEVICE_MODE="$withval" ], [ DM_DEVICE_MODE="0600" ] )
    196 AC_MSG_RESULT($DM_DEVICE_MODE)
    197 
    198 ################################################################################
    199 dnl -- LVM1 tool fallback option
    200 AC_MSG_CHECKING(whether to enable lvm1 fallback)
    201 AC_ARG_ENABLE(lvm1_fallback, [  --enable-lvm1_fallback  Use this to fall back and use LVM1 binaries if
    202                           device-mapper is missing from the kernel],  LVM1_FALLBACK=$enableval, LVM1_FALLBACK=no)
    203 AC_MSG_RESULT($LVM1_FALLBACK)
    204 
    205 if test x$LVM1_FALLBACK = xyes; then
    206 	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])
    207 fi
    208 
    209 ################################################################################
    210 dnl -- format1 inclusion type
    211 AC_MSG_CHECKING(whether to include support for lvm1 metadata)
    212 AC_ARG_WITH(lvm1,
    213   [  --with-lvm1=TYPE        LVM1 metadata support: internal/shared/none
    214                           [TYPE=internal] ],
    215   [ LVM1="$withval" ],
    216   [ LVM1="internal" ])
    217 AC_MSG_RESULT($LVM1)
    218 
    219 if [[ "x$LVM1" != xnone -a "x$LVM1" != xinternal -a "x$LVM1" != xshared ]];
    220  then  AC_MSG_ERROR(
    221 --with-lvm1 parameter invalid
    222 )
    223 fi;
    224 
    225 if test x$LVM1 = xinternal; then
    226 	AC_DEFINE([LVM1_INTERNAL], 1, [Define to 1 to include built-in support for LVM1 metadata.])
    227 fi
    228 
    229 ################################################################################
    230 dnl -- format_pool inclusion type
    231 AC_MSG_CHECKING(whether to include support for GFS pool metadata)
    232 AC_ARG_WITH(pool,
    233   [  --with-pool=TYPE        GFS pool read-only support: internal/shared/none
    234                           [TYPE=internal] ],
    235   [ POOL="$withval" ],
    236   [ POOL="internal" ])
    237 AC_MSG_RESULT($POOL)
    238 
    239 if [[ "x$POOL" != xnone -a "x$POOL" != xinternal -a "x$POOL" != xshared ]];
    240  then  AC_MSG_ERROR(
    241 --with-pool parameter invalid
    242 )
    243 fi;
    244 
    245 if test x$POOL = xinternal; then
    246 	AC_DEFINE([POOL_INTERNAL], 1, [Define to 1 to include built-in support for GFS pool metadata.])
    247 fi
    248 
    249 ################################################################################
    250 dnl -- cluster_locking inclusion type
    251 AC_MSG_CHECKING(whether to include support for cluster locking)
    252 AC_ARG_WITH(cluster,
    253   [  --with-cluster=TYPE     Cluster LVM locking support: internal/shared/none
    254                           [TYPE=internal] ],
    255   [ CLUSTER="$withval" ])
    256 AC_MSG_RESULT($CLUSTER)
    257 
    258 if [[ "x$CLUSTER" != xnone -a "x$CLUSTER" != xinternal -a "x$CLUSTER" != xshared ]];
    259  then  AC_MSG_ERROR(
    260 --with-cluster parameter invalid
    261 )
    262 fi;
    263 
    264 if test x$CLUSTER = xinternal; then
    265 	AC_DEFINE([CLUSTER_LOCKING_INTERNAL], 1, [Define to 1 to include built-in support for clustered LVM locking.])
    266 fi
    267 
    268 ################################################################################
    269 dnl -- snapshots inclusion type
    270 AC_MSG_CHECKING(whether to include snapshots)
    271 AC_ARG_WITH(snapshots,
    272   [  --with-snapshots=TYPE   Snapshot support: internal/shared/none
    273                           [TYPE=internal] ],
    274   [ SNAPSHOTS="$withval" ],
    275   [ SNAPSHOTS="internal" ])
    276 AC_MSG_RESULT($SNAPSHOTS)
    277 
    278 if [[ "x$SNAPSHOTS" != xnone -a "x$SNAPSHOTS" != xinternal -a "x$SNAPSHOTS" != xshared ]];
    279  then  AC_MSG_ERROR(
    280 --with-snapshots parameter invalid
    281 )
    282 fi;
    283 
    284 if test x$SNAPSHOTS = xinternal; then
    285 	AC_DEFINE([SNAPSHOT_INTERNAL], 1, [Define to 1 to include built-in support for snapshots.])
    286 fi
    287 
    288 ################################################################################
    289 dnl -- mirrors inclusion type
    290 AC_MSG_CHECKING(whether to include mirrors)
    291 AC_ARG_WITH(mirrors,
    292   [  --with-mirrors=TYPE     Mirror support: internal/shared/none
    293                           [TYPE=internal] ],
    294   [ MIRRORS="$withval" ],
    295   [ MIRRORS="internal" ])
    296 AC_MSG_RESULT($MIRRORS)
    297 
    298 if [[ "x$MIRRORS" != xnone -a "x$MIRRORS" != xinternal -a "x$MIRRORS" != xshared ]];
    299  then  AC_MSG_ERROR(
    300 --with-mirrors parameter invalid
    301 )
    302 fi;
    303 
    304 if test x$MIRRORS = xinternal; then
    305 	AC_DEFINE([MIRRORED_INTERNAL], 1, [Define to 1 to include built-in support for mirrors.])
    306 fi
    307 
    308 ################################################################################
    309 dnl -- Disable readline
    310 AC_MSG_CHECKING(whether to enable readline)
    311 AC_ARG_ENABLE([readline],
    312   [  --disable-readline      Disable readline support],
    313   [READLINE=$enableval], [READLINE=maybe])
    314 AC_MSG_RESULT($READLINE)
    315 
    316 ################################################################################
    317 dnl -- Disable realtime clock support
    318 AC_MSG_CHECKING(whether to enable realtime support)
    319 AC_ARG_ENABLE(realtime, [  --enable-realtime       Enable realtime clock support],
    320 REALTIME=$enableval)
    321 AC_MSG_RESULT($REALTIME)
    322 
    323 ################################################################################
    324 dnl -- Init pkg-config with dummy invokation:
    325 dnl -- this is required because PKG_CHECK_MODULES macro is expanded
    326 dnl -- to initialize the pkg-config environment only at the first invokation,
    327 dnl -- that would be conditional in this configure.in.
    328 pkg_config_init() {
    329 	PKG_CHECK_MODULES(PKGCONFIGINIT, pkgconfiginit, [],
    330 		[AC_MSG_RESULT([pkg-config initialized])])
    331 	PKGCONFIG_INIT=1
    332 }
    333 
    334 ################################################################################
    335 dnl -- Build cluster LVM daemon
    336 AC_MSG_CHECKING(whether to build cluster LVM daemon)
    337 AC_ARG_WITH(clvmd,
    338   [  --with-clvmd=TYPE       Build cluster LVM Daemon.
    339                           The following cluster manager combinations are valid:
    340                            * cman,gulm             (RHEL4 or equivalent)
    341                            * cman                  (RHEL5 or equivalent)
    342                            * cman,corosync,openais (or selection of them)
    343                            * all                   (autodetect)
    344                            * none                  (disable build)
    345                           [TYPE=none] ],
    346   [ CLVMD="$withval" ],
    347   [ CLVMD="none" ])
    348 if test x$CLVMD = xyes; then
    349 	CLVMD=all
    350 fi
    351 AC_MSG_RESULT($CLVMD)
    352 
    353 dnl -- If clvmd enabled without cluster locking, automagically include it
    354 if  test x$CLVMD != xnone && test x$CLUSTER = xnone; then
    355 	CLUSTER=internal
    356 fi
    357 
    358 dnl -- init pkgconfig if required
    359 if  test x$CLVMD != xnone && test x$PKGCONFIG_INIT != x1; then
    360 	pkg_config_init
    361 fi
    362 
    363 
    364 dnl -- define build types
    365 if [[ `expr x"$CLVMD" : '.*gulm.*'` != 0 ]]; then
    366 	BUILDGULM=yes
    367 fi
    368 if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then
    369 	BUILDCOROSYNC=yes
    370 fi
    371 if [[ `expr x"$CLVMD" : '.*openais.*'` != 0 ]]; then
    372 	BUILDOPENAIS=yes
    373 fi
    374 if [[ `expr x"$CLVMD" : '.*cman.*'` != 0 ]]; then
    375 	BUILDCMAN=yes
    376 fi
    377 
    378 dnl -- sanity check around user selection
    379 if test x$BUILDGULM = xyes; then
    380 	if test x$BUILDCOROSYNC = xyes || \
    381 	   test x$BUILDOPENAIS = xyes; then
    382 		AC_MSG_ERROR([requested clvmd configuration is not valid])
    383 	fi
    384 fi
    385 
    386 dnl -- define a soft bailout if we are autodetecting
    387 soft_bailout() {
    388 	NOTFOUND=1
    389 }
    390 
    391 hard_bailout() {
    392 	AC_MSG_ERROR([bailing out])
    393 }
    394 
    395 dnl -- if clvmd=all then set soft_bailout (we don't want to error)
    396 dnl -- and set all builds to yes. We need to do this here
    397 dnl -- to skip the gulm + openais|corosync sanity check above.
    398 if test x$CLVMD = xall; then
    399 	bailout=soft_bailout
    400 	BUILDGULM=yes
    401 	BUILDCMAN=yes
    402 	BUILDCOROSYNC=yes
    403 	BUILDOPENAIS=yes
    404 else
    405 	bailout=hard_bailout
    406 fi
    407 
    408 dnl -- helper macro to check libs without adding them to LIBS
    409 check_lib_no_libs() {
    410 	lib_no_libs_arg1=$1
    411 	shift
    412 	lib_no_libs_arg2=$1
    413 	shift
    414 	lib_no_libs_args=$@
    415 	AC_CHECK_LIB([$lib_no_libs_arg1],
    416 		     [$lib_no_libs_arg2],,
    417 		     [$bailout],
    418 		     [$lib_no_libs_args])
    419 	LIBS=$ac_check_lib_save_LIBS
    420 }
    421 
    422 dnl -- Look for gulm libraries if required.
    423 if test x$BUILDGULM = xyes; then
    424 	PKG_CHECK_MODULES(CCS, libccs, [HAVE_CCS=yes],
    425 		[NOTFOUND=0
    426 		AC_CHECK_HEADERS(ccs.h,,$bailout)
    427 		check_lib_no_libs ccs ccs_connect
    428 		if test $NOTFOUND = 0; then
    429 			AC_MSG_RESULT([no pkg for libccs, using -lccs])
    430 			CCS_LIBS="-lccs"
    431 			HAVE_CCS=yes
    432 		fi])
    433 	PKG_CHECK_MODULES(GULM, libgulm, [HAVE_GULM=yes],
    434 		[NOTFOUND=0
    435 		AC_CHECK_HEADERS(libgulm.h,,$bailout)
    436 		check_lib_no_libs gulm lg_core_login
    437 		if test $NOTFOUND = 0; then
    438 			AC_MSG_RESULT([no pkg for libgulm, using -lgulm])
    439 			GULM_LIBS="-lgulm"
    440 			HAVE_GULM=yes
    441 		fi])
    442 fi
    443 
    444 dnl -- Look for cman libraries if required.
    445 if test x$BUILDCMAN = xyes; then
    446 	PKG_CHECK_MODULES(CMAN, libcman, [HAVE_CMAN=yes],
    447 		[NOTFOUND=0
    448 		AC_CHECK_HEADERS(libcman.h,,$bailout)
    449 		check_lib_no_libs cman cman_init
    450 		if test $NOTFOUND = 0; then
    451 			AC_MSG_RESULT([no pkg for libcman, using -lcman])
    452 			CMAN_LIBS="-lcman"
    453 			HAVE_CMAN=yes
    454 		fi])
    455 	CHECKCONFDB=yes
    456 	CHECKDLM=yes
    457 fi
    458 
    459 dnl -- Look for corosync that's required also for openais build
    460 dnl -- only enough recent version of corosync ship pkg-config files.
    461 dnl -- We can safely rely on that to detect the correct bits.
    462 if test x$BUILDCOROSYNC = xyes || \
    463    test x$BUILDOPENAIS = xyes; then
    464 	PKG_CHECK_MODULES(COROSYNC, corosync, [HAVE_COROSYNC=yes], $bailout)
    465 	CHECKCONFDB=yes
    466 fi
    467 
    468 dnl -- Look for corosync libraries if required.
    469 if test x$BUILDCOROSYNC = xyes; then
    470 	PKG_CHECK_MODULES(QUORUM, libquorum, [HAVE_QUORUM=yes], $bailout)
    471 	CHECKCPG=yes
    472 	CHECKDLM=yes
    473 fi
    474 
    475 dnl -- Look for openais libraries if required.
    476 if test x$BUILDOPENAIS = xyes; then
    477 	PKG_CHECK_MODULES(SALCK, libSaLck, [HAVE_SALCK=yes], $bailout)
    478 	CHECKCPG=yes
    479 fi
    480 
    481 dnl -- Below are checks for libraries common to more than one build.
    482 
    483 dnl -- Check confdb library.
    484 dnl -- mandatory for corosync build.
    485 dnl -- optional for openais/cman build.
    486 
    487 if test x$CHECKCONFDB = xyes; then
    488 	PKG_CHECK_MODULES(CONFDB, libconfdb,
    489 			  [HAVE_CONFDB=yes],
    490 			  [HAVE_CONFDB=no])
    491 
    492 	AC_CHECK_HEADERS(corosync/confdb.h,
    493 		[HAVE_CONFDB_H=yes],
    494 		[HAVE_CONFDB_H=no])
    495 
    496 	if test x$HAVE_CONFDB != xyes && \
    497 	   test x$HAVE_CONFDB_H = xyes; then
    498 		check_lib_no_libs confdb confdb_initialize
    499 		AC_MSG_RESULT([no pkg for confdb, using -lconfdb])
    500 		CONFDB_LIBS="-lconfdb"
    501 		HAVE_CONFDB=yes
    502 	fi
    503 
    504 	if test x$BUILDCOROSYNC = xyes && \
    505 	   test x$HAVE_CONFDB != xyes &&
    506 	   test x$CLVMD != xall; then
    507 		AC_MSG_ERROR([bailing out... confdb library is required])
    508 	fi
    509 fi
    510 
    511 dnl -- Check cpg library.
    512 if test x$CHECKCPG = xyes; then
    513 	PKG_CHECK_MODULES(CPG, libcpg, [HAVE_CPG=yes], $bailout)
    514 fi
    515 
    516 dnl -- Check dlm library.
    517 if test x$CHECKDLM = xyes; then
    518 	PKG_CHECK_MODULES(DLM, libdlm, [HAVE_DLM=yes],
    519 		[NOTFOUND=0
    520 		AC_CHECK_HEADERS(libdlm.h,,$bailout)
    521 		check_lib_no_libs dlm dlm_lock -lpthread
    522 		if test $NOTFOUND = 0; then
    523 			AC_MSG_RESULT([no pkg for libdlm, using -ldlm])
    524 			DLM_LIBS="-ldlm -lpthread"
    525 			HAVE_DLM=yes
    526 		fi])
    527 fi
    528 
    529 dnl -- If we are autodetecting, we need to re-create
    530 dnl -- the depedencies checks and set a proper CLVMD.
    531 if test x$CLVMD = xall; then
    532 	CLVMD=none
    533 	if test x$HAVE_CCS = xyes && \
    534 	   test x$HAVE_GULM = xyes; then
    535 		AC_MSG_RESULT([Enabling clvmd gulm cluster manager])
    536 		CLVMD="$CLVMD,gulm"
    537 	fi
    538 	if test x$HAVE_CMAN = xyes && \
    539 	   test x$HAVE_DLM = xyes; then
    540 		AC_MSG_RESULT([Enabling clvmd cman cluster manager])
    541 		CLVMD="$CLVMD,cman"
    542 	fi
    543 	if test x$HAVE_COROSYNC = xyes && \
    544 	   test x$HAVE_QUORUM = xyes && \
    545 	   test x$HAVE_CPG = xyes && \
    546 	   test x$HAVE_DLM = xyes && \
    547 	   test x$HAVE_CONFDB = xyes; then
    548 		AC_MSG_RESULT([Enabling clvmd corosync cluster manager])
    549 		CLVMD="$CLVMD,corosync"
    550 	fi
    551 	if test x$HAVE_COROSYNC = xyes && \
    552 	   test x$HAVE_CPG = xyes && \
    553 	   test x$HAVE_SALCK = xyes; then
    554 		AC_MSG_RESULT([Enabling clvmd openais cluster manager])
    555 		CLVMD="$CLVMD,openais"
    556 	fi
    557 	if test x$CLVMD = xnone; then
    558 		AC_MSG_RESULT([Disabling clvmd build. No cluster manager detected.])
    559 	fi
    560 fi
    561 
    562 ################################################################################
    563 dnl -- Build cluster mirror log daemon
    564 AC_MSG_CHECKING(whether to build cluster mirror log daemon)
    565 AC_ARG_ENABLE(cmirrord, [  --enable-cmirrord       Enable the cluster mirror log daemon],
    566 CMIRRORD=$enableval, CMIRRORD=no)
    567 AC_MSG_RESULT($CMIRRORD)
    568 
    569 BUILD_CMIRRORD=$CMIRRORD
    570 
    571 ################################################################################
    572 dnl -- cmirrord pidfile
    573 AH_TEMPLATE(CMIRRORD_PIDFILE, [Path to cmirrord pidfile.])
    574 if test "x$BUILD_CMIRRORD" = xyes; then
    575 	AC_ARG_WITH(cmirrord-pidfile,
    576 		    [  --with-cmirrord-pidfile=PATH    cmirrord pidfile [[/var/run/cmirrord.pid]] ],
    577 		    [ AC_DEFINE_UNQUOTED(CMIRRORD_PIDFILE,"$withval") ],
    578 		    [ AC_DEFINE_UNQUOTED(CMIRRORD_PIDFILE,"/var/run/cmirrord.pid") ])
    579 fi
    580 
    581 ################################################################################
    582 dnl -- Look for corosync libraries if required.
    583 if [[ "x$BUILD_CMIRRORD" = xyes ]]; then
    584 	dnl -- init pkgconfig if required
    585 	if  test x$PKGCONFIG_INIT != x1; then
    586 		pkg_config_init
    587 	fi
    588 	PKG_CHECK_MODULES(SACKPT, libSaCkpt)
    589 	if test x$HAVE_CPG != xyes; then
    590 		PKG_CHECK_MODULES(CPG, libcpg)
    591 	fi
    592 fi
    593 
    594 ################################################################################
    595 dnl -- Enable debugging
    596 AC_MSG_CHECKING(whether to enable debugging)
    597 AC_ARG_ENABLE(debug,    [  --enable-debug          Enable debugging],
    598   DEBUG=$enableval, DEBUG=no)
    599 AC_MSG_RESULT($DEBUG)
    600 
    601 dnl -- Normally turn off optimisation for debug builds
    602 if test x$DEBUG = xyes; then
    603 	COPTIMISE_FLAG=
    604 else
    605 	CSCOPE_CMD=
    606 fi
    607 
    608 ################################################################################
    609 dnl -- Override optimisation
    610 AC_MSG_CHECKING(for C optimisation flag)
    611 AC_ARG_WITH(optimisation,
    612   [  --with-optimisation=OPT C optimisation flag [[OPT=-O2]] ],
    613   [ COPTIMISE_FLAG="$withval" ])
    614 AC_MSG_RESULT($COPTIMISE_FLAG)
    615 
    616 ################################################################################
    617 dnl -- Enable profiling
    618 AC_MSG_CHECKING(whether to gather gcov profiling data)
    619 AC_ARG_ENABLE(profiling,
    620   AC_HELP_STRING(--enable-profiling, [Gather gcov profiling data]),
    621   PROFILING=$enableval, PROFILING=no)
    622 AC_MSG_RESULT($PROFILING)
    623 
    624 if test "x$PROFILING" = xyes; then
    625   COPTIMISE_FLAG="$COPTIMISE_FLAG -fprofile-arcs -ftest-coverage"
    626   AC_PATH_PROG(LCOV, lcov, no)
    627   AC_PATH_PROG(GENHTML, genhtml, no)
    628   if test "$LCOV" = no -o "$GENHTML" = no ; then
    629     AC_MSG_ERROR([lcov and genhtml are required for profiling])
    630   fi
    631 fi
    632 
    633 ################################################################################
    634 dnl -- Disable devmapper
    635 AC_MSG_CHECKING(whether to use device-mapper)
    636 AC_ARG_ENABLE(devmapper, [  --disable-devmapper     Disable LVM2 device-mapper interaction],
    637 DEVMAPPER=$enableval)
    638 AC_MSG_RESULT($DEVMAPPER)
    639 
    640 if test x$DEVMAPPER = xyes; then
    641 	AC_DEFINE([DEVMAPPER_SUPPORT], 1, [Define to 1 to enable LVM2 device-mapper interaction.])
    642 fi
    643 
    644 ################################################################################
    645 dnl -- Enable udev synchronisation
    646 AC_MSG_CHECKING(whether to enable synchronisation with udev processing)
    647 AC_ARG_ENABLE(udev_sync, [  --enable-udev_sync      Enable synchronisation with udev processing],
    648 UDEV_SYNC=$enableval, UDEV_SYNC=no)
    649 AC_MSG_RESULT($UDEV_SYNC)
    650 
    651 if test x$UDEV_SYNC = xyes; then
    652 	AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
    653 fi
    654 
    655 dnl -- Enable udev rules
    656 AC_MSG_CHECKING(whether to enable installation of udev rules required for synchronisation)
    657 AC_ARG_ENABLE(udev_rules, [  --enable-udev_rules     Install rule files needed for udev synchronisation],
    658 UDEV_RULES=$enableval, UDEV_RULES=$UDEV_SYNC)
    659 AC_MSG_RESULT($UDEV_RULES)
    660 
    661 ################################################################################
    662 dnl -- Check for libudev's udev_queue_get_udev_is_active function when udev synchronisation is enabled
    663 
    664 if test x$UDEV_SYNC = xyes; then
    665 	AC_CHECK_LIB(udev, udev_queue_get_udev_is_active, HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE=yes,
    666 		HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE=no)
    667 
    668 		if test x$HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE = xyes; then
    669 			AC_DEFINE([HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE], 1,
    670 			  [Define to 1 if libudev's udev_queue_get_udev_is_active function is available.])
    671 			LIBS="-ludev $LIBS"
    672 		fi
    673 fi
    674 
    675 ################################################################################
    676 dnl -- Compatibility mode
    677 AC_ARG_ENABLE(compat,   [  --enable-compat         Enable support for old device-mapper versions],
    678   DM_COMPAT=$enableval, DM_COMPAT=no)
    679 
    680 ################################################################################
    681 dnl -- Compatible units suffix mode
    682 AC_ARG_ENABLE(units-compat,
    683   [  --enable-units-compat   Enable output compatibility with old versions that
    684                           that don't use KiB-style unit suffixes],
    685   UNITS_COMPAT=$enableval, UNITS_COMPAT=no)
    686 
    687 if test x$UNITS_COMPAT = xyes; then
    688 	AC_DEFINE([DEFAULT_SI_UNIT_CONSISTENCY], 0, [Define to 0 to reinstate the pre-2.02.54 handling of unit suffixes.])
    689 fi
    690 
    691 ################################################################################
    692 dnl -- Disable ioctl
    693 AC_ARG_ENABLE(ioctl,   [  --disable-driver        Disable calls to device-mapper in the kernel],
    694   DM_IOCTLS=$enableval)
    695 
    696 ################################################################################
    697 dnl -- Disable O_DIRECT
    698 AC_MSG_CHECKING(whether to enable O_DIRECT)
    699 AC_ARG_ENABLE(o_direct, [  --disable-o_direct      Disable O_DIRECT],
    700 ODIRECT=$enableval)
    701 AC_MSG_RESULT($ODIRECT)
    702 
    703 if test x$ODIRECT = xyes; then
    704 	AC_DEFINE([O_DIRECT_SUPPORT], 1, [Define to 1 to enable O_DIRECT support.])
    705 fi
    706 
    707 ################################################################################
    708 dnl -- Enable liblvm2app.so
    709 AC_MSG_CHECKING(whether to build liblvm2app.so application library)
    710 AC_ARG_ENABLE(applib,
    711   [  --enable-applib         Build application library],
    712   APPLIB=$enableval, APPLIB=no)
    713 AC_MSG_RESULT($APPLIB)
    714 AC_SUBST([LVM2APP_LIB])
    715 test x$APPLIB = xyes \
    716   && LVM2APP_LIB=-llvm2app \
    717   || LVM2APP_LIB=
    718 
    719 ################################################################################
    720 dnl -- Enable cmdlib
    721 AC_MSG_CHECKING(whether to compile liblvm2cmd.so)
    722 AC_ARG_ENABLE(cmdlib, [  --enable-cmdlib         Build shared command library],
    723 CMDLIB=$enableval, CMDLIB=no)
    724 AC_MSG_RESULT($CMDLIB)
    725 AC_SUBST([LVM2CMD_LIB])
    726 test x$CMDLIB = xyes \
    727   && LVM2CMD_LIB=-llvm2cmd \
    728   || LVM2CMD_LIB=
    729 
    730 ################################################################################
    731 dnl -- Enable pkg-config
    732 AC_ARG_ENABLE(pkgconfig,   [  --enable-pkgconfig      Install pkgconfig support],
    733   PKGCONFIG=$enableval, PKGCONFIG=no)
    734 
    735 ################################################################################
    736 dnl -- Enable fsadm
    737 AC_MSG_CHECKING(whether to install fsadm)
    738 AC_ARG_ENABLE(fsadm, [  --enable-fsadm          Enable fsadm],
    739 FSADM=$enableval)
    740 AC_MSG_RESULT($FSADM)
    741 
    742 ################################################################################
    743 dnl -- enable dmeventd handling
    744 AC_MSG_CHECKING(whether to use dmeventd)
    745 AC_ARG_ENABLE(dmeventd, [  --enable-dmeventd       Enable the device-mapper event daemon],
    746 DMEVENTD=$enableval)
    747 AC_MSG_RESULT($DMEVENTD)
    748 
    749 BUILD_DMEVENTD=$DMEVENTD
    750 
    751 dnl -- dmeventd currently requires internal mirror support
    752 if test x$DMEVENTD = xyes; then
    753    if test x$MIRRORS != xinternal; then
    754       AC_MSG_ERROR(
    755 	--enable-dmeventd currently requires --with-mirrors=internal
    756       )
    757    fi
    758    if test x$CMDLIB = xno; then
    759       AC_MSG_ERROR(
    760         --enable-dmeventd requires --enable-cmdlib to be used as well
    761       )
    762    fi
    763 fi
    764 
    765 if test x$DMEVENTD = xyes; then
    766 	AC_DEFINE([DMEVENTD], 1, [Define to 1 to enable the device-mapper event daemon.])
    767 fi
    768 
    769 ################################################################################
    770 dnl -- getline included in recent libc
    771 
    772 AC_CHECK_LIB(c, getline, AC_DEFINE([HAVE_GETLINE], 1,
    773   [Define to 1 if getline is available.]))
    774 
    775 ################################################################################
    776 dnl -- canonicalize_file_name included in recent libc
    777 
    778 AC_CHECK_LIB(c, canonicalize_file_name,
    779   AC_DEFINE([HAVE_CANONICALIZE_FILE_NAME], 1,
    780     [Define to 1 if canonicalize_file_name is available.]))
    781 
    782 ################################################################################
    783 dnl -- Clear default exec_prefix - install into /sbin rather than /usr/sbin
    784 if [[ "x$exec_prefix" = xNONE -a "x$prefix" = xNONE ]];
    785  then  exec_prefix="";
    786 fi;
    787 
    788 ################################################################################
    789 dnl -- Check for termcap (Shamelessly copied from parted 1.4.17)
    790 if test x$READLINE != xno; then
    791 	AC_SEARCH_LIBS([tgetent], [tinfo ncurses curses termcap termlib],
    792 	  [tg_found=yes], [tg_found=no])
    793 	test x$READLINE:$tg_found = xyes:no &&
    794 	  AC_MSG_ERROR(
    795 termcap could not be found which is required for the
    796 --enable-readline option (which is enabled by default).  Either disable readline
    797 support with --disable-readline or download and install termcap from:
    798 	ftp.gnu.org/gnu/termcap
    799 Note: if you are using precompiled packages you will also need the development
    800   package as well (which may be called termcap-devel or something similar).
    801 Note: (n)curses also seems to work as a substitute for termcap.  This was
    802   not found either - but you could try installing that as well.
    803 )
    804 fi
    805 
    806 ################################################################################
    807 dnl -- Check for dlopen
    808 AC_CHECK_LIB(dl, dlopen, HAVE_LIBDL=yes, HAVE_LIBDL=no)
    809 
    810 if [[ "x$HAVE_LIBDL" = xyes ]]; then
    811 	AC_DEFINE([HAVE_LIBDL], 1, [Define to 1 if dynamic libraries are available.])
    812 	LIBS="-ldl $LIBS"
    813 else
    814 	HAVE_LIBDL=no
    815 fi
    816 
    817 ################################################################################
    818 dnl -- Check for shared/static conflicts
    819 if [[ \( "x$LVM1" = xshared -o "x$POOL" = xshared -o "x$CLUSTER" = xshared \
    820       -o "x$SNAPSHOTS" = xshared -o "x$MIRRORS" = xshared \
    821       \) -a "x$STATIC_LINK" = xyes ]];
    822  then  AC_MSG_ERROR(
    823 Features cannot be 'shared' when building statically
    824 )
    825 fi
    826 
    827 ################################################################################
    828 dnl -- Disable selinux
    829 AC_MSG_CHECKING(whether to enable selinux support)
    830 AC_ARG_ENABLE(selinux, [  --disable-selinux       Disable selinux support],
    831   SELINUX=$enableval)
    832 AC_MSG_RESULT($SELINUX)
    833 
    834 ################################################################################
    835 dnl -- Check for selinux
    836 if test x$SELINUX = xyes; then
    837 	AC_CHECK_LIB(sepol, sepol_check_context, HAVE_SEPOL=yes, HAVE_SEPOL=no)
    838 
    839 	if test x$HAVE_SEPOL = xyes; then
    840 		AC_DEFINE([HAVE_SEPOL], 1,
    841 		  [Define to 1 if sepol_check_context is available.])
    842 		SELINUX_LIBS="-lsepol $SELINUX_LIBS"
    843 	fi
    844 
    845 	AC_CHECK_LIB(selinux, is_selinux_enabled, HAVE_SELINUX=yes, HAVE_SELINUX=no)
    846 
    847 	if test x$HAVE_SELINUX = xyes; then
    848 		AC_DEFINE([HAVE_SELINUX], 1, [Define to 1 to include support for selinux.])
    849 		SELINUX_LIBS="-lselinux $SELINUX_LIBS"
    850 	else
    851 		AC_MSG_WARN(Disabling selinux)
    852 	fi
    853 	LIBS="$SELINUX_LIBS $LIBS"
    854 
    855 	# With --enable-static_link and selinux enabled, linking
    856 	# fails on at least Debian unstable due to unsatisfied references
    857 	# to pthread_mutex_lock and _unlock.  See if we need -lpthread.
    858 	if test "$STATIC_LINK-$HAVE_SELINUX" = yes-yes; then
    859 		lvm_saved_libs=$LIBS
    860 		LIBS="$LIBS -static"
    861 		AC_SEARCH_LIBS([pthread_mutex_lock], [pthread],
    862 		  [test "$ac_cv_search_pthread_mutex_lock" = "none required" ||
    863 				LIB_PTHREAD=-lpthread])
    864 		LIBS=$lvm_saved_libs
    865 	fi
    866 fi
    867 
    868 ################################################################################
    869 dnl -- Check for realtime clock support
    870 if test x$REALTIME = xyes; then
    871 	AC_CHECK_LIB(rt, clock_gettime, HAVE_REALTIME=yes, HAVE_REALTIME=no)
    872 
    873 	if test x$HAVE_REALTIME = xyes; then
    874 		AC_DEFINE([HAVE_REALTIME], 1, [Define to 1 to include support for realtime clock.])
    875 		LIBS="-lrt $LIBS"
    876 	else
    877 		AC_MSG_WARN(Disabling realtime clock)
    878 	fi
    879 fi
    880 
    881 ################################################################################
    882 dnl -- Check for getopt
    883 AC_CHECK_HEADERS(getopt.h, AC_DEFINE([HAVE_GETOPTLONG], 1, [Define to 1 if getopt_long is available.]))
    884 
    885 ################################################################################
    886 dnl -- Check for readline (Shamelessly copied from parted 1.4.17)
    887 if test x$READLINE != xno; then
    888 	rl_found=yes
    889 	AC_CHECK_LIB([readline], [readline], , [rl_found=no])
    890 	test x$READLINE:$rl_found = xyes:no &&
    891 	  AC_MSG_ERROR(
    892 GNU Readline could not be found which is required for the
    893 --enable-readline option (which is enabled by default).  Either disable readline
    894 support with --disable-readline or download and install readline from:
    895 	ftp.gnu.org/gnu/readline
    896 Note: if you are using precompiled packages you will also need the development
    897 package as well (which may be called readline-devel or something similar).
    898 )
    899 	if test $rl_found = yes; then
    900 		AC_CHECK_FUNCS([rl_completion_matches])
    901 		AC_DEFINE([READLINE_SUPPORT], 1,
    902 		  [Define to 1 to include the LVM readline shell.])
    903 	fi
    904 fi
    905 
    906 ################################################################################
    907 dnl -- Internationalisation stuff
    908 AC_MSG_CHECKING(whether to enable internationalisation)
    909 AC_ARG_ENABLE(nls, [  --enable-nls            Enable Native Language Support],
    910 		INTL=$enableval, INTL=no)
    911 AC_MSG_RESULT($INTL)
    912 
    913 if test x$INTL = xyes; then
    914 # FIXME - Move this - can be device-mapper too
    915 	INTL_PACKAGE="lvm2"
    916 	AC_PATH_PROG(MSGFMT, msgfmt)
    917 	if [[ "x$MSGFMT" == x ]];
    918 		then  AC_MSG_ERROR(
    919 		msgfmt not found in path $PATH
    920 		)
    921 	fi;
    922 
    923 	AC_ARG_WITH(localedir,
    924 		    [  --with-localedir=DIR    Translation files in DIR [[PREFIX/share/locale]] ],
    925 		    [ LOCALEDIR="$withval" ],
    926 		    [ LOCALEDIR='${prefix}/share/locale' ])
    927 fi
    928 
    929 ################################################################################
    930 AC_ARG_WITH(confdir,
    931 	    [  --with-confdir=DIR      Configuration files in DIR [[/etc]]],
    932 	    [ CONFDIR="$withval" ],
    933 	    [ CONFDIR='/etc' ])
    934 
    935 AC_ARG_WITH(staticdir,
    936 	    [  --with-staticdir=DIR    Static binary in DIR [[EPREFIX/sbin]]],
    937 	    [ STATICDIR="$withval" ],
    938 	    [ STATICDIR='${exec_prefix}/sbin' ])
    939 
    940 AC_ARG_WITH(usrlibdir,
    941 	    [  --with-usrlibdir=DIR],
    942 	    [ usrlibdir="$withval"],
    943 	    [ usrlibdir='${prefix}/lib' ])
    944 
    945 AC_ARG_WITH(usrsbindir,
    946 	    [  --with-usrsbindir=DIR],
    947 	    [ usrsbindir="$withval"],
    948 	    [ usrsbindir='${prefix}/sbin' ])
    949 
    950 ################################################################################
    951 AC_ARG_WITH(udev_prefix,
    952 	    [  --with-udev-prefix=UPREFIX      Install udev rule files in UPREFIX [[EPREFIX]]],
    953             [ udev_prefix="$withval"],
    954             [ udev_prefix='${exec_prefix}' ])
    955 
    956 AC_ARG_WITH(udevdir,
    957 	    [  --with-udevdir=DIR      udev rules in DIR [[UPREFIX/lib/udev/rules.d]]],
    958 	    [ udevdir="$withval"],
    959 	    [ udevdir='${udev_prefix}/lib/udev/rules.d' ])
    960 
    961 ################################################################################
    962 dnl -- Ensure additional headers required
    963 if test x$READLINE = xyes; then
    964 	AC_CHECK_HEADERS(readline/readline.h readline/history.h,,AC_MSG_ERROR(bailing out))
    965 fi
    966 
    967 if test x$CLVMD != xnone; then
    968 	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))
    969 	AC_CHECK_FUNCS(dup2 getmntent memmove select socket,,AC_MSG_ERROR(bailing out))
    970 	AC_FUNC_GETMNTENT
    971 #	AC_FUNC_REALLOC
    972 	AC_FUNC_SELECT_ARGTYPES
    973 fi
    974 
    975 if test x$CLUSTER != xnone; then
    976 	AC_CHECK_HEADERS(sys/socket.h sys/un.h,,AC_MSG_ERROR(bailing out))
    977 	AC_CHECK_FUNCS(socket,,AC_MSG_ERROR(bailing out))
    978 fi
    979 
    980 if test x$HAVE_LIBDL = xyes; then
    981 	AC_CHECK_HEADERS(dlfcn.h,,AC_MSG_ERROR(bailing out))
    982 fi
    983 
    984 if test x$INTL = xyes; then
    985 	AC_CHECK_HEADERS(libintl.h,,AC_MSG_ERROR(bailing out))
    986 fi
    987 
    988 if test x$HAVE_SELINUX = xyes; then
    989 	AC_CHECK_HEADERS(selinux/selinux.h,,AC_MSG_ERROR(bailing out))
    990 fi
    991 
    992 if test x$UDEV_SYNC = xyes; then
    993 	AC_CHECK_HEADERS(sys/ipc.h sys/sem.h,,AC_MSG_ERROR(bailing out))
    994 fi
    995 
    996 ################################################################################
    997 AC_PATH_PROG(MODPROBE_CMD, modprobe)
    998 
    999 if test x$MODPROBE_CMD != x; then
   1000 	AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.])
   1001 fi
   1002 
   1003 ################################################################################
   1004 dnl -- dmeventd pidfile and executable path
   1005 AH_TEMPLATE(DMEVENTD_PIDFILE, [Path to dmeventd pidfile.])
   1006 if test "$BUILD_DMEVENTD" = yes; then
   1007 	AC_ARG_WITH(dmeventd-pidfile,
   1008 		    [  --with-dmeventd-pidfile=PATH    dmeventd pidfile [[/var/run/dmeventd.pid]] ],
   1009 		    [ AC_DEFINE_UNQUOTED(DMEVENTD_PIDFILE,"$withval") ],
   1010 		    [ AC_DEFINE_UNQUOTED(DMEVENTD_PIDFILE,"/var/run/dmeventd.pid") ])
   1011 fi
   1012 
   1013 AH_TEMPLATE(DMEVENTD_PATH, [Path to dmeventd binary.])
   1014 if test "$BUILD_DMEVENTD" = yes; then
   1015         dmeventd_prefix="$exec_prefix"
   1016         if test "x$dmeventd_prefix" = "xNONE"; then
   1017                 dmeventd_prefix="$prefix"
   1018         fi
   1019         if test "x$dmeventd_prefix" = "xNONE"; then
   1020                 dmeventd_prefix=""
   1021         fi
   1022 	AC_ARG_WITH(dmeventd-path,
   1023 		    [  --with-dmeventd-path=PATH       dmeventd path [[EPREFIX/sbin/dmeventd]] ],
   1024 		    [ AC_DEFINE_UNQUOTED(DMEVENTD_PATH,"$withval") ],
   1025 		    [ AC_DEFINE_UNQUOTED(DMEVENTD_PATH,"$dmeventd_prefix/sbin/dmeventd") ])
   1026 fi
   1027 
   1028 ################################################################################
   1029 dnl -- which kernel interface to use (ioctl only)
   1030 AC_MSG_CHECKING(for kernel interface choice)
   1031 AC_ARG_WITH(interface,
   1032   [  --with-interface=IFACE  Choose kernel interface (ioctl) [[ioctl]] ],
   1033   [ interface="$withval" ],
   1034   [ interface=ioctl ])
   1035 if [[ "x$interface" != xioctl ]];
   1036 then
   1037   AC_MSG_ERROR(--with-interface=ioctl required. fs no longer supported.)
   1038 fi
   1039 AC_MSG_RESULT($interface)
   1040 
   1041 ################################################################################
   1042 DM_LIB_VERSION="\"`cat "$srcdir"/VERSION_DM 2>/dev/null || echo Unknown`\""
   1043 AC_DEFINE_UNQUOTED(DM_LIB_VERSION, $DM_LIB_VERSION, [Library version])
   1044 
   1045 DM_LIB_PATCHLEVEL=`cat "$srcdir"/VERSION_DM | $AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'`
   1046 
   1047 LVM_VERSION="\"`cat "$srcdir"/VERSION 2>/dev/null || echo Unknown`\""
   1048 
   1049 VER=`cat "$srcdir"/VERSION`
   1050 LVM_RELEASE_DATE="\"`echo $VER | $SED 's/.* (//;s/).*//'`\""
   1051 VER=`echo "$VER" | $AWK '{print $1}'`
   1052 LVM_RELEASE="\"`echo "$VER" | $AWK -F '-' '{print $2}'`\""
   1053 VER=`echo "$VER" | $AWK -F '-' '{print $1}'`
   1054 LVM_MAJOR=`echo "$VER" | $AWK -F '.' '{print $1}'`
   1055 LVM_MINOR=`echo "$VER" | $AWK -F '.' '{print $2}'`
   1056 LVM_PATCHLEVEL=`echo "$VER" | $AWK -F '[[(.]]' '{print $3}'`
   1057 LVM_LIBAPI=`echo "$VER" | $AWK -F '[[()]]' '{print $2}'`
   1058 
   1059 ################################################################################
   1060 AC_SUBST(APPLIB)
   1061 AC_SUBST(BUILD_CMIRRORD)
   1062 AC_SUBST(BUILD_DMEVENTD)
   1063 AC_SUBST(CCS_CFLAGS)
   1064 AC_SUBST(CCS_LIBS)
   1065 AC_SUBST(CFLAGS)
   1066 AC_SUBST(CFLOW_CMD)
   1067 AC_SUBST(CLDFLAGS)
   1068 AC_SUBST(CLDNOWHOLEARCHIVE)
   1069 AC_SUBST(CLDWHOLEARCHIVE)
   1070 AC_SUBST(CLUSTER)
   1071 AC_SUBST(CLVMD)
   1072 AC_SUBST(CMAN_CFLAGS)
   1073 AC_SUBST(CMAN_LIBS)
   1074 AC_SUBST(CMDLIB)
   1075 AC_SUBST(CONFDB_CFLAGS)
   1076 AC_SUBST(CONFDB_LIBS)
   1077 AC_SUBST(CONFDIR)
   1078 AC_SUBST(COPTIMISE_FLAG)
   1079 AC_SUBST(CPG_CFLAGS)
   1080 AC_SUBST(CPG_LIBS)
   1081 AC_SUBST(CSCOPE_CMD)
   1082 AC_SUBST(DEBUG)
   1083 AC_SUBST(DEVMAPPER)
   1084 AC_SUBST(DLM_CFLAGS)
   1085 AC_SUBST(DLM_LIBS)
   1086 AC_SUBST(DMEVENTD)
   1087 AC_SUBST(DM_COMPAT)
   1088 AC_SUBST(DM_DEVICE_GID)
   1089 AC_SUBST(DM_DEVICE_MODE)
   1090 AC_SUBST(DM_DEVICE_UID)
   1091 AC_SUBST(DM_IOCTLS)
   1092 AC_SUBST(DM_LIB_VERSION)
   1093 AC_SUBST(DM_LIB_PATCHLEVEL)
   1094 AC_SUBST(FSADM)
   1095 AC_SUBST(GROUP)
   1096 AC_SUBST(GULM_CFLAGS)
   1097 AC_SUBST(GULM_LIBS)
   1098 AC_SUBST(HAVE_LIBDL)
   1099 AC_SUBST(HAVE_REALTIME)
   1100 AC_SUBST(HAVE_SELINUX)
   1101 AC_SUBST(INTL)
   1102 AC_SUBST(INTL_PACKAGE)
   1103 AC_SUBST(JOBS)
   1104 AC_SUBST(LDDEPS)
   1105 AC_SUBST(LIBS)
   1106 AC_SUBST(LIB_SUFFIX)
   1107 AC_SUBST(LOCALEDIR)
   1108 AC_SUBST(LVM1)
   1109 AC_SUBST(LVM1_FALLBACK)
   1110 AC_SUBST(LVM_VERSION)
   1111 AC_SUBST(LVM_LIBAPI)
   1112 AC_SUBST(LVM_MAJOR)
   1113 AC_SUBST(LVM_MINOR)
   1114 AC_SUBST(LVM_PATCHLEVEL)
   1115 AC_SUBST(LVM_RELEASE)
   1116 AC_SUBST(LVM_RELEASE_DATE)
   1117 AC_SUBST(MIRRORS)
   1118 AC_SUBST(MSGFMT)
   1119 AC_SUBST(OWNER)
   1120 AC_SUBST(PKGCONFIG)
   1121 AC_SUBST(POOL)
   1122 AC_SUBST(QUORUM_CFLAGS)
   1123 AC_SUBST(QUORUM_LIBS)
   1124 AC_SUBST(SACKPT_CFLAGS)
   1125 AC_SUBST(SACKPT_LIBS)
   1126 AC_SUBST(SALCK_CFLAGS)
   1127 AC_SUBST(SALCK_LIBS)
   1128 AC_SUBST(SELINUX_LIBS)
   1129 AC_SUBST(SNAPSHOTS)
   1130 AC_SUBST(STATICDIR)
   1131 AC_SUBST(STATIC_LINK)
   1132 AC_SUBST(UDEV_RULES)
   1133 AC_SUBST([LIB_PTHREAD])
   1134 AC_SUBST(interface)
   1135 AC_SUBST(kerneldir)
   1136 AC_SUBST(missingkernel)
   1137 AC_SUBST(kernelvsn)
   1138 AC_SUBST(tmpdir)
   1139 AC_SUBST(udev_prefix)
   1140 AC_SUBST(udevdir)
   1141 AC_SUBST(usrlibdir)
   1142 AC_SUBST(usrsbindir)
   1143 
   1144 ################################################################################
   1145 dnl -- First and last lines should not contain files to generate in order to
   1146 dnl -- keep utility scripts running properly
   1147 AC_CONFIG_FILES([
   1148 Makefile
   1149 make.tmpl
   1150 daemons/Makefile
   1151 daemons/clvmd/Makefile
   1152 daemons/cmirrord/Makefile
   1153 daemons/dmeventd/Makefile
   1154 daemons/dmeventd/libdevmapper-event.pc
   1155 daemons/dmeventd/plugins/Makefile
   1156 daemons/dmeventd/plugins/mirror/Makefile
   1157 daemons/dmeventd/plugins/snapshot/Makefile
   1158 doc/Makefile
   1159 include/.symlinks
   1160 include/Makefile
   1161 lib/Makefile
   1162 lib/format1/Makefile
   1163 lib/format_pool/Makefile
   1164 lib/locking/Makefile
   1165 lib/mirror/Makefile
   1166 lib/misc/lvm-version.h
   1167 lib/snapshot/Makefile
   1168 libdm/Makefile
   1169 libdm/libdevmapper.pc
   1170 liblvm/Makefile
   1171 liblvm/liblvm2app.pc
   1172 man/Makefile
   1173 po/Makefile
   1174 scripts/clvmd_init_red_hat
   1175 scripts/lvm2_monitoring_init_red_hat
   1176 scripts/Makefile
   1177 test/Makefile
   1178 test/api/Makefile
   1179 tools/Makefile
   1180 udev/Makefile
   1181 ])
   1182 AC_OUTPUT
   1183 
   1184 if test x$ODIRECT != xyes; then
   1185   AC_MSG_WARN(Warning: O_DIRECT disabled: low-memory pvmove may lock up)
   1186 fi
   1187