FreeCalypso > hg > ffs-editor
comparison src/cs/layer1/tools/make_cmd.pl @ 0:92470e5d0b9e
src: partial import from FC Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 15 May 2020 01:28:16 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:92470e5d0b9e |
---|---|
1 #!perl | |
2 | |
3 # generate a dynamic Linker command file | |
4 # PARAMETER ARE: | |
5 # 1 : Name of the Linker command file | |
6 # 2 : Name of the file with the parameter | |
7 # | |
8 | |
9 my ($cmd_file_temp,$tmp_file)=@ARGV; | |
10 | |
11 open (TMP, "$tmp_file"); | |
12 my $const_boot_lib = <TMP>; | |
13 my $bss_boot_lib = <TMP>; | |
14 my $bss_libs = <TMP>; | |
15 my $const_libs = <TMP>; | |
16 my $toolchoice_type = <TMP>; | |
17 close TMP; | |
18 | |
19 # define the REPLACE STRINGS | |
20 my $const_boot_str="(CONST_BOOT_LIB)"; | |
21 my $bss_boot_str="(BSS_BOOT_LIB)"; | |
22 my $bss_str="(BSS_LIBS)"; | |
23 my $const_str="(CONST_LIBS)"; | |
24 | |
25 # define some local variables | |
26 my $temp; | |
27 my @CMD; | |
28 my $line; | |
29 | |
30 # determine the cmd file name | |
31 @CMD=split /.template/, $cmd_file_temp; | |
32 $cmd_file=$CMD[0].".cmd"; | |
33 | |
34 open (TMP1, ">$cmd_file"); | |
35 open (TMP,$cmd_file_temp); | |
36 while ($line=<TMP>) { | |
37 if ($line =~ m/$const_boot_str/g) { | |
38 $line=mak_libs ($const_boot_lib) | |
39 } | |
40 if ($line =~ m/$bss_boot_str/g) { | |
41 $line=mak_libs ($bss_boot_lib) | |
42 } | |
43 if ($line =~ m/$bss_str/g) { | |
44 # insert the Libs | |
45 $line=mak_libs ($bss_libs); | |
46 } | |
47 if ($line =~ m/$const_str/g) { | |
48 $line=mak_libs ($const_libs) | |
49 } | |
50 | |
51 # NEW COMPILER MANAGEMENT | |
52 # If use of VISUAL LINKER, needs to manage trampoline download. | |
53 # Case of: | |
54 # - TOOL_CHOICE == 0 => compiler v1.22e with vlinker v1.9902 | |
55 if ($toolchoice_type == 0) { | |
56 $line =~ s(COMMENT2START)(); | |
57 $line =~ s(COMMENT2END)(); | |
58 } | |
59 | |
60 if ($toolchoice_type == 3) { | |
61 $line =~ s(COMMENT2START)(/*); | |
62 $line =~ s(COMMENT2END)(*/); | |
63 } | |
64 | |
65 print TMP1 $line; | |
66 } | |
67 close TMP; | |
68 close TMP1; | |
69 unlink $tmp_file; | |
70 | |
71 sub mak_libs | |
72 { | |
73 my ($bss_libs) =@_; | |
74 my @temp; | |
75 @temp = split /=/, $bss_libs; | |
76 $_="\t\t\t" . $temp[1]; | |
77 s/\) /)\n\t\t\t/g; | |
78 $_ =~ tr /\"//d; | |
79 return $_; | |
80 } | |
81 |