--- branches/magellan-next/include/kernel.sminc 2011/12/01 16:32:00 9465 +++ branches/magellan-next/include/kernel.sminc 2011/12/01 16:48:58 9466 @@ -11,6 +11,7 @@ # ${EXTRAVERSION}: optinal, extra version for the kernel name # default setting is ${PSUBVER}-${BRANCH}-${PBUILD} # ${KERNEL_IMAGE_PATH}: override the default KERNEL_IMAGE_PATH (to build xen images for e.g.) +# ${COMPRESS_MODULES}: compresses the kernel modules with given compressor (gzip|bzip2|xz) sminclude mtools @@ -31,6 +32,32 @@ >= sys-kernel/linux-firmware-${LINUX_FIRMWARE}" fi +if [[ ! -z ${COMPRESS_MODULES} ]] +then + case ${COMPRESS_MODULES} in + gzip) + COMPRESS_MODULES_CMD="gzip -9v" + SDEPEND="${SDEPEND} + >= app-arch/gzip-1.4" + ;; + bzip2) + COMPRESS_MODULES_CMD="bzip2 -9v" + SDEPEND="${SDEPEND} + >= app-arch/bzip2-1.0.6" + ;; + xz) + COMPRESS_MODULES_CMD="xz -9v" + SDEPEND="${SDEPEND} + >= app-arch/xz-5" + ;; + none) + echo "Disabled compressed kernel-modules!" + COMPRESS_MODULES_CMD="" + ;; + *) die "Unkown compression format '${COMPRESS_MODULES}'" ;; + esac +fi + # some sane defaults : ${PCATEGORIE="sys-kernel"} : ${HOMEPAGE="http://magellan-linux.de/"} @@ -235,6 +262,22 @@ /lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source \ || die fi + + # remove firmware bits if $LINUX_FIRMWARE was set + if [[ ! -z ${LINUX_FIRMWARE} ]] && [[ ${LINUX_FIRMWARE} != internal ]] + then + if [[ -d ${BINDIR}/lib/firmware ]] + then + rm -rv ${BINDIR}/lib/firmware + fi + fi + + # compress modules if COMPRESS_MODULES_CMD was set + if [[ ! -z ${COMPRESS_MODULES_CMD} ]] + then + # compress all kernel modules + find ${BINDIR} -name \*.ko | xargs ${COMPRESS_MODULES_CMD} || die + fi } kernel_headers_src_install() @@ -390,15 +433,6 @@ ln -snf config-${KPVER}-${KBRANCH}-${KPBUILD} ${MROOT}/boot/config [[ -f ${MROOT}/boot/initrd-${KPVER}-${KBRANCH}-${KPBUILD}.img ]] && ln -snf initrd-${KPVER}-${KBRANCH}-${KPBUILD}.img ${MROOT}/boot/initrd - - # remove firmware bits if $LINUX_FIRMWARE was set - if [[ ! -z ${LINUX_FIRMWARE} ]] && [[ ${LINUX_FIRMWARE} != internal ]] - then - if [[ -d ${BINDIR}/lib/firmware ]] - then - rm -rv ${BINDIR}/lib/firmware - fi - fi } kernel_sources_postinstall()