# kernel26 global smage functions # $Header: /alx-cvs/smage/include/kernel26.sminc,v 1.4 2006/04/03 20:08:07 niro Exp $ # needed extra vars: # ${KERNEL_TYPE}: needed, 'sources' or 'image' # ${BRANCH}: needed, style branch of the kernel # ${KERNEL_CONFIG}: optional, needed if you want to override the default # searchpath ${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD} # # ${PSUBVER}: optional, only needed for 2.6.x.x naming scheme # ${EXTRAVERSION}: optinal, extra version for the kernel name # default setting is ${PSUBVER}-${BRANCH}-${PBUILD} EXTRAVERSION="${PSUBVER}-${BRANCH}-${PBUILD}" KERNEL_CONFIG="${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD}-${ARCH}" kernel26_src_prepare() { munpack ${SRCFILE} || die mv ${BUILDDIR}/linux-${PVER/${PSUBVER}/} ${SRCDIR} || die # fix permissions chown -R 0:0 ${SRCDIR} || die chmod -R a+r-w+X,u+w ${SRCDIR} || die cd ${SRCDIR} # fixes INSTALL_PATH to /boot and EXTRAVERSION sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' \ -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die } kernel26_src_compile() { cd ${SRCDIR} make mrproper || die # inject our kernel config cp ${KERNEL_CONFIG} ${SRCDIR}/.config || die make oldconfig || die case ${KERNEL_TYPE} in image) mmake || die ;; sources) make clean || die # needed to compile other programs like iptables make prepare || die # needed to cover >=2.6.14 builds make prepare-all || die make scripts || die # at least alsa-drivers needs this one ... touch include/linux/autoconf.h || die ;; esac } kernel26_image_src_install() { cd ${SRCDIR} # needed directories install -d ${BINDIR}/boot || die # install modules make INSTALL_MOD_PATH=${BINDIR} modules_install || die # install kernelimage local my_arch="${ARCH}" [[ ${my_arch} = i*86 ]] && my_arch=i386 install -m 0644 -o root -g root \ arch/${my_arch}/boot/bzImage \ ${BINDIR}/boot/kernel-${PVER}-${BRANCH}-${PBUILD} \ || die # install System.map install -m 0644 -o root -g root \ System.map \ ${BINDIR}/boot/System.map-${PVER}-${BRANCH}-${PBUILD} \ || die # install kernel description echo " KRNVER=${BRANCH}-${PVER}-${ARCH}-${PBUILD} KRNLIB=${PVER}-${BRANCH}-${PBUILD} KRNIMG=kernel-${PVER}-${BRANCH}-${PBUILD} KRNINITRD= " > ${BINDIR}/boot/kernelversion || die # install kernel-config from srcdir install -m 0644 -o root -g root \ .config \ ${BINDIR}/boot/config-${PVER}-${BRANCH}-${PBUILD} \ || die # fix build symlink if [ -L ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/build ] then echo "fixing build symlink" rm ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/build || die ln -snf /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \ ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/build \ || die fi # and fixing source symlink if [ -L ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/source ] then echo "fixing source symlink" rm ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/source || die ln -snf /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \ ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}/source \ || die fi } kernel26_sources_src_install() { cd ${BUILDDIR} echo "Creating linux-${PVER}-${BRANCH}-${PBUILD} sources tarball ... " tar cvjf ${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 $(basename ${SRCDIR}) || die echo "Moving linux-${PVER}-${BRANCH}-${PBUILD} tarball to \${BINDIR}/usr/src ... " install -d ${BINDIR}/usr/src || die mv ${BUILDDIR}/linux-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 ${BINDIR}/usr/src || die } # installs module-sources path/to/SRCDIR to MODDIR/MODNAME # kernel26_external_modules_install path/to/SRCDIR DESTDIRNAME kernel26_external_modules_install() { cd ${BUILDDIR} local modsrc="$1" local moddest="$2" local moddir="${BUILDDIR}/kernel-modules-${PVER}-${BRANCH}-${PBUILD}" echo "Installing ${modsrc} to ${moddir}/${moddest} ..." install -d ${moddir} || die mv ${modsrc} ${moddir}/${moddest} || die } kernel26_external_modules_tarball() { cd ${BUILDDIR} echo "Creating kernel-modules-${PVER}-${BRANCH}-${PBUILD} sources tarball ... " tar cvjf ${BUILDDIR}/kernel-modules-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 \ kernel-modules-${PVER}-${BRANCH}-${PBUILD} || die echo "Moving kernel-modules-${PVER}-${BRANCH}-${PBUILD} tarball to \${BINDIR}/usr/src ... " install -d ${BINDIR}/usr/src || die mv ${BUILDDIR}/kernel-modules-${PVER}-${BRANCH}-${PBUILD}.tar.bz2 ${BINDIR}/usr/src || die } kernel26_src_install() { case ${KERNEL_TYPE} in image) kernel26_image_src_install || die ;; sources) kernel26_sources_src_install || die ;; esac } kernel_major_version() { local ksrc="$@" local kv if [[ -z ${ksrc} ]] then kv="$(uname -r|cut -d. -f1-2)" else local version local patchlevel # get version from makefile version=$(grep "^VERSION[[:space:]]*=[[:space:]]*[[:digit:]]" ${ksrc}/Makefile | sed "s/^.*=[[:space:]]*\([[:digit:]]\+\)/\1/g") # get patchlevel from makefile patchlevel=$(grep "^PATCHLEVEL[[:space:]]*=[[:space:]]*[[:digit:]]" ${ksrc}/Makefile | sed "s/^.*=[[:space:]]*\([[:digit:]]\+\)/\1/g") # kernelversion kv="${version}.${patchlevel}" fi echo "${kv}" } mod_suffix() { local ksrc="$@" local mod_suffix if [[ $(kernel_major_version ${ksrc}) = 2.6 ]] then mod_suffix="ko" else mod_suffix="o" fi echo ${mod_suffix} } export_inherits kernel26 src_prepare src_compile src_install