]> granicus.if.org Git - zfs/commitdiff
Accept kernel source dir(s) specified by ./configure
authorTurbo Fredriksson <turbo@bayour.com>
Sat, 16 Nov 2013 03:29:53 +0000 (03:29 +0000)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 5 Jun 2014 20:46:49 +0000 (13:46 -0700)
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 <turbo@bayour.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1874

config/zfs-build.m4
rpm/generic/zfs-kmod.spec.in

index 477b916786b878bd955469afe724f0b4a6bdf138..96a8ec53c5e1039c5a52721754994ca871ce2c6c 100644 (file)
@@ -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"'
index 4eb25e02b9f18425fd03bfcbba9f71249c3fe7fd..0284f6a7fa63d78ed05af531ed5985b5d491cc27 100644 (file)
@@ -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} \