Make everything a M4 macro, it's just cleaner that way

This commit is contained in:
Brian Behlendorf 2008-11-26 14:29:45 -08:00
parent e833fd4a5c
commit f0e648ca02
5 changed files with 80 additions and 69 deletions

View File

@ -1,51 +0,0 @@
# Default ZFS kernel mode configuration
# Kernel build make options
KERNELMAKE_PARAMS=
#KERNELMAKE_PARAMS="V=1" # Enable verbose module build
# Kernel build cpp flags
KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL "
KERNELCPPFLAGS="$KERNELCPPFLAGS -I$splsrc -I$splsrc/include -I$TOPDIR"
# Minimally required for pread() functionality an other GNU goodness
HOSTCFLAGS="$HOSTCFLAGS -ggdb -O2 -std=c99 -D_GNU_SOURCE -D__EXTENSIONS__ "
# XXX: Quiet warnings not covered by the gcc-* patches
# XXX: Once all the warnings are resolved these flags should be removed
HOSTCFLAGS="$HOSTCFLAGS -Wno-switch -Wno-unused -Wno-missing-braces -Wno-parentheses "
HOSTCFLAGS="$HOSTCFLAGS -Wno-uninitialized -fno-strict-aliasing "
# Expected defines not covered by zfs_config.h or spl_config.h
HOSTCFLAGS="$HOSTCFLAGS -DHAVE_SPL -D_POSIX_PTHREAD_SEMANTICS "
HOSTCFLAGS="$HOSTCFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT "
HOSTCFLAGS="$HOSTCFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\" "
# Expected default include paths additional paths added by Makefiles
HOSTCFLAGS="$HOSTCFLAGS -I$TOPDIR "
if test "$kernelbuild" != "$kernelsrc"; then
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$kernelbuild"
fi
# XXX: I really, really hate this... but to ensure the kernel build
# system compiles C files shared between a library and a kernel module,
# we need to ensure each file has a unique make target. To do that
# I'm creating symlinks for each shared file at configure time. It
# may be possible something better can be done in the Makefile but it
# will take some serious investigation and I don't have the time now.
echo "Creating symlinks for additional make targets"
ln -f -s $LIBDIR/libport/u8_textprep.c $LIBDIR/libport/ku8_textprep.c
ln -f -s $LIBDIR/libavl/avl.c $LIBDIR/libavl/kavl.c
ln -f -s $LIBDIR/libavl/avl.c $LIBDIR/libavl/uavl.c
ln -f -s $LIBDIR/libnvpair/nvpair.c $LIBDIR/libnvpair/knvpair.c
ln -f -s $LIBDIR/libnvpair/nvpair.c $LIBDIR/libnvpair/unvpair.c
ln -f -s $LIBDIR/libzcommon/zfs_deleg.c $LIBDIR/libzcommon/kzfs_deleg.c
ln -f -s $LIBDIR/libzcommon/zfs_prop.c $LIBDIR/libzcommon/kzfs_prop.c
ln -f -s $LIBDIR/libzcommon/zprop_common.c $LIBDIR/libzcommon/kzprop_common.c
ln -f -s $LIBDIR/libzcommon/compress.c $LIBDIR/libzcommon/kcompress.c
ln -f -s $LIBDIR/libzcommon/list.c $LIBDIR/libzcommon/klist.c
ln -f -s $LIBDIR/libzcommon/zfs_namecheck.c $LIBDIR/libzcommon/kzfs_namecheck.c
ln -f -s $LIBDIR/libzcommon/zfs_comutil.c $LIBDIR/libzcommon/kzfs_comutil.c
ln -f -s $LIBDIR/libzcommon/zpool_prop.c $LIBDIR/libzcommon/kzpool_prop.c

63
config/kernel.m4 Normal file
View File

@ -0,0 +1,63 @@
dnl #
dnl # Default ZFS kernel mode configuration
dnl #
AC_DEFUN([ZFS_AC_KERNEL_CONFIG], [
dnl # Kernel build make options
KERNELMAKE_PARAMS=
dnl #KERNELMAKE_PARAMS="V=1" # Enable verbose module build
dnl # Kernel build cpp flags
KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL "
KERNELCPPFLAGS="$KERNELCPPFLAGS -I$splsrc -I$splsrc/include -I$TOPDIR"
dnl # Required for pread() functionality an other GNU goodness
HOSTCFLAGS="$HOSTCFLAGS -ggdb -O2 -std=c99 "
HOSTCFLAGS="$HOSTCFLAGS -D_GNU_SOURCE -D__EXTENSIONS__ "
dnl # XXX: Quiet warnings not covered by the gcc-* patches
dnl # XXX: Remove once all the warnings are resolved
HOSTCFLAGS="$HOSTCFLAGS -Wno-switch -Wno-unused -Wno-missing-braces "
HOSTCFLAGS="$HOSTCFLAGS -Wno-parentheses "
HOSTCFLAGS="$HOSTCFLAGS -Wno-uninitialized -fno-strict-aliasing "
dnl # Expected defines not covered by zfs_config.h or spl_config.h
HOSTCFLAGS="$HOSTCFLAGS -DHAVE_SPL -D_POSIX_PTHREAD_SEMANTICS "
HOSTCFLAGS="$HOSTCFLAGS -D_FILE_OFFSET_BITS=64 "
HOSTCFLAGS="$HOSTCFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT "
HOSTCFLAGS="$HOSTCFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\" "
dnl # Expected default include path
HOSTCFLAGS="$HOSTCFLAGS -I$TOPDIR "
if test "$kernelbuild" != "$kernelsrc"; then
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$kernelbuild"
fi
AC_SUBST(KERNELMAKE_PARAMS)
AC_SUBST(KERNELCPPFLAGS)
AC_SUBST(HOSTCFLAGS)
dnl # XXX: I really, really hate this... but to ensure the kernel
dnl # build system compiles C files shared between a library and a
dnl # kernel module, we need to ensure each file has a unique make
dnl # target. To do that I'm creating symlinks for each shared
dnl # file at configure time. It may be possible something better
dnl # can be done in the Makefile but it will take some serious
dnl # investigation and I don't have the time now.
echo "Creating symlinks for additional make targets"
ln -f -s $LIBDIR/libport/u8_textprep.c $LIBDIR/libport/ku8_textprep.c
ln -f -s $LIBDIR/libavl/avl.c $LIBDIR/libavl/kavl.c
ln -f -s $LIBDIR/libavl/avl.c $LIBDIR/libavl/uavl.c
ln -f -s $LIBDIR/libnvpair/nvpair.c $LIBDIR/libnvpair/knvpair.c
ln -f -s $LIBDIR/libnvpair/nvpair.c $LIBDIR/libnvpair/unvpair.c
ln -f -s $LIBDIR/libzcommon/zfs_deleg.c $LIBDIR/libzcommon/kzfs_deleg.c
ln -f -s $LIBDIR/libzcommon/zfs_prop.c $LIBDIR/libzcommon/kzfs_prop.c
ln -f -s $LIBDIR/libzcommon/zprop_common.c $LIBDIR/libzcommon/kzprop_common.c
ln -f -s $LIBDIR/libzcommon/compress.c $LIBDIR/libzcommon/kcompress.c
ln -f -s $LIBDIR/libzcommon/list.c $LIBDIR/libzcommon/klist.c
ln -f -s $LIBDIR/libzcommon/zfs_namecheck.c $LIBDIR/libzcommon/kzfs_namecheck.c
ln -f -s $LIBDIR/libzcommon/zfs_comutil.c $LIBDIR/libzcommon/kzfs_comutil.c
ln -f -s $LIBDIR/libzcommon/zpool_prop.c $LIBDIR/libzcommon/kzpool_prop.c
]
)

View File

@ -1,18 +1,5 @@
AC_DEFUN([ZFS_AC_CONFIG], [
AC_ARG_WITH([zfs-config],
AS_HELP_STRING([--with-config=CONFIG],
[Config file 'kernel|user|lustre']),
[zfsconfig="$withval"])
AC_MSG_CHECKING([zfs config file])
if test -z "$zfsconfig" || test ! -r config/$zfsconfig; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([
*** Please specify one of the valid config files located
*** in ./config/ with the '--with-zfs-config=CONFIG' option])
fi
TOPDIR=`/bin/pwd`
BUILDDIR=$ZFS_META_NAME #+$zfsconfig
ZFSDIR=$TOPDIR/$BUILDDIR
@ -28,12 +15,24 @@ AC_DEFUN([ZFS_AC_CONFIG], [
AC_SUBST(CMDDIR)
AC_SUBST(UNAME)
AC_MSG_RESULT([$zfsconfig]);
. ./config/$zfsconfig
AC_ARG_WITH([zfs-config],
AS_HELP_STRING([--with-config=CONFIG],
[Config file 'kernel|user|lustre']),
[zfsconfig="$withval"])
AC_SUBST(KERNELMAKE_PARAMS)
AC_SUBST(KERNELCPPFLAGS)
AC_SUBST(HOSTCFLAGS)
AC_MSG_CHECKING([zfs config file])
[ case "$zfsconfig" in
kernel) ZFS_AC_KERNEL_CONFIG ;;
user) ZFS_AC_USER_CONFIG ;;
lustre) ZFS_AC_LUSTRE_CONFIG ;;
*)
AC_MSG_RESULT([Error!])
AC_MSG_ERROR([Bad value "$zfsconfig" for --with-config,
user kernel|user|lustre]) ;;
esac ]
AC_MSG_RESULT([$zfsconfig]);
])
AC_DEFUN([ZFS_AC_KERNEL], [