Cosmetics.
[SDL.s60v3.git] / symbian / test / mmpmake.pl
blob8a6e903163d0894bb81252ec367dd95e603996bb
1 use strict;
3 my $ii = -1;
4 my $count = @ARGV;
5 my $docomp = 0;
6 my $target;
7 my @libs;
8 my @files;
9 my $uid = 0;
10 my $targetdir;
11 my $pkgfile;
12 my $bldinffile;
13 my $srcdir;
14 my @userinc;
15 my @sysinc;
16 my @exclude;
17 my $mathlibneed = 0;
18 my $gllibneed = 0;
19 while(1)
21 ++$ii;
22 last unless $ii < $count;
25 if($ARGV[$ii] =~ /\@CC\@/)
27 $docomp = 1;
28 next;
30 if($docomp)
32 if($ARGV[$ii] eq "-o")
34 ++$ii;
35 $target = $ARGV[$ii];
36 next;
38 if($ARGV[$ii] eq "\@CFLAGS\@")
40 next;
42 if($ARGV[$ii] eq "\@LIBS\@")
44 push(@libs, "euser.lib");
45 push(@libs, "sdl.lib");
46 push(@libs, "sdlexe.lib");
47 next;
49 if($ARGV[$ii] eq "\@MATHLIB\@")
51 $mathlibneed = 1;
52 next;
54 if($ARGV[$ii] eq "\@GLLIB\@")
56 $gllibneed = 1;
57 next;
59 if($ARGV[$ii] eq "-uid")
61 ++$ii;
62 $uid += hex($ARGV[$ii]);
63 next;
65 if($ARGV[$ii] eq "-targetdir")
67 ++$ii;
68 $targetdir = $ARGV[$ii];
69 next;
71 if($ARGV[$ii] eq "-pkgfile")
73 ++$ii;
74 $pkgfile = $ARGV[$ii];
75 next;
77 if($ARGV[$ii] eq "-bldinffile")
79 ++$ii;
80 $bldinffile = $ARGV[$ii];
81 next;
83 if($ARGV[$ii] eq "-uinc")
85 ++$ii;
86 push(@userinc, split(/;/, $ARGV[$ii]));
87 next;
89 if($ARGV[$ii] eq "-sinc")
91 ++$ii;
92 push(@sysinc, split(/;/, $ARGV[$ii]));
93 next;
95 if($ARGV[$ii] eq "-excl")
97 ++$ii;
98 push(@exclude, split(/;/, $ARGV[$ii]));
99 next;
101 if($ARGV[$ii] =~ /^#(\d+)/)
103 $uid += $1;
104 next;
106 if($ARGV[$ii] eq "-srcdir")
108 ++$ii;
109 $srcdir = $ARGV[$ii];
110 next;
112 if($ARGV[$ii] eq "-lib")
114 ++$ii;
115 push(@libs, split(/;/, $ARGV[$ii]));
116 next;
118 if($ARGV[$ii] eq "-mathlib")
120 ++$ii;
121 push(@libs, split(/;/, $ARGV[$ii])) if $mathlibneed;
122 next;
124 if($ARGV[$ii] eq "-gllib")
126 ++$ii;
127 push(@libs, split(/;/, $ARGV[$ii])) if $gllibneed;
128 next;
130 push(@files, $ARGV[$ii]);
136 my $name;
137 if($target =~ /(.*?)\@EXE\@/)
139 $name = $1;
142 foreach my $exl (@exclude)
144 exit if($name =~ /$exl/);
147 my $mmpname = "$targetdir\\$name.mmp";
150 open(MMP, ">$mmpname") or die "cannot open mmpfile; $mmpname\n";
152 print MMP "\n\n";
154 print MMP "TARGET $name.exe\n";
155 print MMP "TARGETTYPE exe\n";
156 printf MMP "UID 0 0x%x\n", $uid;
157 print MMP "CAPABILITY ReadUserData WriteUserData\n";
158 print MMP "EPOCHEAPSIZE 1000000 20000000\n\n";
160 print MMP "USERINCLUDE ";
162 foreach my $uinc (@userinc)
164 print MMP "$uinc ";
166 print MMP "\n";
167 print MMP "SYSTEMINCLUDE \\epoc32\\include ";
169 foreach my $sinc (@sysinc)
171 print MMP "$sinc ";
174 print MMP "\n";
176 my $currentpath;
177 foreach my $filepath (@files)
179 my $curfile;
180 $filepath =~ s/\@srcdir\@/$srcdir/;
181 if($filepath =~ /(.*?)[\/]+(.*)$/)
183 if($currentpath ne $1)
185 $currentpath = $1;
186 print MMP "SOURCEPATH $currentpath\n";
188 $curfile = $2;
190 else
192 $curfile = $filepath;
195 print MMP "SOURCE $curfile\n";
198 print MMP "\n";
200 print MMP "SOURCEPATH .\n";
201 print MMP "START RESOURCE ";
202 print MMP "$name";
203 print MMP "_reg.rss\n";
204 print MMP "TARGETPATH \\private\\10003a3f\\apps\n";
205 print MMP "END\n\n";
209 foreach my $lib (@libs)
211 print MMP "LIBRARY $lib\n";
214 print MMP "\n";
216 print MMP "STATICLIBRARY sdlmain.lib\n\n";
218 close(MMP);
220 my $regname = "$targetdir\\$name" . "_reg.rss";
222 open(REG, ">$regname") or die "cannot open regfile; $regname\n";
224 print REG "#include <appinfo.rh>\n\n";
227 print REG "UID2 KUidAppRegistrationResourceFile\n";
228 printf REG "UID3 0x%x\n\n", $uid;
231 print REG "RESOURCE APP_REGISTRATION_INFO\n";
232 print REG "\t{\n";
233 print REG "\tapp_file = \"$name\";\n";
234 print REG "\tgroup_name = \"SDL test\";\n";
235 print REG "\t}\n";
237 close REG;
239 open (BLD, ">>$bldinffile") or die "cannot open bld.inf; $bldinffile: $!\n";
240 print BLD "$name.mmp\n";
241 close BLD;
243 open (PKG, ">>$pkgfile") or die "cannot open pkg file; $pkgfile: $!\n";
244 print PKG "\"\\epoc32\\release\\armv5\\urel\\$name.exe\"-\"!:\\sys\\bin\\$name.exe\"\n";
245 print PKG "\"\\epoc32\\data\\z\\private\\10003a3f\\apps\\$name";
246 print PKG "_reg.rsc\"-\"!:\\private\\10003a3f\\import\\apps\\$name";
247 print PKG "_reg.rsc\"\n\n";
248 close PKG;