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 + -
显示快捷键?