%{filter_out}
}')
+# rpmldflags with stripped -Wl, -- in the form flags have to be passed to 'ld'
+# but, don't use it, better use gcc as linker
+%ld_rpmldflags %(awk 'BEGIN {
+ split("%{rpmldflags}",F);
+ for (f in F) {
+ s = F[f];
+ if (s ~ /^-Wl,/) {
+ s = substr(s,5);
+ gsub(/,/," ",s);
+ };
+ printf(s FS);
+ };
+}')
+
#-----------------------------------------------------------------
%configure2_13 { \
if [ -n "$LINGUAS" ]; then unset LINGUAS; fi; \
cmake \
}
+# waf. see waf.spec
+# override __waf to add -j1 in your ~/.rpmmacros
+%__waf /usr/bin/waf
+%waf { \
+CC="%{__cc}" \
+CXX="%{__cxx}" \
+CPP="%{__cpp}" \
+CFLAGS="%{rpmcflags}" \
+CXXFLAGS="%{rpmcxxflags}" \
+%{__waf} \
+}
+
#----------------------------------------------------------------
%global configure_cache 0
%configure_cache_file %{buildroot}.configure.cache
# without .ko extension, may be placed in subdirectory
# -C <directory> -- change to <directory> before doing anything
# -p <arg>, -P <arg> -- arguments passeed to make scripts
+# -c -- do not execute make clean
# <additional arguments> -- all additional arguments will be passed to
# make modules
#
# - in last line \ has to touch arguments so arguments passing
# in new lines (using \) will be supported
-%build_kernel_modules(p:P:m:C:) \
+%build_kernel_modules(p:P:m:C:c) \
%{!?-m:%{error:%{0}: Required module name/list missing} exit 1} \
\
%define Opts \\\\\\\
%define MakeOpts HOSTCC="%{__cc}" SYSSRC=%{_kernelsrcdir} SYSOUT=$PWD/o \\\\\\\
O=$PWD/o %{?with_verbose:V=1} %{Opts} \
\
+%{?-C:cd %{-C*}} \
compile() { \
L="<"; [[ '%{*}' != *$L$L* ]] || PATCH_SH="set -x -e;$(cat)" \
set -e -x \
-%{?-C:cd %{-C*}} \
\
for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do \
[ -r "%{_kernelsrcdir}/config-$cfg" ] || exit 1 \
\
+ rm -rf o \
install -d o/include/linux \
ln -sf %{_kernelsrcdir}/config-$cfg o/.config \
ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers \
ln -sf %{_kernelsrcdir}/scripts o/scripts \
%endif \
\
- %{__make} -C %{_kernelsrcdir} clean \\\
+ %{!?-c:%{__make} -C %{_kernelsrcdir} clean \\\
RCS_FIND_IGNORE="-name '*.ko' -o" \\\
- M=$PWD %{MakeOpts} \
+ M=$PWD %{MakeOpts}} \
%{__make} -C %{_kernelsrcdir} modules \\\
${1+"$@"} \\\
M=$PWD %{MakeOpts} \