FreeCalypso > hg > fc-selenite
annotate 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 |
rev | line source |
---|---|
49
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 #!/bin/sh |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 if [ $# != 1 ] |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 then |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 echo "usage: $0 component-lib" 1>&2 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 exit 1 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 fi |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 LIBNAME="$1" |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 recipe_file="components/$1" |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 if [ ! -f "$recipe_file" ] |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 then |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 echo "Error: $recipe_file not found" 1>&2 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 exit 1 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 fi |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 if [ -z "$BUILD_DIR" ] |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 then |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 echo "Error: BUILD_DIR= must be passed via environment" 1>&2 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 exit 1 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 fi |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 set -e |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 mkdir -p $BUILD_DIR/$LIBNAME |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 # beginning of the Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 echo "all: $LIBNAME.a" > $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 echo >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 # shell functions to be used in the recipes |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 make_version() { |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 case $# in |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 1) |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 echo "$1_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 echo " ../../scripts/make-version.sh $1 > $1_version.c" \ |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 ;; |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 2) |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 echo "$2_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 echo " ../../scripts/make-version.sh $1 > $2_version.c" \ |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 ;; |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 *) |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 echo "Error: make_version takes 1 or 2 arguments" 1>&2 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 exit 1 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 ;; |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 esac |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 echo >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 } |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 asm_file() { |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 if [ $# != 1 ] |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 then |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 echo "Error: asm_file takes 1 argument" 1>&2 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 exit 1 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 fi |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 objname=`basename "$1" .S`.o |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 helpers/makeline cmd arm-elf-gcc -c ${ASMFLAGS} ${CPPFLAGS} "$1" \ |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 echo >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 OBJS="$OBJS $objname" |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 } |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 c_file() { |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 if [ $# != 1 ] |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 then |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 echo "Error: c_file takes 1 argument" 1>&2 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 exit 1 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 fi |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 objname=`basename "$1" .c`.o |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 helpers/makeline cmd arm-elf-gcc -c ${CFLAGS_gcc} ${CPPFLAGS} "$1" \ |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 echo >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 OBJS="$OBJS $objname" |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 } |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 # invoke the recipe |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 COMPILER=gcc |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 SRC=../../src |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 OBJS= |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 MMI=0 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 . "$recipe_file" |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 # finish the Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 helpers/makeline dep $LIBNAME.a ${OBJS} >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 echo ' arm-elf-ar rcu $@ $^' >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 echo ' arm-elf-ranlib $@' >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 echo >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 echo 'clean:' >> $BUILD_DIR/$LIBNAME/Makefile |
19f5e7133949
scripts/mk-component-gcc.sh: initial version created
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 echo ' rm -f *.[oa] *.c' >> $BUILD_DIR/$LIBNAME/Makefile |