annotate gsm-fw/cfgmagic/processconf.sh @ 512:6f4cadd1fd7f

gsm-fw/cfgmagic: beginning of Compal target support
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Wed, 02 Jul 2014 01:30:03 +0000
parents 2a26785fb5a2
children 11b6ca57a079
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
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
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
20 RVTMUX_UART_port=IrDA
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
21 RVTMUX_UART_baud=115200
512
6f4cadd1fd7f gsm-fw/cfgmagic: beginning of Compal target support
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 489
diff changeset
22 FLASH_BOOT_VIA_BOOTROM=1
122
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
23
88
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
24 . ./build.conf
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
25
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
26 if [ -z "$TARGET" ]
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
27 then
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
28 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
29 exit 1
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
30 fi
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
31
122
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
32 # Serial configuration
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
33 case "$RVTMUX_UART_port" in
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
34 IrDA)
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
35 ;;
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
36 MODEM)
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
37 CONFIG_RVTMUX_ON_MODEM=1
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
38 export_to_c CONFIG_RVTMUX_ON_MODEM
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
39 ;;
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
40 *)
207
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
41 echo "Error: unknown RVTMUX_UART_port=$RVTMUX_UART_port" 1>&2
122
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
42 exit 1
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
43 ;;
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
44 esac
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
45
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
46 TR_BAUD_CONFIG=TR_BAUD_$RVTMUX_UART_baud
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
47 export_to_c TR_BAUD_CONFIG
28f967578233 RVT compiles
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 88
diff changeset
48
207
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
49 # 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_c FFS_IN_RAM
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
51 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
52 if [ $FFS_IN_RAM = 1 ]
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
53 then
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
54 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
55 then
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
56 echo \
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
57 "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
58 exit 1
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
59 fi
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
60 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
61 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
62 export_to_c RAMFFS_NBLOCKS
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
63 export_to_m4 RAMFFS_NBLOCKS
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
64 fi
c70c077243dd gsm-fw: beginning of config magic for FFS
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 167
diff changeset
65
489
2a26785fb5a2 gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 207
diff changeset
66 # 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
67 # 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
68
167
df335d255ac4 gsm-fw: services subdir hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 143
diff changeset
69 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
70
2a26785fb5a2 gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 207
diff changeset
71 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
72 then
2a26785fb5a2 gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 207
diff changeset
73 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
74 fi
2a26785fb5a2 gsm-fw: GPF included in the build with feature gpf, link successful
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 207
diff changeset
75
88
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
76 export_to_mk BUILD_COMPONENTS
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
77
167
df335d255ac4 gsm-fw: services subdir hooked into the build
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents: 143
diff changeset
78 # 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
79 # 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
80
88
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
81 BUILD_DEFAULT_IMAGE=ramImage
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
82 export_to_mk BUILD_DEFAULT_IMAGE
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
83
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
84 # Now generate the output files!
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
85
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
86 parse_export_list() {
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
87 for var in $1
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
88 do
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
89 eval "value=\"\$$var\""
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
90 emit_def "$var" "$value"
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
91 done
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
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
94 # make config.h
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
95 emit_def() {
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
96 echo "#define $1 $2" >> include/config.h
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
97 }
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
98 : > include/config.h
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
99 parse_export_list "$c_export_list"
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
100
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
101 # make config.mk
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
102 emit_def() {
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
103 echo "$1= $2" >> include/config.mk
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
104 }
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
105 : > include/config.mk
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
106 parse_export_list "$mk_export_list"
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
107
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
108 # make config.m4
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
109 emit_def() {
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
110 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
111 }
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
112 : > include/config.m4
ccde45a06737 nuc-fw: beginning of the configuration mechanism
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
113 parse_export_list "$m4_export_list"