mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
539 lines
17 KiB
Plaintext
539 lines
17 KiB
Plaintext
##
|
|
## Copyright 1999-2000 Sistina Software, Inc.
|
|
##
|
|
## This is free software released under the GNU General Public License.
|
|
## There is no warranty for this software. See the file COPYING for
|
|
## details.
|
|
##
|
|
## See the file CONTRIBUTORS for a list of contributors.
|
|
##
|
|
## This file is maintained by:
|
|
## AJ Lewis <lewis@sistina.com>
|
|
##
|
|
## File name: configure.in
|
|
##
|
|
## Description: Input file for autoconf. Generates the configure script
|
|
## that tries to keep everything nice and portable. It also
|
|
## simplifies distribution package building considerably.
|
|
################################################################################
|
|
|
|
################################################################################
|
|
dnl -- Process this file with autoconf to produce a configure script.
|
|
AC_INIT(lib/device/dev-cache.h)
|
|
|
|
################################################################################
|
|
dnl -- setup the directory where autoconf has auxilary files
|
|
AC_CONFIG_AUX_DIR(autoconf)
|
|
|
|
################################################################################
|
|
dnl -- Get system type
|
|
AC_CANONICAL_SYSTEM
|
|
|
|
case "$host_os" in
|
|
linux*)
|
|
CFLAGS="$CFLAGS"
|
|
COPTIMISE_FLAG="-O2"
|
|
CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
|
|
CLDWHOLEARCHIVE="-Wl,-whole-archive"
|
|
CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
|
|
LDDEPS="$LDDEPS .export.sym"
|
|
LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
|
|
SOFLAG="-shared"
|
|
DEVMAPPER=yes
|
|
ODIRECT=yes
|
|
SELINUX=yes
|
|
CLUSTER=internal
|
|
FSADM=no ;;
|
|
darwin*)
|
|
CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
|
|
COPTIMISE_FLAG="-O2"
|
|
CLDFLAGS="$CLDFLAGS"
|
|
CLDWHOLEARCHIVE="-all_load"
|
|
CLDNOWHOLEARCHIVE=
|
|
LDDEPS="$LDDEPS"
|
|
LDFLAGS="$LDFLAGS"
|
|
SOFLAG="-dynamiclib"
|
|
DEVMAPPER=no
|
|
ODIRECT=no
|
|
SELINUX=no
|
|
CLUSTER=none
|
|
FSADM=no ;;
|
|
esac
|
|
|
|
################################################################################
|
|
dnl -- Checks for programs.
|
|
AC_PROG_AWK
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_RANLIB
|
|
|
|
################################################################################
|
|
dnl -- Checks for header files.
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(fcntl.h malloc.h sys/ioctl.h unistd.h)
|
|
|
|
################################################################################
|
|
dnl -- Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_SIZE_T
|
|
AC_STRUCT_ST_RDEV
|
|
AC_HEADER_TIME
|
|
|
|
################################################################################
|
|
dnl -- Prefix is /usr by default, the exec_prefix default is setup later
|
|
AC_PREFIX_DEFAULT(/usr)
|
|
|
|
################################################################################
|
|
dnl -- Parallel make jobs?
|
|
AC_ARG_ENABLE(jobs, [ --enable-jobs=NUM Number of jobs to run simultaneously], JOBS=-j$enableval, JOBS=-j2)
|
|
|
|
################################################################################
|
|
dnl -- Setup the ownership of the files
|
|
echo $ac_n "Setting file owner to""... $ac_c" 1>&6
|
|
OWNER="root"
|
|
|
|
AC_ARG_WITH(user,
|
|
[ --with-user=USER Set the owner of installed files ],
|
|
[ OWNER="$withval" ])
|
|
echo "$ac_t""$OWNER" 1>&6
|
|
|
|
if test x$OWNER != x; then
|
|
OWNER="-o $OWNER"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Setup the group ownership of the files
|
|
echo $ac_n "Setting group owner to""... $ac_c" 1>&6
|
|
GROUP="root"
|
|
AC_ARG_WITH(group,
|
|
[ --with-group=GROUP Set the group owner of installed files ],
|
|
[ GROUP="$withval" ])
|
|
echo "$ac_t""$GROUP" 1>&6
|
|
|
|
if test x$GROUP != x; then
|
|
GROUP="-g $GROUP"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- LVM1 tool fallback option
|
|
echo $ac_n "checking whether to enable lvm1 fallback""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(lvm1_fallback, [ --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)
|
|
echo "$ac_t""$LVM1_FALLBACK" 1>&6
|
|
|
|
if test x$LVM1_FALLBACK = xyes; then
|
|
CFLAGS="$CFLAGS -DLVM1_FALLBACK"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- format1 inclusion type
|
|
echo $ac_n "checking whether to include support for lvm1 metadata""... $ac_c" 1>&6
|
|
AC_ARG_WITH(lvm1,
|
|
[ --with-lvm1=TYPE LVM1 metadata support: internal/shared/none
|
|
[TYPE=internal] ],
|
|
[ LVM1="$withval" ],
|
|
[ LVM1="internal" ])
|
|
echo "$ac_t""$LVM1" 1>&6
|
|
|
|
if [[ "x$LVM1" != xnone -a "x$LVM1" != xinternal -a "x$LVM1" != xshared ]];
|
|
then AC_MSG_ERROR(
|
|
--with-lvm1 parameter invalid
|
|
)
|
|
exit
|
|
fi;
|
|
|
|
if test x$LVM1 = xinternal; then
|
|
CFLAGS="$CFLAGS -DLVM1_INTERNAL"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- format_pool inclusion type
|
|
echo $ac_n "checking whether to include support for GFS pool metadata""... $ac_c" 1>&6
|
|
AC_ARG_WITH(pool,
|
|
[ --with-pool=TYPE GFS pool read-only support: internal/shared/none
|
|
[TYPE=internal] ],
|
|
[ POOL="$withval" ],
|
|
[ POOL="internal" ])
|
|
echo "$ac_t""$POOL" 1>&6
|
|
|
|
if [[ "x$POOL" != xnone -a "x$POOL" != xinternal -a "x$POOL" != xshared ]];
|
|
then AC_MSG_ERROR(
|
|
--with-pool parameter invalid
|
|
)
|
|
exit
|
|
fi;
|
|
|
|
if test x$POOL = xinternal; then
|
|
CFLAGS="$CFLAGS -DPOOL_INTERNAL"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- cluster_locking inclusion type
|
|
echo $ac_n "checking whether to include support for cluster locking""... $ac_c" 1>&6
|
|
AC_ARG_WITH(cluster,
|
|
[ --with-cluster=TYPE Cluster LVM locking support: internal/shared/none
|
|
[TYPE=internal] ],
|
|
[ CLUSTER="$withval" ])
|
|
echo "$ac_t""$CLUSTER" 1>&6
|
|
|
|
if [[ "x$CLUSTER" != xnone -a "x$CLUSTER" != xinternal -a "x$CLUSTER" != xshared ]];
|
|
then AC_MSG_ERROR(
|
|
--with-cluster parameter invalid
|
|
)
|
|
exit
|
|
fi;
|
|
|
|
if test x$CLUSTER = xinternal; then
|
|
CFLAGS="$CFLAGS -DCLUSTER_LOCKING_INTERNAL"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- snapshots inclusion type
|
|
echo $ac_n "checking whether to include snapshots""... $ac_c" 1>&6
|
|
AC_ARG_WITH(snapshots,
|
|
[ --with-snapshots=TYPE Snapshot support: internal/shared/none
|
|
[TYPE=internal] ],
|
|
[ SNAPSHOTS="$withval" ],
|
|
[ SNAPSHOTS="internal" ])
|
|
echo "$ac_t""$SNAPSHOTS" 1>&6
|
|
|
|
if [[ "x$SNAPSHOTS" != xnone -a "x$SNAPSHOTS" != xinternal -a "x$SNAPSHOTS" != xshared ]];
|
|
then AC_MSG_ERROR(
|
|
--with-snapshots parameter invalid
|
|
)
|
|
exit
|
|
fi;
|
|
|
|
if test x$SNAPSHOTS = xinternal; then
|
|
CFLAGS="$CFLAGS -DSNAPSHOT_INTERNAL"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- mirrors inclusion type
|
|
echo $ac_n "checking whether to include mirrors""... $ac_c" 1>&6
|
|
AC_ARG_WITH(mirrors,
|
|
[ --with-mirrors=TYPE Mirror support: internal/shared/none
|
|
[TYPE=internal] ],
|
|
[ MIRRORS="$withval" ],
|
|
[ MIRRORS="internal" ])
|
|
echo "$ac_t""$MIRRORS" 1>&6
|
|
|
|
if [[ "x$MIRRORS" != xnone -a "x$MIRRORS" != xinternal -a "x$MIRRORS" != xshared ]];
|
|
then AC_MSG_ERROR(
|
|
--with-mirrors parameter invalid
|
|
)
|
|
exit
|
|
fi;
|
|
|
|
if test x$MIRRORS = xinternal; then
|
|
CFLAGS="$CFLAGS -DMIRRORED_INTERNAL"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Enables staticly-linked tools
|
|
echo $ac_n "checking whether to use static linking""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(static_link, [ --enable-static_link Use this to link the tools to their libraries
|
|
statically. Default is dynamic linking], STATIC_LINK=$enableval, STATIC_LINK=no)
|
|
echo "$ac_t""$STATIC_LINK" 1>&6
|
|
|
|
################################################################################
|
|
dnl -- Enable readline
|
|
echo $ac_n "checking whether to enable readline""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(readline, [ --enable-readline Enable readline support], \
|
|
READLINE=$enableval, READLINE=no)
|
|
echo "$ac_t""$READLINE" 1>&6
|
|
|
|
if test x$READLINE = xyes; then
|
|
CFLAGS="$CFLAGS -DREADLINE_SUPPORT"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Disable selinux
|
|
echo $ac_n "checking whether to enable selinux support""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(selinux, [ --disable-selinux Disable selinux support], \
|
|
SELINUX=$enableval)
|
|
echo "$ac_t""$SELINUX" 1>&6
|
|
|
|
################################################################################
|
|
dnl -- Build cluster LVM daemon
|
|
echo $ac_n "checking whether to build cluster LVM daemon""... $ac_c" 1>&6
|
|
AC_ARG_WITH(clvmd, [ --with-clvmd Build cluster LVM Daemon], \
|
|
CLVMD=$withval, CLVMD=no)
|
|
echo "$ac_t""$CLVMD" 1>&6
|
|
|
|
dnl -- If clvmd enabled without cluster locking, automagically include it
|
|
if test x$CLVMD = xyes && test x$CLUSTER = xnone; then
|
|
CLUSTER=internal
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Enable debugging
|
|
echo $ac_n "checking whether to enable debugging""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(debug, [ --enable-debug Enable debugging], \
|
|
DEBUG=yes, DEBUG=no)
|
|
echo "$ac_t""$DEBUG" 1>&6
|
|
|
|
dnl -- Normally turn off optimisation for debug builds
|
|
if test x$DEBUG = xyes; then
|
|
COPTIMISE_FLAG=
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Override optimisation
|
|
echo $ac_n "checking for C optimisation flag""... $ac_c" 1>&6
|
|
AC_ARG_WITH(optimisation,
|
|
[ --with-optimisation=OPT C optimisation flag [OPT=-O2] ],
|
|
[ COPTIMISE_FLAG="$withval" ])
|
|
echo "$ac_t""$COPTIMISE_FLAG" 1>&6
|
|
|
|
################################################################################
|
|
dnl -- Disable devmapper
|
|
echo $ac_n "checking whether to use device-mapper""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(devmapper, [ --disable-devmapper Disable device-mapper interaction], \
|
|
DEVMAPPER=no)
|
|
echo "$ac_t""$DEVMAPPER" 1>&6
|
|
|
|
if test x$DEVMAPPER = xyes; then
|
|
CFLAGS="$CFLAGS -DDEVMAPPER_SUPPORT"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Disable O_DIRECT
|
|
echo $ac_n "checking whether to enable O_DIRECT""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(o_direct, [ --disable-o_direct Disable O_DIRECT], \
|
|
ODIRECT=no)
|
|
echo "$ac_t""$ODIRECT" 1>&6
|
|
|
|
if test x$ODIRECT = xyes; then
|
|
CFLAGS="$CFLAGS -DO_DIRECT_SUPPORT"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Enable cmdlib
|
|
echo $ac_n "checking whether to compile liblvm2cmd.so""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(cmdlib, [ --enable-cmdlib Build shared command library], \
|
|
CMDLIB=yes, CMDLIB=no)
|
|
echo "$ac_t""$CMDLIB" 1>&6
|
|
|
|
if test x$CMDLIB = xyes; then
|
|
CFLAGS="$CFLAGS -DCMDLIB"
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Enable fsadm
|
|
echo $ac_n "checking whether to build fsadm""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(fsadm, [ --enable-fsadm Enable fsadm], FSADM=yes)
|
|
echo "$ac_t""$FSADM" 1>&6
|
|
|
|
################################################################################
|
|
dnl -- Mess with default exec_prefix
|
|
if [[ "x$exec_prefix" = xNONE -a "x$prefix" = xNONE ]];
|
|
then exec_prefix="";
|
|
fi;
|
|
|
|
################################################################################
|
|
dnl -- Checks for library functions.
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_TYPE_SIGNAL
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(mkdir rmdir uname)
|
|
|
|
################################################################################
|
|
dnl -- Check for termcap (Shamelessly copied from parted 1.4.17)
|
|
if test x$READLINE = xyes; then
|
|
AC_SEARCH_LIBS(tgetent, ncurses curses termcap termlib, ,
|
|
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.
|
|
)
|
|
exit
|
|
)
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Check for dlopen
|
|
AC_CHECK_LIB(dl, dlopen, HAVE_LIBDL=yes, HAVE_LIBDL=no)
|
|
|
|
if [[ "x$HAVE_LIBDL" = xyes -a "x$STATIC_LINK" = xno ]]; then
|
|
CFLAGS="$CFLAGS -DHAVE_LIBDL"
|
|
LIBS="-ldl $LIBS"
|
|
else
|
|
HAVE_LIBDL=no
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Check for shared/static conflicts
|
|
if [[ \( "x$LVM1" = xshared -o "x$POOL" = xshared -o "x$CLUSTER" = xshared \
|
|
-o "x$SNAPSHOTS" = xshared -o "x$MIRRORS" = xshared \
|
|
\) -a "x$STATIC_LINK" = xyes ]];
|
|
then AC_MSG_ERROR(
|
|
Features cannot be 'shared' when building statically
|
|
)
|
|
exit
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Check for is_selinux_enabled
|
|
if test x$SELINUX = xyes; then
|
|
AC_CHECK_LIB(selinux, is_selinux_enabled, HAVE_SELINUX=yes, HAVE_SELINUX=no)
|
|
|
|
if test x$HAVE_SELINUX = xyes; then
|
|
CFLAGS="$CFLAGS -DHAVE_SELINUX"
|
|
LIBS="-lselinux $LIBS"
|
|
else
|
|
echo "Disabling selinux" 1>&6
|
|
fi
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Check for getopt
|
|
AC_CHECK_HEADERS(getopt.h, CFLAGS="$CFLAGS -DHAVE_GETOPTLONG")
|
|
|
|
################################################################################
|
|
dnl -- Check for readline (Shamelessly copied from parted 1.4.17)
|
|
if test x$READLINE = xyes; then
|
|
AC_CHECK_LIB(readline, readline, ,
|
|
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).
|
|
)
|
|
exit
|
|
)
|
|
AC_CHECK_FUNC(rl_completion_matches, CFLAGS="$CFLAGS -DHAVE_RL_COMPLETION_MATCHES")
|
|
|
|
fi
|
|
|
|
################################################################################
|
|
dnl -- Internationalisation stuff
|
|
echo $ac_n "checking whether to enable internationalisation""... $ac_c" 1>&6
|
|
AC_ARG_ENABLE(nls, [ --enable-nls Enable Native Language Support],\
|
|
INTL=yes, INTL=no)
|
|
echo "$ac_t""$INTL" 1>&6
|
|
|
|
if test x$INTL = xyes; then
|
|
INTL_PACKAGE="lvm2"
|
|
AC_PATH_PROG(MSGFMT, msgfmt)
|
|
if [[ "x$MSGFMT" == x ]];
|
|
then AC_MSG_ERROR(
|
|
msgfmt not found in path $PATH
|
|
)
|
|
exit
|
|
fi;
|
|
|
|
AC_ARG_WITH(localedir,
|
|
[ --with-localedir=DIR Translation files in DIR [PREFIX/share/locale]],
|
|
[ LOCALEDIR="$withval" ],
|
|
[ LOCALEDIR='${prefix}/share/locale' ])
|
|
fi
|
|
|
|
################################################################################
|
|
AC_ARG_WITH(confdir,
|
|
[ --with-confdir=DIR Configuration files in DIR [/etc]],
|
|
[ CONFDIR="$withval" ],
|
|
[ CONFDIR='/etc' ])
|
|
|
|
AC_ARG_WITH(staticdir,
|
|
[ --with-staticdir=DIR Static binary in DIR [EXEC_PREFIX/sbin]],
|
|
[ STATICDIR="$withval" ],
|
|
[ STATICDIR='${exec_prefix}/sbin' ])
|
|
|
|
|
|
################################################################################
|
|
if test "-f VERSION"; then
|
|
LVM_VERSION="\"`cat VERSION`\""
|
|
else
|
|
LVM_VERSION="Unknown"
|
|
fi
|
|
|
|
################################################################################
|
|
AC_SUBST(JOBS)
|
|
AC_SUBST(STATIC_LINK)
|
|
AC_SUBST(LVM1)
|
|
AC_SUBST(POOL)
|
|
AC_SUBST(SNAPSHOTS)
|
|
AC_SUBST(MIRRORS)
|
|
AC_SUBST(OWNER)
|
|
AC_SUBST(GROUP)
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(COPTIMISE_FLAG)
|
|
AC_SUBST(CLDFLAGS)
|
|
AC_SUBST(CLDWHOLEARCHIVE)
|
|
AC_SUBST(CLDNOWHOLEARCHIVE)
|
|
AC_SUBST(LDDEPS)
|
|
AC_SUBST(LDFLAGS)
|
|
AC_SUBST(SOFLAG)
|
|
AC_SUBST(LIBS)
|
|
AC_SUBST(LVM_VERSION)
|
|
AC_SUBST(LVM1_FALLBACK)
|
|
AC_SUBST(DEBUG)
|
|
AC_SUBST(DEVMAPPER)
|
|
AC_SUBST(HAVE_LIBDL)
|
|
AC_SUBST(HAVE_SELINUX)
|
|
AC_SUBST(CMDLIB)
|
|
AC_SUBST(MSGFMT)
|
|
AC_SUBST(LOCALEDIR)
|
|
AC_SUBST(CONFDIR)
|
|
AC_SUBST(STATICDIR)
|
|
AC_SUBST(INTL_PACKAGE)
|
|
AC_SUBST(INTL)
|
|
AC_SUBST(CLVMD)
|
|
AC_SUBST(CLUSTER)
|
|
AC_SUBST(FSADM)
|
|
|
|
################################################################################
|
|
dnl -- First and last lines should not contain files to generate in order to
|
|
dnl -- keep utility scripts running properly
|
|
AC_OUTPUT( \
|
|
Makefile \
|
|
make.tmpl \
|
|
daemons/Makefile \
|
|
daemons/clvmd/Makefile \
|
|
doc/Makefile \
|
|
include/Makefile \
|
|
lib/Makefile \
|
|
lib/format1/Makefile \
|
|
lib/format_pool/Makefile \
|
|
lib/locking/Makefile \
|
|
lib/mirror/Makefile \
|
|
lib/snapshot/Makefile \
|
|
man/Makefile \
|
|
po/Makefile \
|
|
tools/Makefile \
|
|
tools/version.h \
|
|
tools/fsadm/Makefile \
|
|
test/mm/Makefile \
|
|
test/device/Makefile \
|
|
test/format1/Makefile \
|
|
test/regex/Makefile \
|
|
test/filters/Makefile \
|
|
)
|
|
|
|
if test x$ODIRECT != xyes; then
|
|
echo
|
|
echo Warning: O_DIRECT disabled.
|
|
echo Use of pvmove may cause machine to lock up under low memory conditions.
|
|
echo
|
|
fi
|
|
|
|
if test x$FSADM == xyes; then
|
|
echo
|
|
echo Warning: fsadm support is untested.
|
|
echo
|
|
fi
|