FreeCalypso > hg > fc-magnetite
annotate src/cs/layer1/tools/abc.pl @ 370:0da72ce64c86
aci3: AT+CBC reimplemented in terms of FCHG API
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 01 Jan 2018 18:23:11 +0000 | 
| parents | 945cf7f506b2 | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 #!/usr/bin/perl -w | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 # This perl script is the core of a generic configuration system as | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 # described in TIDKs bugzilla Bug #3 The configuration system depends | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 # on a *.cfg file. This script will generate appropriate configuration | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 # include files (i.e. *.h files) from the *.cfg file. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 # NOTE! If you think you need to edit this script, you are probably | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 # wrong or I forgot something, so please email me (mmj@ti.com) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 # Known bugs/limitations: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 # The comment character '#' cannot be embedded within quoted strings | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 # Notes: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 # A target section in the master config file can include another | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 # section with a line "&SECTION". SECTION can be any section, | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 # including the special sub-sections which are just like a normal | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 # section but with the name prefixed by '&'. Only special thing about | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 # the sub-sections is that they cannot be built and they are not shown | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 # in the list printed by the -l option. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 # TODO: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 # Should we delete the configuration file for which there is no | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 # corresponding lines in the master config file, e.g. if there is no | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 # DSP_ lines, should we delete the dsp.cfg file? Or should it be an | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 # option (-od) Should we give a warning? | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 # Perhaps we should check for duplicate config lines. This is | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 # especially useful with the include feature, as this feature increase | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 # the risk of duplicate lines. As it is now, the lines are just copied | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 # into the corresponding config/*.cfg file so the compiler will | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 # complain | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 ############################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 # Customization | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 ############################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 # none! | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 ############################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 # Globals | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 ############################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 # Full list of valid configuration prefixes | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 @Prefixes = (); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 # Target(s) from the global cfg file to build | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 @Targets = (); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 # Default options (overridden by command line arguments) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 $verbose = 1; # verbosity level | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 $nomake = 0; # don't invoke make at end of script | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 $dryrun = 0; # don't make actual config changes. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 $listtargets = 0; # List all configs from master config | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 $printconfig = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 $printenv = 0; # Print out all ENV variables that are set. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 $ConfigDir = "config"; # directory to put output config files | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 $makedb = 0; # Print out the make database to stdout (gnumake option -p) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 $MakeParams = ""; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 $MakeFile = ""; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 $MasterConfigFile = ""; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 $warnings = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 $make_name = "gmake"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 my %sections; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 my $line = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 my $current_section = ""; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 my %expanded; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 my %env_var; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 my %cfg_file; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 #################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 # Main | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 #################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 GetOpts(); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 # Find the configuration file to use | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 @ConfigFiles = glob("*.cfg"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 $#ConfigFiles < 0 && die "No configuration file found\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 # Check if MasterConfigFile was already set with the -f<cfg file> option | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 if ($MasterConfigFile eq "") { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 $#ConfigFiles > 0 && die "Multiple config-files found! (@ConfigFiles)\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 $MasterConfigFile = $ConfigFiles[0]; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 # Find name of make file, using the basename of the master config-file | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 if ($MakeFile eq "") { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 @tmp = $MasterConfigFile =~ /(\w+)/; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 $MakeFile = $tmp[0] . ".mak"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 ReadMasterConfig($MasterConfigFile); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 if ($listtargets) { ListTargets(); } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 if ($printconfig) { PrintConfig(); } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 foreach $build (@Targets) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 # >>>> Start Adding SB : 17/03/03 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 # Add an environment variable for master.mak | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 $RFname = "DELIVERY_BASENAME" ; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 $RFvalue = $build ; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 if ( defined( $ENV{"$RFname"} ) ) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 print STDERR " Warning : environement vartiable $RFname already set to $ENV{\"$RFname\"} updated to $RFvalue\n" ; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 $ENV{"$RFname"} = $RFvalue ; # set environment variable | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 # >>>> Stop Adding SB : 17/03/03 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 verb(2,"ExpandMasterConfig for $build\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 %expanded = (); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 ExpandMasterConfig($build); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 verb(1, "Building target: $build\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 Process($build); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 if ($nomake == 0) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 @args = ( "$make_name", "$MakeParams", "-f", "$MakeFile" ); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 if ($makedb == 1) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 push (@args,"-p"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 verb(1, "Invoking make: @args \n\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 system("@args"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 #################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 # Admin procedures | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 #################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 sub GetOpts { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 foreach (@ARGV) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 if (/^-n/) { $dryrun++; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 if (/^-c/) { $nomake++; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 if (/^-p/) { $printconfig++; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 if (/^-d/) { $makedb++; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 if (/^-l/) { $listtargets++; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 if (/^-e/) { $printenv++; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 if (/^-f(\w+\.?\w*)/) { $MasterConfigFile = $1; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 if (/^-m(\w+\.?\w*)/) { $MakeFile = $1; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 if (/^-x([^\s]+)/) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 $MakeParams = $1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 $MakeParams =~ tr/,/ /; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 if (/^-o(\w+\.?\w*)/) { $ConfigDir = $1; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 if (/^-h|--help/) { Usage(); } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 if (/^-v/) { $verbose++; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 if (/^-q/) { $verbose = -1; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 if (/^[^\-](\w+)/) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 push (@Targets,uc($_)); # push uppercased string | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 if ($#Targets < 0) { $Targets[0] = "DEFAULT"; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 sub PrintConfig { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 foreach (@Targets) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 unless (/\&/) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 !defined($sections{$_}) && die "Target section $_ not found\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 print "Target [$_]:\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 %expanded = (); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 ExpandSection ("$_",0,1); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 print "\n\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 exit(0); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 sub ListTargets { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 print "Targets:\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 foreach (sort keys %sections) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 unless (/\&/) { print " [$_]\n"; } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 exit(0); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 sub Usage | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 print <<USAGE_END; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 abc.pl v1.10. Automatic Building, Configuration and Dependencies System. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 Copyright TI 2001. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 Usage: [perl] abc.pl [OPTION]... [TARGETS]... | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 OPTIONS: | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 -h Display this help and exit | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 -c Only do configuration step. Do not invoke gnumake. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 -n Dry run. Print what is going to be done without doing it. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 -l List all configurations in master config file, then exit | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 -f<name> Specify which master configuration file to use. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 Note that there must be no spaces between "-f" and the file name. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 Default is to use the *.cfg file from the current directory. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 -m<name> Specify which make file use. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 Note that there must be no spaces between "-m" and the file name. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 Default is to use the makefile <file>.mak file from the current | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 directory, where <file> corresponds to the basename of the | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 config file. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 -o<name> Specify output directory name (where to put *.cfg files). | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 Default is 'config'. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 Note that there must be no spaces between "-o" and the dir name. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 -p Print out contents of the specified target(s) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 -d Print make database (corresponds to gnumake -p) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 -e Print out all ENVironment variables that are set | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 -v Be verbose (repeat several times to be more verbose) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 -q Be quiet | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 TARGETS Name(s) of the target(s) to build. | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 Report bugs and suggestions to mmj\@ti.com or skl\@ti.com | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 USAGE_END | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 # -t Touch. Invoke make with additional parameter: -t | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 exit(0); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 #################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 ## Core procedures | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 #################################################################### | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 # Expand all section inclusions in each target | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 sub ExpandMasterConfig | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 my ($default_section) = @_; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 if (defined($sections{$default_section})){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 #print default section only | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 ExpandSection ($default_section); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 } else { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 #error in $default_section | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 verb (1,"Section [$default_section] is not defined in $MasterConfigFile \n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 exit 1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 sub ExpandSection | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 my ($section,$level,$show); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 my $j; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 my $var; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 my @values; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 my $indent; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 my $egal_column = 40; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 ($section,$level,$show) = @_; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 verb (2,"Expanding [$section]\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 if (!$level){$level = 1}; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 $indent = " "x$level."+- "; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 if ($level > 9){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 die "Including somewhat deep! Did you make a loop?\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 @values = split(' ',$sections{"$_[0]"}); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 foreach $j (@values){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 if($j =~ /^&/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 if ($show){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 print "$indent$j\n";} | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 }else{ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 $j =~ /([^=]*)=(.*)/; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 $var = $1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 $value = $2; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 $value =~ s/\#.*$//; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 $env_var = ''; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 if ($var =~ /^\$/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 $var =~ s/^\$//; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 $env_var = '$'; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 if ( exists $expanded{$var} ) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 print STDERR "Warning : in [$section], $env_var{$var}$var = $expanded{$var} is overwritten by $env_var$var = $value\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 $env_var{$var} = $env_var; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 $expanded{$var} = $value; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 if ($show){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 $line = $indent.$var; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 $points = "."x(40-length($line)-1); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 print "$line$points = $value\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 if ($j =~ /^&(\w*)/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 ExpandSection ($1,++$level,$show); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 $level--; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 sub ReadMasterConfig | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 my ($filename)=(@_); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 verb(1, "Reading master config file: $filename\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 [-e $filename] || die "File $filename not found\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 #Gather informations from master.cfg | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 open (MASTER_CFG,"$filename") || die "Can't open $filename\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 while (<MASTER_CFG>){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 while (/[\r\n]$/){s/[\r\n]$//} | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 #line counter | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 $line++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 #ignore line comment | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 if (/^\s*\#/) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 verb(5, "Skip: comment line \n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 next}; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 #ignore blank lines | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 if (/^$/) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 verb(5, "Skip: empty line\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 next}; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 #identify new section | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 if (/\[(\w*)\]/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 $current_section = uc($1); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 verb(4, "Reading section: $current_section\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 if (defined($sections{"$current_section"})){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 print STDERR "Warning [$line]: Section $current_section is already defined\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 die; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 } else { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 $sections{"$current_section"}=""; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 next; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 #add section lines | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 if ($current_section eq ""){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 die "Error [$line]: $filename must starts by a [section] definition\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 s/ //g; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 verb(5, "Read: $_\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 $sections{"$current_section"} .= " $_"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 if (/^\$?([^_]+)_\w+\s*=\s*.*/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 $Prefixes{$1}=1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 close (MASTER_CFG); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 verb(4, "Successfully read configuration sections\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 verb(3, "\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 sub ReadConfigFile | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 my ($cfg)=(@_); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 my (@list); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 my ($prefix); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 %cfg_file = (); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 $filename = $cfg; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 $filename =~ s@$cfg@$ConfigDir/\L$cfg\E.cfg@; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 # If the file does not exist, just return empty list | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 if (-e $filename) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 verb(2, "Reading current config file: $filename\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 else { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 verb(2, "Config file $filename non-existing\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 return; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 $protect = ""; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 open (FH, "<$filename") || die "Can't open $filename\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 while (<FH>) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 chomp; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 if (m/\#ifndef\s*(\w+)/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 $protect = $1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 # here we add the $cfg prefix to each line | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 if (m/\#define\s*([^ ]+)\s*(.*)/) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 $var = $1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 $val = $2; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 if ($var =~ /$protect/i){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 verb(6,"Ignore $protect define\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 next; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 verb(5, "Read: $var=$val\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 $cfg_file{"${cfg}_$var"}=$val; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 close (FH) || die "Can't close $filename\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 sub Process | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 if (-e $ConfigDir) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 -d $ConfigDir || die "'$ConfigDir' is a file, should be a directory!\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 else { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 verb(4, "Config-dir $ConfigDir not found - creating it...\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 @args = ("mkdir", "$ConfigDir"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 system("@args"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 foreach $cfg (keys (%Prefixes)){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 $update = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 ReadConfigFile($cfg); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 verb (2,"File read\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 foreach $i (keys(%expanded)){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 if ($i =~ /^${cfg}_/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 if (defined($cfg_file{$i})) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 if ($cfg_file{$i} ne $expanded{$i}){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 $update = 1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 delete $cfg_file{$i}; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 } else { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 $update = 1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 if (keys(%cfg_file) > 0){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 verb (2,"Some variables are deleted.\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 $update = 1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 #update ENV vars and cfg files | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 if ($update && !$dryrun) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 open (FH, ">$filename") || die "Can't open $filename\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 print FH "#ifndef __$cfg\_CFG__\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 print FH "#define __$cfg\_CFG__\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 foreach $i (sort (keys(%expanded))){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 if ($i =~ /^${cfg}_/){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 $var = $i; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 $var =~ s/^${cfg}_//; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 if ($update && !$dryrun){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 print FH "#define $var $expanded{$i}\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 if ($env_var{$i}){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 if (exists $ENV{$var}){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 verb(1,"Warning environnement varaible is already set to $ENV{$i} in the system and is overwritten by $expanded{$i}\n");} | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 $ENV{$var}=$expanded{$i}; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 verb (2,"Setting $var environnement variable to $ENV{$var}\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 if ($update && !$dryrun) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 print FH "#endif /* __$cfg\_CFG__ \*/ \n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 close (FH) || die "Can't close $filename\n"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 if ($update){ | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 verb(2, "Updating $filename.\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 } else { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 verb (2,"$cfg file leaved untouched.\n"); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 # Print trace message (without indentation if $level < 0) | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 sub verb | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 my ($level, $str) = @_; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 my ($indent) = 0; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 if ($level < 0) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 $level = -$level; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 else { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 $indent = ($level || 1) - 1; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 if ($verbose >= $level) { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 print " " x $indent . $str; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 sub warning | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 my ($str) = @_; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 print STDERR "WARNING: $str"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 $warnings++; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 } | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 sub error | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 { | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 my ($str) = @_; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 print STDERR "ERROR: $str"; | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 exit(1); | 
| 
 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 } | 
