FreeCalypso > hg > fc-magnetite
annotate scripts/mk-component.sh @ 638:cab2f315827e
FFS dev.c: added Spansion PL032J to the "generic" table
With the discovery of first GTM900 and then Tango, it now appears that
Openmoko was not the only manuf after all who kept TI's TCS211 firmware
largely intact (as opposed to changing it beyond all recognition like
Compal, Chi-Mei and BenQ did), thus we are now getting new "alien" targets
on which we reuse the original manuf's FFS with IMEI and RF calibration
tables as if it were native. On these targets we use the original
device table for FFS, even though we previously thought that it would
never apply to any target other than dsample, leonardo and gtamodem.
We have previously added Samsung K5L33xxCAM (a new kind of multi-ID device)
to the generic table to support its use in Huawei GTM900-B modules; now
we got news that some slightly older GTM900-B specimen used S71PL032J
instead, so we are now adding PL032J as well.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 17:45:48 +0000 |
parents | 0198ac1e1a4f |
children |
rev | line source |
---|---|
10 | 1 #!/bin/sh |
2 | |
3 if [ $# -lt 1 -o $# -gt 2 ] | |
4 then | |
5 echo "usage: $0 component-lib [flavor]" 1>&2 | |
6 exit 1 | |
7 fi | |
8 | |
9 LIBNAME="$1" | |
10 | |
11 if [ -n "$2" ] | |
12 then | |
13 recipe_file="components/$1-$2" | |
14 else | |
15 recipe_file="components/$1" | |
16 fi | |
17 | |
18 if [ ! -f "$recipe_file" ] | |
19 then | |
20 echo "Error: $recipe_file not found" 1>&2 | |
21 exit 1 | |
22 fi | |
23 | |
24 if [ -z "$BUILD_DIR" ] | |
25 then | |
26 echo "Error: BUILD_DIR= must be passed via environment" 1>&2 | |
27 exit 1 | |
28 fi | |
29 | |
30 set -e | |
31 | |
32 mkdir -p $BUILD_DIR/$LIBNAME | |
33 | |
34 # beginning of the Makefile | |
35 echo "all: $LIBNAME.lib" > $BUILD_DIR/$LIBNAME/Makefile | |
36 echo >> $BUILD_DIR/$LIBNAME/Makefile | |
37 | |
38 # shell functions to be used in the recipes | |
39 | |
15
c8bdae60fcb1
changed the generation of *_version.c files to not break on make clean
Mychaela Falconia <falcon@freecalypso.org>
parents:
10
diff
changeset
|
40 make_version() { |
105
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
41 case $# in |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
42 1) |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
43 echo "$1_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
44 echo " ../../scripts/make-version.sh $1 > $1_version.c" \ |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
45 >> $BUILD_DIR/$LIBNAME/Makefile |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
46 ;; |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
47 2) |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
48 echo "$2_version.c:" >> $BUILD_DIR/$LIBNAME/Makefile |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
49 echo " ../../scripts/make-version.sh $1 > $2_version.c" \ |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
50 >> $BUILD_DIR/$LIBNAME/Makefile |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
51 ;; |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
52 *) |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
53 echo "Error: make_version takes 1 or 2 arguments" 1>&2 |
15
c8bdae60fcb1
changed the generation of *_version.c files to not break on make clean
Mychaela Falconia <falcon@freecalypso.org>
parents:
10
diff
changeset
|
54 exit 1 |
105
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
55 ;; |
5e2b0806b098
scripts/mk-component.sh make_version(): allow filename to be different
Mychaela Falconia <falcon@freecalypso.org>
parents:
68
diff
changeset
|
56 esac |
15
c8bdae60fcb1
changed the generation of *_version.c files to not break on make clean
Mychaela Falconia <falcon@freecalypso.org>
parents:
10
diff
changeset
|
57 echo >> $BUILD_DIR/$LIBNAME/Makefile |
c8bdae60fcb1
changed the generation of *_version.c files to not break on make clean
Mychaela Falconia <falcon@freecalypso.org>
parents:
10
diff
changeset
|
58 } |
c8bdae60fcb1
changed the generation of *_version.c files to not break on make clean
Mychaela Falconia <falcon@freecalypso.org>
parents:
10
diff
changeset
|
59 |
68
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
60 asm_file() { |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
61 if [ $# != 1 ] |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
62 then |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
63 echo "Error: asm_file takes 1 argument" 1>&2 |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
64 exit 1 |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
65 fi |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
66 objname=`basename "$1" .s`.obj |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
67 helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
68 helpers/makeline cmd ../../toolwrap/asm470 ${ASMFLAGS} "$1" '$@' \ |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
69 >> $BUILD_DIR/$LIBNAME/Makefile |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
70 echo >> $BUILD_DIR/$LIBNAME/Makefile |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
71 OBJS="$OBJS $objname" |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
72 } |
838717193e09
eliminated the use of bootloader.lib binary blob
Mychaela Falconia <falcon@freecalypso.org>
parents:
32
diff
changeset
|
73 |
10 | 74 cfile_plain() { |
75 if [ $# != 1 ] | |
76 then | |
77 echo "Error: cfile_plain takes 1 argument" 1>&2 | |
78 exit 1 | |
79 fi | |
80 objname=`basename "$1" .c`.obj | |
81 helpers/makeline dep $objname "$1" >> $BUILD_DIR/$LIBNAME/Makefile | |
133
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
82 case "$objname" in |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
83 *[A-Z]*) |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
84 helpers/makeline cmd rm -f '$@' \ |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
85 >> $BUILD_DIR/$LIBNAME/Makefile |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
86 ;; |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
87 esac |
10 | 88 helpers/makeline cmd ../../toolwrap/cl470 -q -c ${CFLAGS} ${CPPFLAGS} \ |
89 "$1" >> $BUILD_DIR/$LIBNAME/Makefile | |
32
c49c78d9bb5a
scripts/mk-component.sh: fix for cl470's auto-lowercasing of filenames
Mychaela Falconia <falcon@freecalypso.org>
parents:
15
diff
changeset
|
90 case "$objname" in |
c49c78d9bb5a
scripts/mk-component.sh: fix for cl470's auto-lowercasing of filenames
Mychaela Falconia <falcon@freecalypso.org>
parents:
15
diff
changeset
|
91 *[A-Z]*) |
c49c78d9bb5a
scripts/mk-component.sh: fix for cl470's auto-lowercasing of filenames
Mychaela Falconia <falcon@freecalypso.org>
parents:
15
diff
changeset
|
92 objname_lc=`echo $objname | tr A-Z a-z` |
c49c78d9bb5a
scripts/mk-component.sh: fix for cl470's auto-lowercasing of filenames
Mychaela Falconia <falcon@freecalypso.org>
parents:
15
diff
changeset
|
93 helpers/makeline cmd mv $objname_lc $objname \ |
c49c78d9bb5a
scripts/mk-component.sh: fix for cl470's auto-lowercasing of filenames
Mychaela Falconia <falcon@freecalypso.org>
parents:
15
diff
changeset
|
94 >> $BUILD_DIR/$LIBNAME/Makefile |
c49c78d9bb5a
scripts/mk-component.sh: fix for cl470's auto-lowercasing of filenames
Mychaela Falconia <falcon@freecalypso.org>
parents:
15
diff
changeset
|
95 ;; |
c49c78d9bb5a
scripts/mk-component.sh: fix for cl470's auto-lowercasing of filenames
Mychaela Falconia <falcon@freecalypso.org>
parents:
15
diff
changeset
|
96 esac |
10 | 97 echo >> $BUILD_DIR/$LIBNAME/Makefile |
98 OBJS="$OBJS $objname" | |
99 } | |
100 | |
101 cfile_str2ind() { | |
102 if [ $# != 1 ] | |
103 then | |
104 echo "Error: cfile_str2ind takes 1 argument" 1>&2 | |
105 exit 1 | |
106 fi | |
107 if [ "$USE_STR2IND" = 1 ] | |
108 then | |
109 objname=`basename "$1" .c`.obj | |
122
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
110 pp_name=`echo $1 | sed -e 's/\.c$/.pp/' | tr A-Z a-z` |
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
111 pp__name=`echo $1 | sed -e 's/\.c$/.pp_/' | tr A-Z a-z` |
10 | 112 helpers/makeline dep $objname "$1" \ |
113 >> $BUILD_DIR/$LIBNAME/Makefile | |
133
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
114 case "$objname" in |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
115 *[A-Z]*) |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
116 helpers/makeline cmd rm -f '$@' \ |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
117 >> $BUILD_DIR/$LIBNAME/Makefile |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
118 ;; |
87347425b11f
scripts/mk-component.sh: more filename case muck
Mychaela Falconia <falcon@freecalypso.org>
parents:
122
diff
changeset
|
119 esac |
10 | 120 helpers/makeline cmd ../../toolwrap/cl470 -q -po -p? -x \ |
121 ${CPPFLAGS} "$1" >> $BUILD_DIR/$LIBNAME/Makefile | |
122 helpers/makeline cmd ../../toolwrap/str2ind -a \ | |
123 -t ../str2ind.tab -l ../str2ind.log \ | |
124 -f "$pp_name" >> $BUILD_DIR/$LIBNAME/Makefile | |
125 helpers/makeline cmd ../../toolwrap/cl470 -q -c ${CFLAGS} \ | |
126 "$pp__name" >> $BUILD_DIR/$LIBNAME/Makefile | |
127 helpers/makeline cmd @rm -f "$pp_name" \ | |
128 >> $BUILD_DIR/$LIBNAME/Makefile | |
129 helpers/makeline cmd @rm -f "$pp__name" \ | |
130 >> $BUILD_DIR/$LIBNAME/Makefile | |
122
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
131 case "$objname" in |
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
132 *[A-Z]*) |
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
133 objname_lc=`echo $objname | tr A-Z a-z` |
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
134 helpers/makeline cmd mv $objname_lc $objname \ |
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
135 >> $BUILD_DIR/$LIBNAME/Makefile |
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
136 ;; |
feba9ffc2627
scripts/mk-component.sh: filename case muck for str2ind
Mychaela Falconia <falcon@freecalypso.org>
parents:
105
diff
changeset
|
137 esac |
10 | 138 echo >> $BUILD_DIR/$LIBNAME/Makefile |
139 OBJS="$OBJS $objname" | |
140 else | |
141 cfile_plain "$1" | |
142 fi | |
143 } | |
144 | |
574
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
145 cfile_symlink() { |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
146 if [ $# != 1 ] |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
147 then |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
148 echo "Error: cfile_symlink takes 1 argument" 1>&2 |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
149 exit 1 |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
150 fi |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
151 localcopy=`basename "$1"` |
575
0198ac1e1a4f
cfile_symlink for GPF: a more robust approach
Mychaela Falconia <falcon@freecalypso.org>
parents:
574
diff
changeset
|
152 echo "$localcopy:" >> $BUILD_DIR/$LIBNAME/Makefile |
0198ac1e1a4f
cfile_symlink for GPF: a more robust approach
Mychaela Falconia <falcon@freecalypso.org>
parents:
574
diff
changeset
|
153 echo " ln -s $1 ." >> $BUILD_DIR/$LIBNAME/Makefile |
574
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
154 echo >> $BUILD_DIR/$LIBNAME/Makefile |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
155 cfile_plain $localcopy |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
156 } |
41b6a18ffa0b
GPF rebuild from source: symlink magic to fix __FILE__
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
157 |
10 | 158 # invoke the recipe |
159 | |
160 SRC=../../src | |
161 OBJS= | |
162 . "$recipe_file" | |
163 | |
164 # finish the Makefile | |
165 | |
166 helpers/makeline dep $LIBNAME.lib ${OBJS} >> $BUILD_DIR/$LIBNAME/Makefile | |
167 echo ' ../../toolwrap/ar470 r $@ $^' >> $BUILD_DIR/$LIBNAME/Makefile | |
168 echo >> $BUILD_DIR/$LIBNAME/Makefile | |
169 echo 'clean:' >> $BUILD_DIR/$LIBNAME/Makefile | |
170 echo ' rm -f *.obj *.lib *.c' >> $BUILD_DIR/$LIBNAME/Makefile |