#!/bin/sh # # Kernel building helper script (C)2008 Openmoko, Inc # Andy Green # # Licensed under GPLv3 or later # # set -x export CROSS_COMPILE=/usr/local/openmoko/arm/bin/arm-angstrom-linux-gnueabi- make ARCH=arm silentoldconfig # # figure out what we are building # PRODUCT= if [ ! -z "`grep CONFIG_MACH_NEO1973_GTA01=y .config`" ] ; then START=30008000 PRODUCT=GTA01 fi if [ ! -z "`grep CONFIG_MACH_NEO1973_GTA02=y .config`" ] ; then START=30008000 PRODUCT=GTA02 fi if [ ! -z "`grep CONFIG_MACH_OPENMOKO_GTA03=y .config`" ] ; then START=50008000 PRODUCT=GTA03 fi if [ ! -z "`grep CONFIG_MACH_M800=y .config`" ] ; then START=30008000 PRODUCT=M800 fi if [ -z "$PRODUCT" ] ; then echo "Unable to figure out what we are building from the config" exit 1 fi # # get the branch and head hash for the version we are building to # allow source tracability # VERSION= if [ -d .git ] ; then HEAD=`git show --pretty=oneline | head -n1 | cut -d' ' -f1 | cut -b1-16` BRANCH=`git branch | grep ^\* | cut -d' ' -f2 | sed s/-hist//g` VERSION=-$PRODUCT\_$BRANCH\_$HEAD fi echo $MKIMAGECMD # # actually make it # if make -j5 ARCH=arm CONFIG_DEBUG_SECTION_MISMATCH=y EXTRAVERSION=$VERSION; then # # if the build is happy, postprocess it by strip and with U-Boot header wrapper # you can get mkimage from U-Boot or Qi build # ${CROSS_COMPILE}objcopy -O binary -R .note -R .comment -S arch/arm/boot/compressed/vmlinux linux.bin mkimage -A arm -O linux -T kernel -C none -a $START -e $START -n "OM $PRODUCT $BRANCH""_$HEAD" -d linux.bin uImage-$PRODUCT.bin # we can see if it is an "moredrivers" build by looking for USB Eth gadget # if it is then keep a stamped copy of last build if [ ! -z "`grep CONFIG_USB_USBNET=y .config`" ] ; then rm -f uImage-moredrivers-$PRODUCT*.bin modules-$PRODUCT*.tar.gz cp uImage-$PRODUCT.bin uImage-moredrivers$VERSION.bin rm -rf staging mkdir -p staging if [ ! -z "$1" ] ; then make ARCH=arm modules_install INSTALL_MOD_PATH=staging cd staging tar czf ../modules$VERSION.tar.gz . cd .. fi fi exit 0 else exit 1 fi