aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTurbo Fredriksson <[email protected]>2013-11-16 03:29:53 +0000
committerBrian Behlendorf <[email protected]>2014-06-05 13:46:49 -0700
commit69c7bdb6e70644bb2efebcee4bf109ace08eb0be (patch)
tree86f8fac21f17a87bf382282c2cadc0b6a6321f1b
parent8b974ba036972d601542deec08d68a422a70c9f6 (diff)
Accept kernel source dir(s) specified by ./configure
This adds ability to set the location of the kernel via defines when building from the spec files. This is useful when building against a kernel installed in a non-standard location. Signed-off-by: Turbo Fredriksson <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #1874
-rw-r--r--config/zfs-build.m42
-rw-r--r--rpm/generic/zfs-kmod.spec.in43
2 files changed, 32 insertions, 13 deletions
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 477b91678..96a8ec53c 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -141,7 +141,7 @@ AC_DEFUN([ZFS_AC_RPM], [
RPM_DEFINE_COMMON='--define "$(DEBUG_ZFS) 1" --define "$(DEBUG_DMU_TX) 1"'
RPM_DEFINE_UTIL=
- RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)"'
+ RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)" --define "require_spldir $(SPL)" --define "require_splobj $(SPL_OBJ)" --define "ksrc $(LINUX)" --define "kobj $(LINUX_OBJ)"'
RPM_DEFINE_DKMS=
SRPM_DEFINE_COMMON='--define "build_src_rpm 1"'
diff --git a/rpm/generic/zfs-kmod.spec.in b/rpm/generic/zfs-kmod.spec.in
index 4eb25e02b..0284f6a7f 100644
--- a/rpm/generic/zfs-kmod.spec.in
+++ b/rpm/generic/zfs-kmod.spec.in
@@ -1,4 +1,33 @@
%define module @PACKAGE@
+
+%if !%{defined ksrc}
+%if 0%{?rhel}%{?fedora}
+%define ksrc ${kernel_version##*___}
+%else
+%define ksrc "$( \
+ if [ -e "/usr/src/linux-${kernel_version%%___*}" ]; then \
+ echo "/usr/src/linux-${kernel_version%%___*}"; \
+ elif [ -e "/lib/modules/${kernel_version%%___*}/source" ]; then \
+ echo "/lib/modules/${kernel_version%%___*}/source"; \
+ else \
+ echo "/lib/modules/${kernel_version%%___*}/build"; \
+ fi)"
+%endif
+%endif
+
+%if !%{defined kobj}
+%if 0%{?rhel}%{?fedora}
+%define kobj ${kernel_version##*___}
+%else
+%define kobj "$( \
+ if [ -e "/usr/src/linux-${kernel_version%%___*}" ]; then \
+ echo "/usr/src/linux-${kernel_version%%___*}"; \
+ else \
+ echo "/lib/modules/${kernel_version%%___*}/build"; \
+ fi)"
+%endif
+%endif
+
#define repo rpmfusion
#define repo chaos
@@ -125,18 +154,8 @@ for kernel_version in %{?kernel_versions}; do
cd _kmod_build_${kernel_version%%___*}
%configure \
--with-config=kernel \
-%if 0%{?rhel}%{?fedora}
- --with-linux="${kernel_version##*___}" \
- --with-linux-obj="${kernel_version##*___}" \
-%else
- --with-linux="$( \
- if [ -e "/lib/modules/${kernel_version%%___*}/source" ]; then \
- echo "/lib/modules/${kernel_version%%___*}/source"; \
- else \
- echo "/lib/modules/${kernel_version%%___*}/build"; \
- fi)" \
- --with-linux-obj="/lib/modules/${kernel_version%%___*}/build" \
-%endif
+ --with-linux=%{ksrc} \
+ --with-linux-obj=%{kobj} \
--with-spl="%{spldir}" \
--with-spl-obj="%{splobj}" \
%{debug} \