-install -d kernel-{up,smp}
-
-# UP
-%{__make} clean
-%{__make} -C driver \
- CC=%{__cc} \
-%ifarch %{ix86}
- OPT="-I/usr/src/linux/include/asm-i386/mach-default" \
-%endif
- KERNELSRC="%{_kernelsrcdir}"
-install driver/adiusbadsl.o kernel-up
-
-# SMP
-CONFIG_SMP=y; export CONFIG_SMP
-%{__make} -C driver clean
-%{__make} -C driver \
- CC=%{__cc} \
-%ifarch %{ix86}
- OPT="-I/usr/src/linux/include/asm-i386/mach-default -DSMP -D__SMP__" \
-%else
- OPT="-D__SMP__ -DSMP" \
+%if %{with kernel}
+cd driver
+for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
+ if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
+ exit 1
+ fi
+ rm -rf include
+ install -d include/{config,linux}
+ ln -sf %{_kernelsrcdir}/config-$cfg .config
+ ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
+ ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch} include/asm
+ touch include/config/MARKER
+ %{__make} -C %{_kernelsrcdir} clean \
+ RCS_FIND_IGNORE="-name '*.ko' -o" \
+ M=$PWD O=$PWD \
+ %{?with_verbose:V=1}
+ %{__make} -C %{_kernelsrcdir} modules \
+ M=$PWD O=$PWD \
+ %{?with_verbose:V=1}
+ mv eagle-usb{,-$cfg}.ko
+done
+cd -