|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# Process this file with autoconf to produce a configure script.
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_PREREQ([2.63])
|
|
Packit |
6ef888 |
AC_INIT([gfs2-utils], [master], [cluster-devel@redhat.com])
|
|
Packit |
6ef888 |
AM_INIT_AUTOMAKE([-Wno-portability])
|
|
Packit |
6ef888 |
AM_SILENT_RULES([yes])
|
|
Packit |
6ef888 |
LT_PREREQ([2.2.6])
|
|
Packit |
6ef888 |
LT_INIT
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_CONFIG_MACRO_DIR([m4])
|
|
Packit |
6ef888 |
AC_CONFIG_SRCDIR([gfs2/libgfs2/libgfs2.h])
|
|
Packit |
6ef888 |
AC_CONFIG_HEADERS([make/clusterautoconfig.h])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_CANONICAL_HOST
|
|
Packit |
6ef888 |
AC_PROG_LIBTOOL
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_LANG([C])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
#i18n support
|
|
Packit |
6ef888 |
AM_GNU_GETTEXT([external])
|
|
Packit |
6ef888 |
AM_GNU_GETTEXT_VERSION([0.18])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# Sanitize path
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
if test "$prefix" = "NONE"; then
|
|
Packit |
6ef888 |
prefix="/usr"
|
|
Packit |
6ef888 |
if test "$localstatedir" = "\${prefix}/var"; then
|
|
Packit |
6ef888 |
localstatedir="/var"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
if test "$sysconfdir" = "\${prefix}/etc"; then
|
|
Packit |
6ef888 |
sysconfdir="/etc"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
if test "$libdir" = "\${exec_prefix}/lib"; then
|
|
Packit |
6ef888 |
if test -e /usr/lib64; then
|
|
Packit |
6ef888 |
libdir="/usr/lib64"
|
|
Packit |
6ef888 |
else
|
|
Packit |
6ef888 |
libdir="/usr/lib"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
case $exec_prefix in
|
|
Packit |
6ef888 |
NONE) exec_prefix=$prefix;;
|
|
Packit |
6ef888 |
prefix) exec_prefix=$prefix;;
|
|
Packit |
6ef888 |
esac
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# Checks for programs.
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# check stolen from gnulib/m4/gnu-make.m4
|
|
Packit |
6ef888 |
if ! ${MAKE-make} --version /cannot/make/this >/dev/null 2>&1; then
|
|
Packit |
6ef888 |
AC_MSG_ERROR([GNU make was not found but is required.])
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_PROG_CC
|
|
Packit |
6ef888 |
AM_PROG_CC_C_O
|
|
Packit |
6ef888 |
AC_PROG_LN_S
|
|
Packit |
6ef888 |
AC_PROG_INSTALL
|
|
Packit |
6ef888 |
AC_PROG_MAKE_SET
|
|
Packit |
6ef888 |
AC_PROG_LEX
|
|
Packit |
6ef888 |
test "$LEX" != "flex" && AC_MSG_ERROR([flex not found])
|
|
Packit |
6ef888 |
AC_CHECK_PROG([YACC], [bison], [bison -y])
|
|
Packit |
6ef888 |
test x"$YACC" = x && AC_MSG_ERROR([bison not found])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
## local helper functions
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# this function checks if CC support options passed as
|
|
Packit |
6ef888 |
# args. Global CFLAGS are ignored during this test.
|
|
Packit |
6ef888 |
cc_supports_flag() {
|
|
Packit |
6ef888 |
local CFLAGS="$@"
|
|
Packit |
6ef888 |
AC_MSG_CHECKING([whether $CC supports $CFLAGS])
|
|
Packit |
6ef888 |
AC_COMPILE_IFELSE([AC_LANG_SOURCE([int main(){return 0;}])],
|
|
Packit |
6ef888 |
[RC=0; AC_MSG_RESULT([yes])],
|
|
Packit |
6ef888 |
[RC=1; AC_MSG_RESULT([no])])
|
|
Packit |
6ef888 |
return $RC
|
|
Packit |
6ef888 |
}
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# this function tests if a library has a certain function
|
|
Packit |
6ef888 |
# by using AC_CHECK_LIB but restores the original LIBS global
|
|
Packit |
6ef888 |
# envvar. This is required to avoid libtool to link everything
|
|
Packit |
6ef888 |
# with everything.
|
|
Packit |
6ef888 |
check_lib_no_libs() {
|
|
Packit |
6ef888 |
AC_CHECK_LIB([$1], [$2],,
|
|
Packit |
6ef888 |
[AC_MSG_ERROR([Unable to find $1 library])])
|
|
Packit |
6ef888 |
LIBS=$ac_check_lib_save_LIBS
|
|
Packit |
6ef888 |
}
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# local options
|
|
Packit |
6ef888 |
AC_ARG_ENABLE([debug],
|
|
Packit |
6ef888 |
AC_HELP_STRING([--enable-debug],[enable debug build [default=no]]),
|
|
Packit |
6ef888 |
[], [enable_debug="no"])
|
|
Packit |
6ef888 |
AC_ARG_ENABLE([gcov],
|
|
Packit |
6ef888 |
AC_HELP_STRING([--enable-gcov],[enable coverage instrumentation [default=no]]),
|
|
Packit |
6ef888 |
[], [enable_gcov="no"])
|
|
Packit |
6ef888 |
AC_ARG_ENABLE([gprof],
|
|
Packit |
6ef888 |
AC_HELP_STRING([--enable-gprof],[enable profiling instrumentation [default=no]]),
|
|
Packit |
6ef888 |
[], [enable_gprof="no"])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# We use the Check framework for unit tests
|
|
Packit |
6ef888 |
PKG_CHECK_MODULES([check], [check >= 0.9.8],
|
|
Packit |
6ef888 |
[have_check=yes],
|
|
Packit |
6ef888 |
[have_check=no])
|
|
Packit |
6ef888 |
AM_CONDITIONAL([HAVE_CHECK], [test "x$have_check" = "xyes"])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
PKG_CHECK_MODULES([zlib],[zlib])
|
|
Packit |
6ef888 |
PKG_CHECK_MODULES([blkid],[blkid])
|
|
Packit |
6ef888 |
PKG_CHECK_MODULES([uuid],[uuid],
|
|
Packit |
6ef888 |
[have_uuid=yes],
|
|
Packit |
6ef888 |
[have_uuid=no])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# old versions of ncurses don't ship pkg-config files
|
|
Packit |
6ef888 |
PKG_CHECK_MODULES([ncurses],[ncurses],,
|
|
Packit |
6ef888 |
[check_lib_no_libs ncurses printw])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
if test -z "$ncurses_CFLAGS" && test -z "$ncurses_LIBS"; then
|
|
Packit |
6ef888 |
ncurses_LIBS=-lncurses
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_ARG_WITH([udevdir],
|
|
Packit |
6ef888 |
AS_HELP_STRING([--with-udevdir=DIR],
|
|
Packit |
6ef888 |
[udev directory containing rules.d [default=${prefix}/lib/udev]]),
|
|
Packit |
6ef888 |
[], [with_udevdir=\${prefix}/lib/udev])
|
|
Packit |
6ef888 |
AC_SUBST([udevdir], [$with_udevdir])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# Checks for header files.
|
|
Packit |
6ef888 |
AC_CHECK_HEADERS([fcntl.h libintl.h limits.h locale.h mntent.h stddef.h sys/file.h sys/ioctl.h sys/mount.h sys/time.h sys/vfs.h syslog.h termios.h])
|
|
Packit |
6ef888 |
AC_CHECK_HEADER([linux/fs.h], [], [AC_MSG_ERROR([Unable to find linux/fs.h])])
|
|
Packit |
6ef888 |
AC_CHECK_HEADER([linux/types.h], [], [AC_MSG_ERROR([Unable to find linux/types.h])])
|
|
Packit |
6ef888 |
AC_CHECK_HEADER([linux/limits.h], [], [AC_MSG_ERROR([Unable to find linux/limits.h])])
|
|
Packit |
6ef888 |
AC_CHECK_HEADER([linux/gfs2_ondisk.h], [], [AC_MSG_ERROR([Unable to find linux/gfs2_ondisk.h])])
|
|
Packit |
6ef888 |
AC_CHECK_MEMBER([struct gfs2_sb.sb_uuid], [sb_has_uuid=yes], [sb_has_uuid=no],
|
|
Packit |
6ef888 |
[[#include <linux/gfs2_ondisk.h>]])
|
|
Packit |
6ef888 |
AC_CHECK_MEMBER([struct gfs2_leaf.lf_inode],[AC_DEFINE([GFS2_HAS_LEAF_HINTS],[],[Leaf block hints])],
|
|
Packit |
6ef888 |
[], [[#include <linux/gfs2_ondisk.h>]])
|
|
Packit |
6ef888 |
AC_CHECK_MEMBER([struct gfs2_dirent.de_rahead],[AC_DEFINE([GFS2_HAS_DE_RAHEAD],[],[Dirent readahead field])],
|
|
Packit |
6ef888 |
[], [[#include <linux/gfs2_ondisk.h>]])
|
|
Packit |
6ef888 |
AC_CHECK_MEMBER([struct gfs2_dirent.de_cookie],[AC_DEFINE([GFS2_HAS_DE_COOKIE],[],[Dirent cookie field])],
|
|
Packit |
6ef888 |
[], [[#include <linux/gfs2_ondisk.h>]])
|
|
Packit |
6ef888 |
AC_CHECK_MEMBER([struct gfs2_rgrp.rg_skip],[AC_DEFINE([GFS2_HAS_RG_SKIP],[],[Next resource group pointer])],
|
|
Packit |
6ef888 |
[], [[#include <linux/gfs2_ondisk.h>]])
|
|
Packit |
6ef888 |
AC_CHECK_MEMBER([struct gfs2_rgrp.rg_data0],[AC_DEFINE([GFS2_HAS_RG_RI_FIELDS],[],[Resource group fields duplicated from the rindex])],
|
|
Packit |
6ef888 |
[], [[#include <linux/gfs2_ondisk.h>]])
|
|
Packit |
6ef888 |
AC_CHECK_MEMBER([struct gfs2_log_header.lh_crc],[AC_DEFINE([GFS2_HAS_LH_V2],[],[v2 log header format])],
|
|
Packit |
6ef888 |
[], [[#include <linux/gfs2_ondisk.h>]])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# libuuid is only required if struct gfs2_sb.sb_uuid exists
|
|
Packit |
6ef888 |
if test "$sb_has_uuid" = "yes" -a "$have_uuid" = "no"; then
|
|
Packit |
6ef888 |
AC_MSG_ERROR([libuuid is required for this version of gfs2])
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# *FLAGS handling
|
|
Packit |
6ef888 |
ENV_CFLAGS="$CFLAGS"
|
|
Packit |
6ef888 |
ENV_CPPFLAGS="$CPPFLAGS"
|
|
Packit |
6ef888 |
ENV_LDFLAGS="$LDFLAGS"
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# debug build stuff
|
|
Packit |
6ef888 |
if test "x${enable_debug}" = xyes; then
|
|
Packit |
6ef888 |
AC_DEFINE_UNQUOTED([DEBUG], [1], [Compiling Debugging code])
|
|
Packit |
6ef888 |
OPT_CFLAGS="-O0"
|
|
Packit |
6ef888 |
OPT_CPPFLAGS=""
|
|
Packit |
6ef888 |
else
|
|
Packit |
6ef888 |
OPT_CFLAGS="-O2"
|
|
Packit |
6ef888 |
OPT_CPPFLAGS="-D_FORTIFY_SOURCE=2"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# gdb flags
|
|
Packit |
6ef888 |
if test "x${GCC}" = xyes; then
|
|
Packit |
6ef888 |
GDB_FLAGS="-ggdb3"
|
|
Packit |
6ef888 |
else
|
|
Packit |
6ef888 |
GDB_FLAGS="-g"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# gcov works without optimization
|
|
Packit |
6ef888 |
if test "x${enable_gcov}" = xyes; then
|
|
Packit |
6ef888 |
GCOV_CFLAGS="-fprofile-arcs -ftest-coverage"
|
|
Packit |
6ef888 |
if ! cc_supports_flag $GCOV_CFLAGS; then
|
|
Packit |
6ef888 |
AC_MSG_ERROR([your compiler does not support coverage instrumentation])
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
if test "x${enable_debug}" = xyes; then
|
|
Packit |
6ef888 |
enable_debug="no (gcov enabled)"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
OPT_CFLAGS="-O0 $GCOV_CFLAGS"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
if test "x${enable_gprof}" = xyes; then
|
|
Packit |
6ef888 |
GPROF_CFLAGS="-pg"
|
|
Packit |
6ef888 |
if ! cc_supports_flag $GPROF_CFLAGS; then
|
|
Packit |
6ef888 |
AC_MSG_ERROR([your compiler does not support gprof instrumentation])
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
OPT_CFLAGS="$OPT_CFLAGS $GPROF_CFLAGS"
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
# extra warnings
|
|
Packit |
6ef888 |
EXTRA_WARNINGS=""
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
WARNLIST="
|
|
Packit |
6ef888 |
all
|
|
Packit |
6ef888 |
shadow
|
|
Packit |
6ef888 |
missing-prototypes
|
|
Packit |
6ef888 |
missing-declarations
|
|
Packit |
6ef888 |
strict-prototypes
|
|
Packit |
6ef888 |
declaration-after-statement
|
|
Packit |
6ef888 |
pointer-arith
|
|
Packit |
6ef888 |
write-strings
|
|
Packit |
6ef888 |
cast-align
|
|
Packit |
6ef888 |
bad-function-cast
|
|
Packit |
6ef888 |
missing-format-attribute
|
|
Packit |
6ef888 |
format=2
|
|
Packit |
6ef888 |
format-security
|
|
Packit |
6ef888 |
format-nonliteral
|
|
Packit |
6ef888 |
no-long-long
|
|
Packit |
6ef888 |
no-strict-aliasing
|
|
Packit |
6ef888 |
"
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
for j in $WARNLIST; do
|
|
Packit |
6ef888 |
if cc_supports_flag -W$j; then
|
|
Packit |
6ef888 |
EXTRA_WARNINGS="$EXTRA_WARNINGS -W$j";
|
|
Packit |
6ef888 |
fi
|
|
Packit |
6ef888 |
done
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS $EXTRA_WARNINGS $WERROR_CFLAGS"
|
|
Packit |
6ef888 |
CPPFLAGS="-I\$(top_builddir)/make -I\$(top_srcdir)/make -I. $ENV_CPPFLAGS $OPT_CPPFLAGS"
|
|
Packit |
6ef888 |
LDFLAGS="$ENV_LDFLAGS"
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_CONFIG_TESTDIR([tests], [gfs2/libgfs2:gfs2/mkfs:gfs2/fsck:gfs2/edit:gfs2/convert:gfs2/tune:tests])
|
|
Packit |
6ef888 |
AC_CONFIG_FILES([Makefile
|
|
Packit |
6ef888 |
gfs2/Makefile
|
|
Packit |
6ef888 |
gfs2/include/Makefile
|
|
Packit |
6ef888 |
gfs2/libgfs2/Makefile
|
|
Packit |
6ef888 |
gfs2/convert/Makefile
|
|
Packit |
6ef888 |
gfs2/edit/Makefile
|
|
Packit |
6ef888 |
gfs2/fsck/Makefile
|
|
Packit |
6ef888 |
gfs2/mkfs/Makefile
|
|
Packit |
6ef888 |
gfs2/tune/Makefile
|
|
Packit |
6ef888 |
gfs2/man/Makefile
|
|
Packit |
6ef888 |
gfs2/scripts/Makefile
|
|
Packit |
6ef888 |
gfs2/glocktop/Makefile
|
|
Packit |
6ef888 |
doc/Makefile
|
|
Packit |
6ef888 |
tests/Makefile
|
|
Packit |
6ef888 |
tests/atlocal
|
|
Packit |
6ef888 |
po/Makefile.in
|
|
Packit |
6ef888 |
])
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
AC_OUTPUT
|
|
Packit |
6ef888 |
|
|
Packit |
6ef888 |
echo
|
|
Packit |
6ef888 |
echo " Configure summary"
|
|
Packit |
6ef888 |
echo " ==================="
|
|
Packit |
6ef888 |
echo " prefix : $prefix"
|
|
Packit |
6ef888 |
echo " exec_prefix : $exec_prefix"
|
|
Packit |
6ef888 |
echo " libdir : $libdir"
|
|
Packit |
6ef888 |
echo " sbindir : $sbindir"
|
|
Packit |
6ef888 |
echo " udevdir : $udevdir"
|
|
Packit |
6ef888 |
echo " ------------------"
|
|
Packit |
6ef888 |
echo " debug build : $enable_debug"
|
|
Packit |
6ef888 |
echo " C unit tests : $have_check"
|
|
Packit |
6ef888 |
echo " gprof build : $enable_gprof"
|
|
Packit |
6ef888 |
echo " gcov build : $enable_gcov"
|
|
Packit |
6ef888 |
echo
|
|
Packit |
6ef888 |
echo "Now run 'make' to build and 'make check' to run tests"
|