FreeCalypso > hg > fc-selenite
view scripts/mk-component-gcc.sh @ 112:fdecfb3bd860
.../drv_app/r2d/r2d_*.c: LCD include case fixes from Magnetite
R2D is not used in Selenite, but we strive to keep the two source trees
in sync as much as possible to reduce the diffs.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 13 Oct 2018 16:56:22 +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