diff options
author | Mathieu Bridon <bochecha@fedoraproject.org> | 2011-09-12 16:03:23 +0800 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2011-09-15 09:02:33 +0200 |
commit | 70fdf030545f00888bcebb5fca8243a6dccca95b (patch) | |
tree | a48e2716399c54a8de886f5c94794e662ab9d844 | |
parent | 2d3816a1be59640eb4be7d58771b24bc72de04cd (diff) |
Optionally disable building the kernel module.
Distributors (like Fedora) might be interested in including the ipset
tools and libs, but they often don't want to build and ship external
kernel modules, especially if those modules are already included in
their kernel packages.
This patch introduces a new --with-kmod configure option that can be
used to conditionally build the kernel module. The module is still built
by default, to preserve compatibility.
A user who wants to build only the user-space part of ipset can do so by
running the following:
$ ./autogen.sh
$ configure --with-kmod=no
$ make
# make install
Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
-rw-r--r-- | Makefile.am | 16 | ||||
-rw-r--r-- | configure.ac | 11 |
2 files changed, 27 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index 3d46213..09ba4d9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,21 +23,37 @@ endif SUBDIRS = lib src modules_sparse: +if WITH_KMOD ${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter \ V=$V C=2 CF=-D__CHECK_ENDIAN__ \ IP_SET_MAX=$(IP_SET_MAX) KDIR=$$PWD/kernel modules +else + @echo Skipping kernel modules due to --with-kmod=no +endif modules: +if WITH_KMOD ${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter V=$V \ IP_SET_MAX=$(IP_SET_MAX) KDIR=$$PWD/kernel modules +else + @echo Skipping kernel modules due to --with-kmod=no +endif modules_install: +if WITH_KMOD ${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter \ KDIR=$$PWD/kernel modules_install +else + @echo Skipping kernel modules due to --with-kmod=no +endif modules_clean: +if WITH_KMOD ${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter \ KDIR=$$PWD/kernel clean +else + @echo Skipping kernel modules due to --with-kmod=no +endif update_includes: ./update ip_set.h diff --git a/configure.ac b/configure.ac index 1481d18..9ad8bed 100644 --- a/configure.ac +++ b/configure.ac @@ -11,6 +11,14 @@ case "$host" in *) AC_MSG_ERROR([Linux systems supported exclusively!]);; esac +dnl Optionnally disable building the kernel module +AC_ARG_WITH([kmod], + AS_HELP_STRING([--with-kmod=yes/no], + [Build the kernel module (default: yes)]), + [BUILDKMOD="$withval";], + [BUILDKMOD="yes";]) +AM_CONDITIONAL(WITH_KMOD, test "$BUILDKMOD" == "yes") + dnl Additional arguments dnl Kernel build directory or source tree AC_ARG_WITH([kbuild], @@ -24,6 +32,8 @@ AC_ARG_WITH([ksource], AM_CONDITIONAL(WITH_KBUILDDIR, test "$KBUILDDIR" != "") AC_SUBST(KBUILDDIR) +if test "$BUILDKMOD" == "yes" +then dnl Sigh: check kernel version dependencies if test "$KBUILDDIR" != "" then @@ -55,6 +65,7 @@ if test "X`$GREP 'NFNL_SUBSYS_IPSET' $ksourcedir/include/linux/netfilter/nfnetli then AC_MSG_ERROR([The kernel source directory $ksourcedir is not patched with netlink.patch to support ipset]) fi +fi dnl Maximal number of sets supported by the kernel, default 256 AC_ARG_WITH([maxsets], |