-aacraid.ko: .compile_mark ${AACRAIDSRC}
- rm -rf ${AACRAIDDIR}
- mkdir ${AACRAIDDIR}
- cd ${AACRAIDDIR};tar xzf ../${AACRAIDSRC}
- cd ${AACRAIDDIR};rpm2cpio aacraid-${AACRAIDVER}.src.rpm|cpio -i
- cd ${AACRAIDDIR};tar xf aacraid_source.tgz
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- make -C ${TOP}/${KERNEL_SRC} M=${TOP}/${AACRAIDDIR} KSRC=${TOP}/${KERNEL_SRC} modules
- cp ${AACRAIDDIR}/aacraid.ko .
-
-hpsa.ko hpsa: .compile_mark ${HPSASRC}
- rm -rf ${HPSADIR}
- tar xf ${HPSASRC}
-# sed -i ${HPSADIR}/drivers/scsi/hpsa_kernel_compat.h -e 's/^\/\* #define RHEL7.*/#define RHEL7/'
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- make -C ${TOP}/${KERNEL_SRC} M=${TOP}/${HPSADIR}/drivers/scsi KSRC=${TOP}/${KERNEL_SRC} modules
- cp ${HPSADIR}/drivers/scsi/hpsa.ko hpsa.ko
-
-e1000e.ko e1000e: .compile_mark ${E1000ESRC}
- rm -rf ${E1000EDIR}
- tar xf ${E1000ESRC}
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- cd ${E1000EDIR}; patch -p1 < ../intel-module-gcc6-compat.patch
- cd ${E1000EDIR}; patch -p1 < ../e1000e_4.10_compat.patch
- cd ${E1000EDIR}/src; make BUILD_KERNEL=${KVNAME} KSRC=${TOP}/${KERNEL_SRC}
- cp ${E1000EDIR}/src/e1000e.ko e1000e.ko
-
-igb.ko igb: .compile_mark ${IGBSRC}
- rm -rf ${IGBDIR}
- tar xf ${IGBSRC}
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- cd ${IGBDIR}; patch -p1 < ../intel-module-gcc6-compat.patch
- cd ${IGBDIR}; patch -p1 < ../igb_4.9_compat.patch
- cd ${IGBDIR}; patch -p1 < ../igb_4.10_compat.patch
- cd ${IGBDIR}/src; make BUILD_KERNEL=${KVNAME} KSRC=${TOP}/${KERNEL_SRC}
- cp ${IGBDIR}/src/igb.ko igb.ko
-
-ixgbe.ko ixgbe: .compile_mark ${IXGBESRC}
- rm -rf ${IXGBEDIR}
- tar xf ${IXGBESRC}
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- cd ${IXGBEDIR}; patch -p1 < ../ixgbe_4.10_compat.patch
- cd ${IXGBEDIR}/src; make CFLAGS_EXTRA="-DIXGBE_NO_LRO" BUILD_KERNEL=${KVNAME} KSRC=${TOP}/${KERNEL_SRC}
- cp ${IXGBEDIR}/src/ixgbe.ko ixgbe.ko
-
-i40e.ko i40e: .compile_mark ${I40ESRC}
- rm -rf ${I40EDIR}
- tar xf ${I40ESRC}
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- cd ${I40EDIR}/src; make BUILD_KERNEL=${KVNAME} KSRC=${TOP}/${KERNEL_SRC}
- cp ${I40EDIR}/src/i40e.ko i40e.ko
-
-bnx2.ko cnic.ko bnx2x.ko: ${BNX2SRC}
- rm -rf ${BNX2DIR}
- tar xf ${BNX2SRC}
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- cd ${BNX2DIR}; make -C bnx2/src KVER=${KVNAME} KSRC=${TOP}/${KERNEL_SRC}
- cd ${BNX2DIR}; make -C bnx2x/src KVER=${KVNAME} KSRC=${TOP}/${KERNEL_SRC}
- cp `find ${BNX2DIR} -name bnx2.ko -o -name cnic.ko -o -name bnx2x.ko` .
-
-arcmsr.ko: .compile_mark ${ARECASRC}
- rm -rf ${ARECADIR}
- mkdir ${ARECADIR}; cd ${ARECADIR}; unzip ../${ARECASRC}
- [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
- cd ${ARECADIR}; make -C ${TOP}/${KERNEL_SRC} SUBDIRS=${TOP}/${ARECADIR} KSRC=${TOP}/${KERNEL_SRC} modules
- cp ${ARECADIR}/arcmsr.ko arcmsr.ko
-
-${SPL_MODULES}: .compile_mark ${SPLSRC}
- rm -rf ${SPLDIR}
- tar xf ${SPLSRC}
- cd ${SPLDIR}; ./autogen.sh
- cd ${SPLDIR}; ./configure --with-config=kernel --with-linux=${TOP}/${KERNEL_SRC} --with-linux-obj=${TOP}/${KERNEL_SRC}
- cd ${SPLDIR}; make
- cp ${SPLDIR}/module/spl/spl.ko spl.ko
- cp ${SPLDIR}/module/splat/splat.ko splat.ko
-
-${ZFS_MODULES}: .compile_mark ${ZFSSRC}
- rm -rf ${ZFSDIR}
- tar xf ${ZFSSRC}
- cd ${ZFSDIR}; ./autogen.sh
- cd ${ZFSDIR}; ./configure --with-spl=${TOP}/${SPLDIR} --with-spl-obj=${TOP}/${SPLDIR} --with-config=kernel --with-linux=${TOP}/${KERNEL_SRC} --with-linux-obj=${TOP}/${KERNEL_SRC}
- cd ${ZFSDIR}; make
- cp ${ZFSDIR}/module/zfs/zfs.ko zfs.ko
- cp ${ZFSDIR}/module/avl/zavl.ko zavl.ko
- cp ${ZFSDIR}/module/nvpair/znvpair.ko znvpair.ko
- cp ${ZFSDIR}/module/unicode/zunicode.ko zunicode.ko
- cp ${ZFSDIR}/module/zcommon/zcommon.ko zcommon.ko
- cp ${ZFSDIR}/module/zpios/zpios.ko zpios.ko
-
-#.PHONY: update-drbd
-#update-drbd:
-# rm -rf ${DRBDDIR} ${DRBDSRC} drbd-9.0
-# git clone --recursive git://git.drbd.org/drbd-9.0
-# cd drbd-9.0; make tarball
-# mv drbd-9.0/${DRBDSRC} ${DRBDSRC}
-#
-#.PHONY: drbd
-#drbd ${DRBD_MODULES}: .compile_mark ${DRBDSRC}
-# rm -rf ${DRBDDIR}
-# tar xzf ${DRBDSRC}
-# [ ! -e /lib/modules/${KVNAME}/build ] || rm /lib/modules/${KVNAME}/build
-# cd ${DRBDDIR}; make KVER=${KVNAME} KDIR=${TOP}/${KERNEL_SRC}
-# mv ${DRBDDIR}/drbd/drbd.ko drbd.ko
-# mv ${DRBDDIR}/drbd/drbd_transport_tcp.ko drbd_transport_tcp.ko
-
-#iscsi_trgt.ko: .compile_mark ${ISCSITARGETSRC}
-# rm -rf ${ISCSITARGETDIR}
-# tar xf ${ISCSITARGETSRC}
-# cd ${ISCSITARGETDIR}; make KSRC=${TOP}/${KERNEL_SRC}
-# cp ${ISCSITARGETDIR}/kernel/iscsi_trgt.ko iscsi_trgt.ko
-
-headers_tmp := $(CURDIR)/tmp-headers
-headers_dir := $(headers_tmp)/usr/src/linux-headers-${KVNAME}
-
-${HDR_DEB} hdr: .compile_mark headers-control.in headers-postinst.in
- rm -rf $(headers_tmp)
- install -d $(headers_tmp)/DEBIAN $(headers_dir)/include/
- sed -e 's/@KERNEL_VER@/${KERNEL_VER}/' -e 's/@KVNAME@/${KVNAME}/' -e 's/@PKGREL@/${PKGREL}/' <headers-control.in >$(headers_tmp)/DEBIAN/control
- sed -e 's/@@KVNAME@@/${KVNAME}/g' <headers-postinst.in >$(headers_tmp)/DEBIAN/postinst
- chmod 0755 $(headers_tmp)/DEBIAN/postinst
- install -D -m 644 copyright $(headers_tmp)/usr/share/doc/${HDRPACKAGE}/copyright
- install -D -m 644 changelog.Debian $(headers_tmp)/usr/share/doc/${HDRPACKAGE}/changelog.Debian
- echo "git clone git://git.proxmox.com/git/pve-kernel.git\\ngit checkout ${GITVERSION}" > $(headers_tmp)/usr/share/doc/${HDRPACKAGE}/SOURCE
- gzip -n -f --best $(headers_tmp)/usr/share/doc/${HDRPACKAGE}/changelog.Debian
- install -m 0644 ${KERNEL_SRC}/.config $(headers_dir)
- install -m 0644 ${KERNEL_SRC}/Module.symvers $(headers_dir)
- cd ${KERNEL_SRC}; find . -path './debian/*' -prune -o -path './include/*' -prune -o -path './Documentation' -prune \
- -o -path './scripts' -prune -o -type f \
- \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
- -name '*.sh' -o -name '*.pl' \) \
- -print | cpio -pd --preserve-modification-time $(headers_dir)
- cd ${KERNEL_SRC}; cp -a include scripts $(headers_dir)
- cd ${KERNEL_SRC}; (find arch/x86 -name include -type d -print | \
- xargs -n1 -i: find : -type f) | \
- cpio -pd --preserve-modification-time $(headers_dir)
- mkdir -p ${headers_tmp}/lib/modules/${KVNAME}
- ln -sf /usr/src/linux-headers-${KVNAME} ${headers_tmp}/lib/modules/${KVNAME}/build
- dpkg-deb --build $(headers_tmp) ${HDR_DEB}
- #lintian ${HDR_DEB}
+${KERNEL_SRC}.prepared: ${KERNEL_SRC_SUBMODULE} | submodule
+ rm -rf ${BUILD_DIR}/${KERNEL_SRC} $@
+ mkdir -p ${BUILD_DIR}
+ cp -a ${KERNEL_SRC_SUBMODULE} ${BUILD_DIR}/${KERNEL_SRC}
+# TODO: split for archs, track and diff in our repository?
+ cat ${BUILD_DIR}/${KERNEL_SRC}/debian.master/config/config.common.ubuntu ${BUILD_DIR}/${KERNEL_SRC}/debian.master/config/${ARCH}/config.common.${ARCH} ${BUILD_DIR}/${KERNEL_SRC}/debian.master/config/${ARCH}/config.flavour.generic > ${KERNEL_CFG_ORG}
+ cp ${KERNEL_CFG_ORG} ${BUILD_DIR}/${KERNEL_SRC}/.config
+ sed -i ${BUILD_DIR}/${KERNEL_SRC}/Makefile -e 's/^EXTRAVERSION.*$$/EXTRAVERSION=${EXTRAVERSION}/'
+ rm -rf ${BUILD_DIR}/${KERNEL_SRC}/debian ${BUILD_DIR}/${KERNEL_SRC}/debian.master
+ cd ${BUILD_DIR}/${KERNEL_SRC}; for patch in ../../patches/kernel/*.patch; do echo "applying patch '$$patch'" && patch -p1 < $${patch}; done
+ touch $@
+
+${MODULES}.prepared: $(addsuffix .prepared,${MODULE_DIRS})
+ touch $@
+
+${E1000EDIR}.prepared: ${E1000ESRC}
+ rm -rf ${BUILD_DIR}/${MODULES}/${E1000EDIR} $@
+ mkdir -p ${BUILD_DIR}/${MODULES}/${E1000EDIR}
+ tar --strip-components=1 -C ${BUILD_DIR}/${MODULES}/${E1000EDIR} -xf ${E1000ESRC}
+ cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/intel-module-gcc6-compat.patch
+ cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/e1000e/e1000e_4.10_max-mtu.patch
+ cd ${BUILD_DIR}/${MODULES}/${E1000EDIR}; patch -p1 < ../../../patches/intel/e1000e/e1000e_4.15-new-timer.patch
+ touch $@