108 lines
3.1 KiB
Diff
108 lines
3.1 KiB
Diff
|
From 1051c0992a291d254694c47d316454839f3658ef Mon Sep 17 00:00:00 2001
|
||
|
From: Mathieu Bridon <bochecha@fedoraproject.org>
|
||
|
Date: Mon, 12 Sep 2011 16:03:23 +0800
|
||
|
Subject: [PATCH] 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
|
||
|
---
|
||
|
Makefile.am | 16 ++++++++++++++++
|
||
|
configure.ac | 11 +++++++++++
|
||
|
2 files changed, 27 insertions(+), 0 deletions(-)
|
||
|
|
||
|
diff --git a/Makefile.am b/Makefile.am
|
||
|
index bd6b3a8..fc604d7 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],
|
||
|
--
|
||
|
1.7.4.4
|
||
|
|