+%define _kver `echo "%{_kernel_ver}" |awk -F. '{print $2}'`
+
+%if %{with modules}
+install -d kernelsrc
+lndir -silent %{_kernelsrcdir} kernelsrc
+mv kernelsrc/.config kernelsrc/.config.old
+cp kernelsrc/.config.old kernelsrc/.config
+
+%if %{with dist_kernel}
+rm -rf kernelsrc/include/asm
+cd kernelsrc
+patch -R -p1 <../linux/net/Makefile.fs2_%{_kver}.patch
+patch -R -p1 <../linux/net/Config.in.fs2_%{_kver}.patch
+patch -R -p1 <../linux/net/ipv4/af_inet.c.fs2_%{_kver}.patch
+patch -R -p1 <../linux/Documentation/Configure.help.fs2_%{_kver}.patch
+cd ..
+rm -rf kernelsrc/{crypto,include/{freeswan,zlib,crypto},lib/{zlib,libfreeswan},net/ipsec}
+rm kernelsrc/include/{freeswan,pfkey,pfkeyv2}.h
+cp kernelsrc/config-up kernelsrc/.config
+%endif
+
+echo "CONFIG_IPSEC=m" >> kernelsrc/.config
+echo "CONFIG_IPSEC_IPIP=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_AH=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_AUTH_HMAC_MD5=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_AUTH_HMAC_SHA1=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_ESP=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_ENC_3DES=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_IPCOMP=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_DEBUG=y" >> kernelsrc/.config
+%endif
+
+USERCOMPILE="%{rpmcflags}" ; export USERCOMPILE
+OPT_FLAGS="%{rpmcflags}"; export OPT_FLAGS
+CC="%{__cc}"; export CC
+
+
+%if %{with modules}
+%{__make} precheck verset kpatch ocf confcheck module \
+ BIND9STATICLIBDIR=%{_libdir} \
+ FINALCONFDIR=%{_sysconfdir}/ipsec \
+ FINALCONFFILE=%{_sysconfdir}/ipsec/ipsec.conf \
+ INC_USRLOCAL=/usr \
+ INC_MANDIR=share/man \
+ FINALRCDIR=%{_sysconfdir}/rc.d/init.d \
+ FINALLIBEXECDIR=%{_libdir}/ipsec \
+ KERNELSRC="`pwd`/kernelsrc"
+
+install linux/net/ipsec/ipsec.o .
+
+%if %{with smp}
+rm -rf kernelsrc
+install -d kernelsrc
+lndir -silent %{_kernelsrcdir} kernelsrc
+mv kernelsrc/.config kernelsrc/.config.old
+cp kernelsrc/.config.old kernelsrc/.config
+
+%if %{with dist_kernel}
+rm -rf kernelsrc/include/asm
+cd kernelsrc
+patch -R -p1 <../linux/net/Makefile.fs2_%{_kver}.patch
+patch -R -p1 <../linux/net/Config.in.fs2_%{_kver}.patch
+patch -R -p1 <../linux/net/ipv4/af_inet.c.fs2_%{_kver}.patch
+patch -R -p1 <../linux/Documentation/Configure.help.fs2_%{_kver}.patch
+cd ..
+rm -rf kernelsrc/{crypto,include/{freeswan,zlib,crypto},lib/{zlib,libfreeswan},net/ipsec}
+rm kernelsrc/include/{freeswan,pfkey,pfkeyv2}.h
+cp kernelsrc/config-smp kernelsrc/.config
+%endif
+
+echo "CONFIG_IPSEC=m" >> kernelsrc/.config
+echo "CONFIG_IPSEC_IPIP=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_AH=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_AUTH_HMAC_MD5=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_AUTH_HMAC_SHA1=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_ESP=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_ENC_3DES=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_IPCOMP=y" >> kernelsrc/.config
+echo "CONFIG_IPSEC_DEBUG=y" >> kernelsrc/.config
+%{__make} precheck verset kpatch ocf confcheck module \
+ BIND9STATICLIBDIR=%{_libdir} \
+ FINALCONFDIR=%{_sysconfdir}/ipsec \
+ FINALCONFFILE=%{_sysconfdir}/ipsec/ipsec.conf \
+ INC_USRLOCAL=/usr \
+ INC_MANDIR=share/man \
+ FINALRCDIR=%{_sysconfdir}/rc.d/init.d \
+ FINALLIBEXECDIR=%{_libdir}/ipsec \
+ KERNELSRC="`pwd`/kernelsrc"
+%endif
+
+%endif
+
+%{__make} programs \
+ BIND9STATICLIBDIR=%{_libdir} \
+ FINALCONFDIR=%{_sysconfdir}/ipsec \
+ FINALCONFFILE=%{_sysconfdir}/ipsec/ipsec.conf \
+ INC_USRLOCAL=/usr \
+ INC_MANDIR=share/man \
+ FINALRCDIR=%{_sysconfdir}/rc.d/init.d \
+ FINALLIBEXECDIR=%{_libdir}/ipsec \
+ KERNELSRC="`pwd`/kernelsrc"