#URL: -
%if %{with kernel}
%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.14}
-BuildRequires: rpmbuild(macros) >= 1.308
+BuildRequires: rpmbuild(macros) >= 1.329
%endif
#BuildRequires: -
#Requires(postun): -
%endif
%if %{with kernel}
-# kernel module(s)
-for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
- if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
- exit 1
- fi
- install -d o/include/linux
- ln -sf %{_kernelsrcdir}/config-$cfg o/.config
- ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
- ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
-%if %{with dist_kernel}
- %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts
-%else
- install -d o/include/config
- touch o/include/config/MARKER
- ln -sf %{_kernelsrcdir}/scripts o/scripts
-%endif
-#
-# patching/creating makefile(s) (optional)
-#
- %{__make} -C %{_kernelsrcdir} clean \
- RCS_FIND_IGNORE="-name '*.ko' -o" \
- SYSSRC=%{_kernelsrcdir} \
- SYSOUT=$PWD/o \
- M=$PWD O=$PWD/o \
- %{?with_verbose:V=1}
- %{__make} -C %{_kernelsrcdir} modules \
- CC="%{__cc}" CPP="%{__cpp}" \
- SYSSRC=%{_kernelsrcdir} \
- SYSOUT=$PWD/o \
- M=$PWD O=$PWD/o \
- %{?with_verbose:V=1}
-
- mv MODULE_NAME{,-$cfg}.ko
-done
+%build_kernel_modules -m MODULE_NAME
+
+# modules placed in subdirectory:
+%build_kernel_modules -C path/to/dir -m MODULE_NAME,MODULE2
+
+# need to pass additional options to make modules:
+%build_kernel_modules VAR1=value1 VAR2=value2 -m MODULE_NAME
+
+# optional patching:
+%build_kernel_modules -m MODULE_NAME <<'EOF'
+# Your script here:
+if grep -q "CONFIG_SOME_OPTION" o/.config; then
+ sed 's/some/change/' file.c.orig > file.c
+else
+ cat fuke.c.orig > file.c
+fi
+# Don't do it this way unless it depends on kernel options or something
+# you can't check before
+EOF
+
%endif
%install
%endif
%if %{with kernel}
-install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/MODULE_DIR
-install MODULE_NAME-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/MODULE_DIR/MODULE_NAME.ko
-%if %{with smp} && %{with dist_kernel}
-install MODULE_NAME-smp.ko \
- $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/MODULE_DIR/MODULE_NAME.ko
-%endif
+%install_kernel_modules -m MODULE_NAME -d MODULE_DIR
+
+# to avoid conflict with in-kernel modules, and prepare modprobe config:
+%install_kernel_modules -s current -n NAME -m MODULE_NAME -d MODULE_DIR
%endif
%clean