FreeCalypso > hg > fc-selenite
view scripts/mk-component-gcc.sh @ 134:7d50d8d13711
FFS code sync with Magnetite + gcc version fix
This change brings the new flash autodetection for FC and Pirelli targets
from Magnetite, and should also fix the gcc version for C1xx and gtamodem
targets, which were previously broken because they used TI's original
flash autodetect code (which operates at address 0) while the boot ROM
is mapped there.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Dec 2018 08:43:25 +0000 |
parents | 19f5e7133949 |
children | 2106617f1291 |
line wrap: on
line source
#!/bin/sh if [ $# != 1 ] then echo "usage: $0 component-lib" 1>&2 exit 1 fi LIBNAME="$1" recipe_file="components/$1" if [ ! -f "$recipe_file" ] then echo "Error: $recipe_file not found" 1>&2 exit 1 fi if [ -z "$BUILD_DIR" ] then echo "Error: BUILD_DIR= must be passed via environment" 1>&2 exit 1 fi set -e mkdir -p $BUILD_DIR/$LIBNAME # beginning of the Makefile echo "all: $LIBNAME.a" > $BUILD_DIR/$LIBNAME/Makefile echo >> $BUILD_DIR/$LIBNAME/Makefile # shell functions to be used in the recipes make_version() { case $# in 1) echo "$1_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile echo " ../../scripts/make-version.sh $1 > $1_version.c" \ >> $BUILD_DIR/$LIBNAME/Makefile ;; 2) echo "$2_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile echo " ../../scripts/make-version.sh $1 > $2_version.c" \ >> $BUILD_DIR/$LIBNAME/Makefile ;; *) echo "Error: make_version takes 1 or 2 arguments" 1>&2 exit 1 ;; esac echo >> $BUILD_DIR/$LIBNAME/Makefile } asm_file() { if [ $# != 1 ] then echo "Error: asm_file takes 1 argument" 1>&2 exit 1 fi objname=`basename "$1" .S`.o helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile helpers/makeline cmd arm-elf-gcc -c ${ASMFLAGS} ${CPPFLAGS} "$1" \ >> $BUILD_DIR/$LIBNAME/Makefile echo >> $BUILD_DIR/$LIBNAME/Makefile OBJS="$OBJS $objname" } c_file() { if [ $# != 1 ] then echo "Error: c_file takes 1 argument" 1>&2 exit 1 fi objname=`basename "$1" .c`.o helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile helpers/makeline cmd arm-elf-gcc -c ${CFLAGS_gcc} ${CPPFLAGS} "$1" \ >> $BUILD_DIR/$LIBNAME/Makefile echo >> $BUILD_DIR/$LIBNAME/Makefile OBJS="$OBJS $objname" } # invoke the recipe COMPILER=gcc SRC=../../src OBJS= MMI=0 . "$recipe_file" # finish the Makefile helpers/makeline dep $LIBNAME.a ${OBJS} >> $BUILD_DIR/$LIBNAME/Makefile echo ' arm-elf-ar rcu $@ $^' >> $BUILD_DIR/$LIBNAME/Makefile echo ' arm-elf-ranlib $@' >> $BUILD_DIR/$LIBNAME/Makefile echo >> $BUILD_DIR/$LIBNAME/Makefile echo 'clean:' >> $BUILD_DIR/$LIBNAME/Makefile echo ' rm -f *.[oa] *.c' >> $BUILD_DIR/$LIBNAME/Makefile