kernel-common.tmpl

来自「coldfire MCF5445X基于unix平台的BSP」· TMPL 代码 · 共 237 行

TMPL
237
字号
%Buildif [ -n "%{buildsubdir}" ]then    rm -f $RPM_BUILD_DIR/linux    ln -s %{buildsubdir} $RPM_BUILD_DIR/linuxfiKSRC_DIR=${PKG_KERNEL_PATH_PRECONFIG:-%{_builddir}/%{buildsubdir}}: ${LINTARCH:?must be set to the kernel architecture name}: ${BUILDCC:?must be set to the token for your build machines compiler}: ${PKG_KERNEL_PRECONFIG:?must be set to the name of your .config file}: ${PLATFORM_PATH:?must be set to your ltib platform path}: ${KSRC_DIR:?cannot find source directory (PKG_KERNEL_PATH_PRECONFIG)}cd $KSRC_DIRKBOUT="$(eval echo $PKG_KERNEL_KBUILD_PRECONFIG)"KBOUT=${KBOUT:-"."}if [ "$KBOUT" != '.' ]then    export KBUILD_OUTPUT="$KBOUT"fitest -d $KBOUT || mkdir -p $KBOUTcase $LINTARCH in    m68k*)        KTARG=vmlinux        ;;    ppc*)        KTARG=uImage        ;;    powerpc*)        KTARG=uImage        ;;    *)        KTARG=zImage        ;;esacSYSCFG_KTARG=${SYSCFG_KTARG:-$KTARG}## This section makes sure there is a .config in the kernel build directory#for CFG in "$PLATFORM_PATH/${PKG_KERNEL_PRECONFIG}.dev" "$PLATFORM_PATH/$PKG_KERNEL_PRECONFIG" "$KSRC_DIR/arch/$GNUTARCH/configs/$PKG_KERNEL_PRECONFIG" "$KSRC_DIR/arch/$LINTARCH/configs/$PKG_KERNEL_PRECONFIG" notfounddo   if [ -f $CFG ]   then       cp -f $CFG $KBOUT/.config       break   fidoneif [ ! -f $KBOUT/.config ]then   echo "Cannot find a config file for the kernel"   exit 1fiif grep -q 'CONFIG_PPC_MERGE=y' $KBOUT/.configthen    LINTARCH=powerpcfi## Check for ltib full rebuilds (e.g. change of toolchain) if so# force a build from scratch#if [ -n "$LTIB_FULL_REBUILD" ]then    mv $KBOUT/.config $KBOUT/config.tmp    make ARCH=$LINTARCH CROSS_COMPILE= HOSTCC="$BUILDCC" mrproper    mv $KBOUT/config.tmp $KBOUT/.configfi## configure #if [ -n "$PKG_KERNEL_WANT_CF" -o -n "$SCB_WANT_CF" ]then    make ARCH=$LINTARCH CROSS_COMPILE= HOSTCC="$BUILDCC" menuconfig else    yes "" | make ARCH=$LINTARCH CROSS_COMPILE= HOSTCC="$BUILDCC" oldconfigficp -f $KBOUT/.config $PLATFORM_PATH/${PKG_KERNEL_PRECONFIG}.dev# The first time conf builds, a spurious .config gets made in # the source directory, this gets rid of it otherwise the kernel# will not build complaining that the source tree is not cleanif [ "$KBOUT" != '.' ]then    rm -f .configfi## Make dep only needs to be done for 2.4 kernels#if [ "%{kernel_series}" = "2.4" ]then    make ARCH=$LINTARCH CROSS_COMPILE= HOSTCC="${BUILDCC}" depfi## build the kernel and optionally the modules#make ARCH=$LINTARCH CROSS_COMPILE= HOSTCC="$BUILDCC" $SYSCFG_KTARGif grep -q '^CONFIG_MODULES=' $KBOUT/.configthen    make ARCH=$LINTARCH CROSS_COMPILE= HOSTCC="$BUILDCC" modulesfi%InstallKSRC_DIR=${PKG_KERNEL_PATH_PRECONFIG:-%{_builddir}/%{buildsubdir}}cd $KSRC_DIRKSRC_DIR="`pwd`"KBOUT="$(eval echo $PKG_KERNEL_KBUILD_PRECONFIG)"KBOUT=${KBOUT:-"."}if [ "$KBOUT" != '.' ]then    export KBUILD_OUTPUT="$KBOUT"fiif grep -q 'CONFIG_PPC_MERGE=y' $KBOUT/.configthen    LINTARCH=powerpcficase $LINTARCH in    m68k*)        BOOT_KERNEL=vmlinux        ;;    ppc)        BOOT_KERNEL=arch/$LINTARCH/boot/images/uImage        ;;    powerpc)        BOOT_KERNEL=arch/$LINTARCH/boot/uImage        ;;    *)        BOOT_KERNEL=arch/$LINTARCH/boot/zImage        ;;esacrm -rf $RPM_BUILD_ROOTmkdir -p $RPM_BUILD_ROOT/%{pfx}/bootcd $KBOUTSYSCFG_BOOT_KERNEL=${SYSCFG_BOOT_KERNEL:-$BOOT_KERNEL}if [ -n "$PKG_KERNEL_WANT_OBJCOPY" ]then    objcopy -O binary $SYSCFG_BOOT_KERNEL ${SYSCFG_BOOT_KERNEL}.bin    SYSCFG_BOOT_KERNEL=${SYSCFG_BOOT_KERNEL}.binfifor i in vmlinux System.map $SYSCFG_BOOT_KERNELdo    cp $i $RPM_BUILD_ROOT/%{pfx}/boot/done# JKM - hack to create m68k uImage -- fix by adding uImage# target to the guts of the asm/m68k/Makefile bitsif [ "$LINTARCH" = "m68k" ]then     mkimage -A m68k -O linux -T kernel -C none -a 0x40020000 -e 0x40020000 -n "Linux Kernel Image" -d $RPM_BUILD_ROOT/%{pfx}/boot/vmlinux.bin $RPM_BUILD_ROOT/%{pfx}/boot/uImage     SYSCFG_BOOT_KERNEL=$RPM_BUILD_ROOT/%{pfx}/boot/uImagefiln -s `basename $SYSCFG_BOOT_KERNEL` $RPM_BUILD_ROOT/%{pfx}/boot/bootable_kernelcp .config $RPM_BUILD_ROOT/%{pfx}/boot/linux.configif grep -q '^CONFIG_MODULES=' .configthen    make ARCH=$LINTARCH CROSS_COMPILE= HOSTCC="$BUILDCC" DEPMOD=/bin/true INSTALL_MOD_PATH=$RPM_BUILD_ROOT/%{pfx} modules_install    KERNEL_VER=`ls $RPM_BUILD_ROOT/%{pfx}/lib/modules`    for i in build source    do        rm -f $RPM_BUILD_ROOT/%{pfx}/lib/modules/$KERNEL_VER/$i        ln -s /usr/src/linux $RPM_BUILD_ROOT/%{pfx}/lib/modules/$KERNEL_VER/$i    donefi# handle the Flat Device Tree buildDTC_PATH=arch/$LINTARCH/boot/dtsif [ "$LINTARCH" = "powerpc" -a -d "$KSRC_DIR/$DTC_PATH" ]then   if [ -z $SYSCFG_DTC_NAME ]   then      SYSCFG_DTC_NAME=%dtc_name   fi   for PER_SYSCFG_DTC_NAME in $SYSCFG_DTC_NAME; do      DTC_NAME=${PER_SYSCFG_DTC_NAME:-$PLATFORM}      DTC_LOAD_ADDR=${SYSCFG_DTU_LOAD_ADDR:-0x300000}      if [ "%dtc_name" != "%%dtc_name" ]      then          DTC_NAME=%dtc_name      fi      cd $KSRC_DIR/$DTC_PATH      dtc -f -I dts -O dtb -R 8 -S 0x3000 ${DTC_NAME}.dts > $RPM_BUILD_ROOT/%{pfx}/boot/${DTC_NAME}.dtb      cd -      if [ -f "$RPM_BUILD_ROOT/%{pfx}/boot/uImage" ]      then          mkimage -A ppc -O Linux -T flat_dt -C none -a $DTC_LOAD_ADDR -e 0 -d $RPM_BUILD_ROOT/%{pfx}/boot/${DTC_NAME}.dtb $RPM_BUILD_ROOT/%{pfx}/boot/${DTC_NAME}.dtu      fi   donefiif [ -n "$PKG_KERNEL_WANT_HEADERS" ]then    mkdir -p $RPM_BUILD_ROOT/%{pfx}/usr/src/linux/include    for i in asm-${LINTARCH} asm-generic config linux math-emu media mtd net pcmcia rxrpc scsi sound video    do        if [ -d $KSRC_DIR/include/$i ]        then            cp -a $KSRC_DIR/include/$i $RPM_BUILD_ROOT/%{pfx}/usr/src/linux/include/        fi    done    for i in asm config linux    do        if [ -d $KBOUT/include/$i ]        then            cp -a $KBOUT/include/$i $RPM_BUILD_ROOT/%{pfx}/usr/src/linux/include/        fi    done    if [ "${LINTARCH}" = "arm" ]    then        mkdir -p $RPM_BUILD_ROOT/%{pfx}/usr/src/linux/include/asm/arch        cp -a $KBOUT/include/asm/arch/* $RPM_BUILD_ROOT/%{pfx}/usr/src/linux/include/asm/arch/    fifi%Cleanrm -rf $RPM_BUILD_ROOTif [ -z "$PKG_KERNEL_LEAVESRC" ]then    rm -f $RPM_BUILD_DIR/linuxfi%Files%defattr(-,root,root)%{pfx}/*

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?