FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/cfgmagic/processconf.sh @ 491:886cd11bc45f
OSX reconstruction started
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Mon, 30 Jun 2014 19:28:28 +0000 |
parents | 2a26785fb5a2 |
children | 6f4cadd1fd7f |
rev | line source |
---|---|
88
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
1 #!/bin/sh |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
2 # The top level Makefile invokes this Bourne shell script after ensuring |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
3 # that the build.conf file is present. The job of this script is to grok |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
4 # that configuration file and to produce include/config.{h,mk,m4} files |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
5 # corresponding to the selected configuration. |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
6 # |
207
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
7 # The current directory is expected to be the top level of gsm-fw, i.e., |
88
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
8 # all fragments are sourced as cfgmagic/blah. |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
9 # Don't run this script directly - let the Makefile do it for you. |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
10 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
11 set -e |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
12 . cfgmagic/functions |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
13 TARGET= |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
14 c_export_list= |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
15 mk_export_list= |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
16 m4_export_list= |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
17 |
122 | 18 # some defaults |
207
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
19 FFS_IN_RAM=1 |
122 | 20 RVTMUX_UART_port=IrDA |
21 RVTMUX_UART_baud=115200 | |
22 | |
88
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
23 . ./build.conf |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
24 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
25 if [ -z "$TARGET" ] |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
26 then |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
27 echo "Error: target not set in build.conf" 1>&2 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
28 exit 1 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
29 fi |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
30 |
122 | 31 # Serial configuration |
32 case "$RVTMUX_UART_port" in | |
33 IrDA) | |
34 ;; | |
35 MODEM) | |
36 CONFIG_RVTMUX_ON_MODEM=1 | |
37 export_to_c CONFIG_RVTMUX_ON_MODEM | |
38 ;; | |
39 *) | |
207
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
40 echo "Error: unknown RVTMUX_UART_port=$RVTMUX_UART_port" 1>&2 |
122 | 41 exit 1 |
42 ;; | |
43 esac | |
44 | |
45 TR_BAUD_CONFIG=TR_BAUD_$RVTMUX_UART_baud | |
46 export_to_c TR_BAUD_CONFIG | |
47 | |
207
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
48 # FFS in RAM |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
49 export_to_c FFS_IN_RAM |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
50 export_to_m4 FFS_IN_RAM |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
51 if [ $FFS_IN_RAM = 1 ] |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
52 then |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
53 if [ -z "$RAMFFS_BLKSIZE_LOG2" -o -z "$RAMFFS_NBLOCKS" ] |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
54 then |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
55 echo \ |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
56 "Error: RAMFFS_BLKSIZE_LOG2 and RAMFFS_NBLOCKS need to be defined" 1>&2 |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
57 exit 1 |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
58 fi |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
59 export_to_c RAMFFS_BLKSIZE_LOG2 |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
60 export_to_m4 RAMFFS_BLKSIZE_LOG2 |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
61 export_to_c RAMFFS_NBLOCKS |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
62 export_to_m4 RAMFFS_NBLOCKS |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
63 fi |
c70c077243dd
gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
167
diff
changeset
|
64 |
489
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
65 # The list of build components: we have some invariants that are always |
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
66 # included, and some others that are included depending on the configuration. |
88
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
67 |
167
df335d255ac4
gsm-fw: services subdir hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
143
diff
changeset
|
68 BUILD_COMPONENTS="bsp nucleus riviera serial services sprintf sysglue" |
489
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
69 |
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
70 if [ "$CONFIG_GPF" = 1 ] |
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
71 then |
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
72 BUILD_COMPONENTS="$BUILD_COMPONENTS gpf" |
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
73 fi |
2a26785fb5a2
gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
207
diff
changeset
|
74 |
88
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
75 export_to_mk BUILD_COMPONENTS |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
76 |
167
df335d255ac4
gsm-fw: services subdir hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
143
diff
changeset
|
77 # The support for building flashable images is not here yet, |
df335d255ac4
gsm-fw: services subdir hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
143
diff
changeset
|
78 # so ramImage is all we can build for now. |
df335d255ac4
gsm-fw: services subdir hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
143
diff
changeset
|
79 |
88
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
80 BUILD_DEFAULT_IMAGE=ramImage |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
81 export_to_mk BUILD_DEFAULT_IMAGE |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
82 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
83 # Now generate the output files! |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
84 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
85 parse_export_list() { |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
86 for var in $1 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
87 do |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
88 eval "value=\"\$$var\"" |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
89 emit_def "$var" "$value" |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
90 done |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
91 } |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
92 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
93 # make config.h |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
94 emit_def() { |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
95 echo "#define $1 $2" >> include/config.h |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
96 } |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
97 : > include/config.h |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
98 parse_export_list "$c_export_list" |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
99 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
100 # make config.mk |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
101 emit_def() { |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
102 echo "$1= $2" >> include/config.mk |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
103 } |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
104 : > include/config.mk |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
105 parse_export_list "$mk_export_list" |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
106 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
107 # make config.m4 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
108 emit_def() { |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
109 echo 'define(`'"$1'"',`'"$2')dnl" >> include/config.m4 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
110 } |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
111 : > include/config.m4 |
ccde45a06737
nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
112 parse_export_list "$m4_export_list" |