comparison configure-gcc.sh @ 93:26237514cae7

configure-gcc.sh: created
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 21 Jul 2018 00:32:56 +0000
parents
children 5c4db73d289a
comparison
equal deleted inserted replaced
92:e42d528f3e6e 93:26237514cae7
1 #!/bin/sh
2
3 set -e
4
5 if [ ! -f configure-gcc.sh ]
6 then
7 echo "This script needs to be run from the top of the source tree" 1>&2
8 exit 1
9 fi
10
11 if [ ! -f helpers/makeline ]
12 then
13 echo "Please run make in the helpers directory first" 1>&2
14 exit 1
15 fi
16
17 # start looking at our invokation line
18
19 if [ "$1" = --clean ]
20 then
21 clean_flag=1
22 shift
23 else
24 clean_flag=0
25 fi
26
27 if [ $# -lt 1 ]
28 then
29 echo "usage: $0 [--clean] target [vars]" 1>&2
30 exit 1
31 fi
32
33 TARGET="$1"
34
35 if [ ! -f "targets/$TARGET.conf" -o ! -f "targets/$TARGET.h" ]
36 then
37 echo "Error: target $TARGET not known" 1>&2
38 exit 1
39 fi
40
41 if [ ! -f "targets/$TARGET.m4" ]
42 then
43 echo "Error: target $TARGET is not supported with gcc" 1>&2
44 fi
45
46 # target defaults that can be overridden by $TARGET.conf
47
48 CHIPSET=10
49 DSP=36
50 RF=12
51 DISABLE_SLEEP=0
52
53 . "targets/$TARGET.conf"
54
55 BUILD_DIR="build-$TARGET-gcc"
56
57 # settings derived from the target-defined DSP version
58
59 case "$DSP" in
60 33)
61 AMR=0
62 L1_DYN_DSP_DWNLD=0
63 L1_VOICE_MEMO_AMR=0
64 MELODY_E2=0
65 SPEECH_RECO=0
66 ;;
67 34)
68 AMR=1
69 L1_DYN_DSP_DWNLD=0
70 L1_VOICE_MEMO_AMR=0
71 MELODY_E2=0
72 SPEECH_RECO=0
73 ;;
74 36)
75 AMR=1
76 L1_DYN_DSP_DWNLD=1
77 L1_VOICE_MEMO_AMR=1
78 MELODY_E2=1
79 SPEECH_RECO=1
80 ;;
81 *)
82 echo "Error: DSP=$DSP setting not understood" 1>&2
83 exit 1
84 esac
85
86 # miscellaneous configurable feature settings
87
88 ALLOW_CSIM_GSM=1
89 SERIAL_DYNAMIC_SWITCH=0
90 TR_BAUD_CONFIG=TR_BAUD_115200
91
92 # allow the user to override these defaults
93
94 shift
95 while [ $# != 0 ]
96 do
97 eval "$1"
98 shift
99 done
100
101 echo "Building firmware for target $TARGET in $BUILD_DIR"
102
103 if [ "$clean_flag" = 1 ]
104 then
105 rm -rf $BUILD_DIR
106 fi
107 mkdir -p $BUILD_DIR
108
109 # shell functions to be used in the configuration recipe
110
111 build_lib() {
112 if [ $# != 1 ]
113 then
114 echo "Error: build_lib takes 1 argument" 1>&2
115 exit 1
116 fi
117 scripts/mk-component-gcc.sh "$1"
118 SUBDIR="$SUBDIR $1"
119 LIBS="$LIBS $1/$1.a"
120 }
121
122 # invoke the configuration recipe
123
124 export BUILD_DIR TARGET
125 export CHIPSET DSP RF
126 export AMR L1_DYN_DSP_DWNLD L1_VOICE_MEMO_AMR MELODY_E2 SPEECH_RECO
127 export DISABLE_SLEEP
128 export ALLOW_CSIM_GSM SERIAL_DYNAMIC_SWITCH TR_BAUD_CONFIG
129 export GPRS SRVC FCHG_STATE
130
131 scripts/config-headers.sh
132
133 SUBDIR=
134 LIBS=
135
136 build_lib ccddata
137
138 # ACI libs
139 build_lib aci
140 build_lib aciext
141 build_lib aci_dti_mng
142 build_lib atiext
143 build_lib comlib
144
145 if [ "$GPRS" = 1 ]
146 then
147 build_lib config_gprs_fl
148 build_lib config_gprs_ir
149 else
150 build_lib config_gsm_fl
151 build_lib config_gsm_ir
152 fi
153
154 # G23M protocol stack libs
155 build_lib alr
156 build_lib cc
157 build_lib dl
158 build_lib dti
159 build_lib l1_pei
160 build_lib mm
161 build_lib rr
162 build_lib sim_b_lib
163 build_lib sms
164 build_lib ss
165 build_lib uart_b_lib
166
167 # fax and data
168 if [ "$SRVC" != 0 ]
169 then
170 build_lib l2r
171 build_lib ra
172 build_lib rlp
173 fi
174
175 # fax specific
176 if [ "$SRVC" = 1 ]
177 then
178 build_lib fad
179 build_lib t30
180 fi
181
182 # GPRS specific
183 if [ "$GPRS" = 1 ]
184 then
185 build_lib cci
186 build_lib cci_ir
187 build_lib cl
188 build_lib gmm
189 build_lib grlc
190 build_lib grlc_ir
191 build_lib grr
192 build_lib llc
193 build_lib sm
194 build_lib sndcp
195 build_lib ppp
196 build_lib ppp_ir
197 build_lib upm
198 fi
199
200 # Condat drivers
201 build_lib gdi
202
203 # GPF
204 build_lib ccd_na7_db
205 build_lib frame_na7_db_fl
206 build_lib frame_na7_db_ir
207 build_lib misc_na7_db_fl
208 build_lib misc_na7_db_ir
209 build_lib osx_na7_db
210 build_lib tif_na7_db_fl
211 build_lib tif_na7_db_ir
212
213 # core drivers
214 build_lib drivers_flash
215
216 # Layer 1
217 build_lib tpudrv
218 build_lib l1_ext
219 build_lib l1_int
220 build_lib l1_custom_ext
221 build_lib l1_custom_int
222
223 build_lib riviera_core_flash
224 build_lib riviera_cust_flash
225
226 # services
227 build_lib audio
228 build_lib audio_bgd
229 build_lib cst
230 build_lib dar
231 build_lib dar_gbl_var
232 build_lib etm
233 build_lib lls
234
235 # app drivers
236 build_lib abb
237 build_lib buzzer
238 if [ "$FCHG_STATE" = 1 ]
239 then
240 build_lib fchg
241 fi
242 build_lib ffs
243 build_lib ffs_drv
244 build_lib ffs_pcm
245 build_lib kpd
246 build_lib power
247 build_lib rtc_drv
248 build_lib sim_drv
249 build_lib spi_drv
250 build_lib uart_drv
251
252 # system glue
253 build_lib main
254 build_lib main_ir
255
256 # Nucleus
257 build_lib nucleus_flash
258 build_lib nucleus_intram
259
260 # selective libc replacement
261 build_lib libsys_fl
262 build_lib libsys_ir
263
264 # generate the top level Makefile!
265
266 helpers/makeline def TARGET $TARGET > $BUILD_DIR/Makefile
267 echo >> $BUILD_DIR/Makefile
268 helpers/makeline def SUBDIR $SUBDIR >> $BUILD_DIR/Makefile
269 echo >> $BUILD_DIR/Makefile
270 helpers/makeline def LIBS $LIBS >> $BUILD_DIR/Makefile
271 echo >> $BUILD_DIR/Makefile
272
273 helpers/makeline def FLASH_BASE_ADDR $FLASH_BASE_ADDR >> $BUILD_DIR/Makefile
274 helpers/makeline def FLASH_SECTOR_SIZE $FLASH_SECTOR_SIZE >> $BUILD_DIR/Makefile
275 echo >> $BUILD_DIR/Makefile
276
277 cat gcc/makefile-body >> $BUILD_DIR/Makefile
278
279 # All done!
280
281 echo "Run make in $BUILD_DIR to compile the firmware"