Commit | Line | Data |
27da23d5 |
1 | #!/usr/bin/perl -w |
2 | |
3 | # Copyright (c) 2004-2005 Nokia. All rights reserved. |
a0fd4948 |
4 | # This utility is licensed under the same terms as Perl itself. |
27da23d5 |
5 | |
6 | use strict; |
7 | use lib "symbian"; |
8 | |
9 | print "Configuring...\n"; |
10 | print "Configuring with: Perl version $] ($^X)\n"; |
11 | |
e81465be |
12 | do "sanity.pl" or die $@; |
27da23d5 |
13 | |
e81465be |
14 | my %VERSION = %{ do "version.pl" or die $@ }; |
27da23d5 |
15 | |
16 | printf "Configuring for: Perl version $VERSION{REVISION}.%03d%03d\n", |
17 | $VERSION{VERSION}, $VERSION{SUBVERSION}; |
18 | |
19 | my $VERSION = "$VERSION{REVISION}$VERSION{VERSION}$VERSION{SUBVERSION}"; |
20 | my $R_V_SV = "$VERSION{REVISION}.$VERSION{VERSION}.$VERSION{SUBVERSION}"; |
21 | |
ed76c0e4 |
22 | my ($SYMBIAN_ROOT, $SYMBIAN_VERSION, $SDK_NAME, $SDK_VARIANT, $SDK_VERSION) = |
e81465be |
23 | @{ do "sdk.pl" or die $@ }; |
24 | my %PORT = %{ do "port.pl" or die $@ }; |
27da23d5 |
25 | |
ed76c0e4 |
26 | if ($SYMBIAN_ROOT eq 'C:\Symbian\Series60_1_2_CW') { |
27da23d5 |
27 | ( $SYMBIAN_VERSION, $SDK_VERSION ) = qw(6.1 1.2); |
28 | } |
29 | |
30 | my $WIN = $ENV{WIN} ; # 'wins', 'winscw' (from sdk.pl) |
7df62229 |
31 | my $ARM = 'thumb'; # 'thumb', 'armv5' |
27da23d5 |
32 | my $S60SDK = $ENV{S60SDK}; # qw(1.2 2.0 2.1 2.6) (from sdk.pl) |
7df62229 |
33 | if ($SDK_VARIANT eq 'S60' && $S60SDK =~ /^5\./) { |
34 | $ARM = 'armv5'; # 'thumb', 'armv5' # Configuration for S60 5th Edition SDK v1.0 |
35 | } |
ed76c0e4 |
36 | my $S80SDK = $ENV{S80SDK}; # qw(2.0) (from sdk.pl) |
53d44271 |
37 | my $S90SDK = $ENV{S90SDK}; # qw(1.1) (from sdk.pl) |
25ca88e0 |
38 | my $UIQSDK = $ENV{UIQSDK}; # qw(2.0 2.1) (from sdk.pl) |
27da23d5 |
39 | |
40 | my $UREL = $ENV{UREL}; # from sdk.pl |
41 | $UREL =~ s/-ARM-/$ARM/; |
42 | my $UARM = $ENV{UARM}; # from sdk.pl |
43 | |
44 | die "$0: SDK not recognized\n" |
ed76c0e4 |
45 | if !defined($SYMBIAN_VERSION) || |
46 | !defined($SDK_VERSION) || |
53d44271 |
47 | (!defined($S60SDK) && !defined($S80SDK) && !defined($S90SDK) && !defined($UIQSDK)); |
27da23d5 |
48 | |
49 | die "$0: does not know which Windows compiler to use\n" |
50 | unless defined $WIN; |
51 | |
ed76c0e4 |
52 | print "Symbian $SYMBIAN_VERSION SDK $SDK_VARIANT $SDK_VERSION ($WIN) installed at $SYMBIAN_ROOT\n"; |
27da23d5 |
53 | |
e81465be |
54 | my $CWD = do "cwd.pl" or die $@; |
27da23d5 |
55 | print "Build directory $CWD\n"; |
56 | |
ed76c0e4 |
57 | die "$0: '+' in cwd does not work with Series 60 SDK 1.2\n" |
58 | if defined $S60SDK && $S60SDK eq '1.2' && $CWD =~ /\+/; |
27da23d5 |
59 | |
60 | my @unclean; |
61 | my @mmp; |
62 | |
63 | sub create_mmp { |
64 | my ( $target, $type, @x ) = @_; |
65 | my $miniperl = $target eq 'miniperl'; |
66 | my $perl = $target eq 'perl'; |
67 | my $mmp = "$target.mmp"; |
68 | my $targetpath = $miniperl |
69 | || $perl ? "TARGETPATH\t\\System\\Apps\\Perl" : ""; |
70 | if ( open( my $fh, ">$mmp" ) ) { |
71 | print "\t$mmp\n"; |
72 | push @mmp, $mmp; |
73 | push @unclean, $mmp; |
74 | print $fh <<__EOF__; |
75 | TARGET $target.$type |
76 | TARGETTYPE $type |
7df62229 |
77 | __EOF__ |
78 | if ($SDK_VARIANT eq 'S60' && $S60SDK =~ /^5\./) { |
79 | print $fh "UID\t0 0xEA3E9181\n" if $miniperl; |
80 | print $fh "UID\t0 0xED04DD86\n" if $perl; |
81 | print $fh "UID\t0x1000008d 0xE8667302\n" unless $miniperl || $perl; |
82 | print $fh "CAPABILITY\tNONE\n"; |
83 | } else { |
84 | print $targetpath; |
85 | print $fh "EPOCHEAPSIZE\t1024 8388608"; |
86 | print $fh "EPOCSTACKSIZE\t65536"; |
87 | } |
88 | print $fh <<__EOF__; |
27da23d5 |
89 | EXPORTUNFROZEN |
90 | SRCDBG |
91 | __EOF__ |
ed76c0e4 |
92 | if ($SDK_VARIANT eq 'S60') { |
7df62229 |
93 | print $fh "MACRO\t__SERIES60__\n"; |
94 | print $fh "MACRO\t__SERIES60_1X__\n" if $S60SDK =~ /^1\./; |
95 | print $fh "MACRO\t__SERIES60_2X__\n" if $S60SDK =~ /^2\./; |
96 | print $fh "MACRO\t__SERIES60_3X__\n" if $S60SDK =~ /^5\./; |
ed76c0e4 |
97 | } |
98 | if ($SDK_VARIANT eq 'S80') { |
99 | print $fh "MACRO\t__SERIES80__\n"; |
100 | print $fh "MACRO\t__SERIES80_1X__\n" if $S80SDK =~ /^1\./; |
101 | print $fh "MACRO\t__SERIES80_2X__\n" if $S80SDK =~ /^2\./; |
102 | } |
53d44271 |
103 | if ($SDK_VARIANT eq 'S90') { |
104 | print $fh "MACRO\t__SERIES90__\n"; |
105 | } |
25ca88e0 |
106 | if ($SDK_VARIANT eq 'UIQ') { |
107 | print $fh "MACRO\t__UIQ__\n"; |
108 | print $fh "MACRO\t__UIQ_1X__\n" if $UIQSDK =~ /^1\./; |
109 | print $fh "MACRO\t__UIQ_2X__\n" if $UIQSDK =~ /^2\./; |
110 | } |
27da23d5 |
111 | my ( @c, %c ); |
112 | @c = map { glob } qw(*.c); # Find the .c files. |
113 | @c = map { lc } @c; # Lowercase the names. |
114 | @c = grep { !/malloc\.c/ } @c; # Use the system malloc. |
53d44271 |
115 | @c = grep { !/madly\.c/ } @c; # mad is undef. |
27da23d5 |
116 | @c = grep { !/main\.c/ } @c; # main.c must be explicit. |
117 | push @c, map { lc } @x; |
118 | @c = map { s:^\.\./::; $_ } @c; # Remove the leading ../ |
119 | @c = map { $c{$_}++ } @c; # Uniquefy. |
120 | @c = sort keys %c; # Beautify. |
121 | |
122 | for (@c) { |
123 | print $fh "SOURCE\t\t$_\n"; |
124 | } |
125 | print $fh <<__EOF__; |
126 | SOURCEPATH $CWD |
127 | USERINCLUDE $CWD |
128 | USERINCLUDE $CWD\\ext\\DynaLoader |
129 | USERINCLUDE $CWD\\symbian |
130 | SYSTEMINCLUDE \\epoc32\\include\\libc |
131 | SYSTEMINCLUDE \\epoc32\\include |
132 | LIBRARY euser.lib |
133 | LIBRARY estlib.lib |
d0d72822 |
134 | LIBRARY eikcore.lib |
135 | LIBRARY cone.lib |
136 | LIBRARY efsrv.lib |
27da23d5 |
137 | __EOF__ |
138 | if ( $miniperl || $perl || $type eq 'dll' ) { |
139 | print $fh <<__EOF__; |
140 | LIBRARY charconv.lib |
27da23d5 |
141 | LIBRARY hal.lib |
142 | LIBRARY estor.lib |
143 | __EOF__ |
144 | } |
53d44271 |
145 | if ($SDK_VARIANT =~ /^S[689]0$/) { |
25ca88e0 |
146 | print $fh <<__EOF__; |
147 | LIBRARY commonengine.lib |
148 | __EOF__ |
149 | } |
d0d72822 |
150 | if (defined $S60SDK) { |
151 | print $fh <<__EOF__; |
152 | LIBRARY avkon.lib |
153 | LIBRARY commondialogs.lib |
154 | __EOF__ |
155 | } |
53d44271 |
156 | if ((defined $S80SDK) or (defined $S90SDK)) { |
d0d72822 |
157 | print $fh <<__EOF__; |
158 | LIBRARY eikctl.lib |
159 | LIBRARY eikcoctl.lib |
160 | LIBRARY eikdlg.lib |
161 | LIBRARY ckndlg.lib |
162 | __EOF__ |
163 | } |
164 | if (defined $UIQSDK) { |
165 | print $fh <<__EOF__; |
166 | LIBRARY eikctl.lib |
167 | LIBRARY eikcoctl.lib |
168 | LIBRARY eikdlg.lib |
169 | LIBRARY qikctl.lib |
170 | __EOF__ |
171 | } |
27da23d5 |
172 | if ( $type eq 'exe' ) { |
173 | print $fh <<__EOF__; |
174 | STATICLIBRARY ecrt0.lib |
175 | __EOF__ |
176 | } |
177 | if ($miniperl) { |
178 | print $fh <<__EOF__; |
179 | MACRO PERL_MINIPERL |
180 | __EOF__ |
181 | } |
182 | if ($perl) { |
183 | print $fh <<__EOF__; |
184 | MACRO PERL_PERL |
185 | __EOF__ |
186 | } |
187 | print $fh <<__EOF__; |
188 | MACRO PERL_CORE |
189 | MACRO MULTIPLICITY |
190 | MACRO PERL_IMPLICIT_CONTEXT |
191 | __EOF__ |
192 | unless ( $miniperl || $perl ) { |
193 | print $fh <<__EOF__; |
194 | MACRO PERL_GLOBAL_STRUCT |
195 | MACRO PERL_GLOBAL_STRUCT_PRIVATE |
196 | __EOF__ |
7df62229 |
197 | } |
198 | unless ($miniperl || $perl ) { |
199 | if ($SDK_VARIANT eq 'S60' && $S60SDK =~ /^5\./) { |
200 | print $fh "START RESOURCE\tsymbian\\PerlUi.rss\nEND\n"; |
201 | } else { |
202 | print $fh "RESOURCE\tsymbian\\PerlUi.rss"; |
203 | } |
204 | } |
27da23d5 |
205 | close $fh; |
206 | } |
207 | else { |
208 | warn "$0: failed to open $mmp for writing: $!\n"; |
209 | } |
210 | } |
211 | |
212 | sub create_bld_inf { |
213 | if ( open( BLD_INF, ">bld.inf" ) ) { |
214 | print "\tbld.inf\n"; |
215 | push @unclean, "bld.inf"; |
216 | print BLD_INF <<__EOF__; |
217 | PRJ_PLATFORMS |
218 | ${WIN} ${ARM} |
219 | PRJ_MMPFILES |
220 | __EOF__ |
221 | for (@mmp) { print BLD_INF $_, "\n" } |
222 | close BLD_INF; |
223 | } |
224 | else { |
225 | warn "$0: failed to open bld.inf for writing: $!\n"; |
226 | } |
227 | } |
228 | |
229 | my %config; |
230 | |
231 | sub load_config_sh { |
232 | if ( open( CONFIG_SH, "symbian/config.sh" ) ) { |
233 | while (<CONFIG_SH>) { |
234 | if (/^(\w+)=['"]?(.*?)["']?$/) { |
235 | my ( $var, $val ) = ( $1, $2 ); |
236 | $val =~ s/x.y.z/$R_V_SV/gi; |
237 | $val =~ s/thumb/$ARM/gi; |
53d44271 |
238 | $val = "C:$val" if (defined($S90SDK) and ($val =~ /^(\/|\\\\)system[\/\\]/i)); |
27da23d5 |
239 | $val = "'$SYMBIAN_VERSION'" if $var eq 'osvers'; |
240 | $val = "'$SDK_VERSION'" if $var eq 'sdkvers'; |
241 | $config{$var} = $val; |
242 | } |
243 | } |
244 | close CONFIG_SH; |
245 | } |
246 | else { |
247 | warn "$0: failed to open symbian\\config.sh for reading: $!\n"; |
248 | } |
249 | } |
250 | |
251 | sub create_config_h { |
252 | load_config_sh(); |
253 | if ( open( CONFIG_H, ">config.h" ) ) { |
254 | print "\tconfig.h\n"; |
255 | push @unclean, "config.h"; |
256 | if ( open( CONFIG_H_SH, "config_h.SH" ) ) { |
257 | while (<CONFIG_H_SH>) { |
258 | last if /\#ifndef _config_h_/; |
259 | } |
260 | print CONFIG_H <<__EOF__; |
261 | /* |
262 | * Package name : perl |
263 | * Source directory : . |
264 | * Configuration time: |
265 | * Configured by : |
266 | * Target system : symbian |
267 | */ |
268 | |
269 | #ifndef _config_h_ |
270 | __EOF__ |
271 | while (<CONFIG_H_SH>) { |
272 | last if /!GROK!THIS/; |
d0d72822 |
273 | s/\$(\w+)/exists $config{$1} ? $config{$1} : (warn "$0: config.sh missing '$1'\n", "")/eg; |
27da23d5 |
274 | s/^#undef\s+(\S+).+/#undef $1/g; |
275 | s:\Q/**/::; |
276 | print CONFIG_H; |
277 | } |
278 | close CONFIG_H_SH; |
279 | } |
280 | else { |
281 | warn "$0: failed to open ../config_h.SH for reading: $!\n"; |
282 | } |
283 | close CONFIG_H; |
284 | } |
285 | else { |
286 | warn "$0: failed to open config.h for writing: $!\n"; |
287 | } |
288 | } |
289 | |
290 | sub create_DynaLoader_cpp { |
291 | print "\text\\DynaLoader\\DynaLoader.cpp\n"; |
292 | system( |
53d44271 |
293 | q[xsubpp ext\DynaLoader\dl_symbian.xs >ext\DynaLoader\DynaLoader.cpp] |
27da23d5 |
294 | ) == 0 |
295 | or die "$0: creating DynaLoader.cpp failed: $!\n"; |
296 | push @unclean, 'ext\DynaLoader\DynaLoader.cpp'; |
297 | |
298 | } |
299 | |
300 | sub create_symbian_port_h { |
301 | print "\tsymbian\\symbian_port.h\n"; |
302 | if ( open( SYMBIAN_PORT_H, ">symbian/symbian_port.h" ) ) { |
ed76c0e4 |
303 | my ($sdkmajor, $sdkminor); |
304 | if ($SDK_VARIANT eq 'S60') { |
305 | $S60SDK =~ /^(\d+)\.(\d+)$/; |
306 | ($sdkmajor, $sdkminor) = ($1, $2); |
307 | } |
308 | if ($SDK_VARIANT eq 'S80') { |
309 | $S80SDK =~ /^(\d+)\.(\d+)$/; |
310 | ($sdkmajor, $sdkminor) = ($1, $2); |
311 | } |
53d44271 |
312 | if ($SDK_VARIANT eq 'S90') { |
313 | $S90SDK =~ /^(\d+)\.(\d+)$/; |
314 | ($sdkmajor, $sdkminor) = ($1, $2); |
315 | } |
25ca88e0 |
316 | if ($SDK_VARIANT eq 'UIQ') { |
317 | $UIQSDK =~ /^(\d+)\.(\d+)$/; |
318 | ($sdkmajor, $sdkminor) = ($1, $2); |
319 | } |
27da23d5 |
320 | print SYMBIAN_PORT_H <<__EOF__; |
321 | /* Copyright (c) 2004-2005, Nokia. All rights reserved. */ |
322 | |
323 | #ifndef __symbian_port_h__ |
324 | #define __symbian_port_h__ |
325 | |
326 | #define PERL_SYMBIANPORT_MAJOR $PORT{dll}->{MAJOR} |
327 | #define PERL_SYMBIANPORT_MINOR $PORT{dll}->{MINOR} |
328 | #define PERL_SYMBIANPORT_PATCH $PORT{dll}->{PATCH} |
329 | |
ed76c0e4 |
330 | #define PERL_SYMBIANSDK_FLAVOR L"$SDK_VARIANT" |
27da23d5 |
331 | #define PERL_SYMBIANSDK_MAJOR $sdkmajor |
332 | #define PERL_SYMBIANSDK_MINOR $sdkminor |
333 | |
334 | #endif /* #ifndef __symbian_port_h__ */ |
335 | __EOF__ |
336 | close(SYMBIAN_PORT_H); |
337 | push @unclean, 'symbian\symbian_port.h'; |
338 | } |
339 | else { |
340 | warn "$0: failed to open symbian/symbian_port.h for writing: $!\n"; |
341 | } |
342 | } |
343 | |
344 | sub create_perlmain_c { |
345 | print "\tperlmain.c\n"; |
346 | system( |
53d44271 |
347 | q[perl -ne "print qq[ char *file = __FILE__;\n] if /dXSUB_SYS/;print unless /PERL_UNUSED_CONTEXT/;print qq[ newXS(\"DynaLoader::boot_DynaLoader\", boot_DynaLoader, file);\n] if /dXSUB_SYS/;print qq[EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);\n] if /Do not delete this line/" miniperlmain.c > perlmain.c] |
27da23d5 |
348 | ) == 0 |
349 | or die "$0: Creating perlmain.c failed: $!\n"; |
350 | push @unclean, 'perlmain.c'; |
351 | } |
352 | |
353 | sub create_PerlApp_pkg { |
354 | print "\tsymbian\\PerlApp.pkg\n"; |
355 | if ( open( PERLAPP_PKG, ">symbian\\PerlApp.pkg" ) ) { |
ed76c0e4 |
356 | my $ProductId = |
357 | defined $S60SDK ? |
358 | qq[;Supports Series 60 v0.9\n(0x101F6F88), 0, 0, 0, {"Series60ProductID"}\n] : |
359 | defined $S80SDK ? |
360 | qq[;Supports Series 80 v2.0\n(0x101F8ED2), 0, 0, 0, {"Series80ProductID"}\n] : |
53d44271 |
361 | defined $S90SDK ? |
362 | qq[;Supports Series 90 v1.1\n(0x101FBE05), 0, 0, 0, {"Series90ProductID"}\n] : |
25ca88e0 |
363 | defined $UIQSDK && $SDK_VERSION =~ /^(\d)\.(\d)$/ ? |
364 | qq[;Supports UIQ v2.1\n(0x101F617B), $1, $2, 0, {"UIQ21ProductID"}\n] : |
ed76c0e4 |
365 | ";Supports Series NN"; |
27da23d5 |
366 | my $APPS = $UREL; |
53d44271 |
367 | if (($SDK_VARIANT eq 'S60' && $SDK_VERSION ne '1.2' || $WIN eq 'winscw') || defined $S80SDK || defined $S90SDK) { # Do only if not in S60 1.2 VC. |
27da23d5 |
368 | $APPS =~ s!\\epoc32\\release\\(.+)\\$UARM$!\\epoc32\\data\\z\\system\\apps\\PerlApp!i; |
369 | } |
db5886f1 |
370 | # TODO: in S60 3.0 there will be no more recognizers. |
ed76c0e4 |
371 | my $mdl = qq["$UREL\\PerlRecog.mdl"-"!:\\system\\recogs\\PerlRecog.mdl";]; |
53d44271 |
372 | my $AIF = $SDK_VARIANT =~ /^S[689]0/ ? qq["$APPS\\PerlApp.aif"-"!:\\system\\apps\\PerlApp\\PerlApp.aif"] : ""; |
27da23d5 |
373 | print PERLAPP_PKG <<__EOF__; |
374 | ; !!!!!! DO NOT EDIT THIS FILE !!!!!! |
375 | ; This file is built by symbian\\config.pl. |
376 | ; Any changes made here will be lost! |
377 | ; |
378 | ; PerlApp.pkg |
379 | ; |
380 | ; Note that the demo_pl needs to be run to create the demo .pl scripts. |
381 | ; |
382 | ; Languages |
383 | &EN; |
384 | |
385 | ; Standard SIS file header |
f26f4a2f |
386 | #{"PerlApp"},(0x102015F6),0,2,0 |
27da23d5 |
387 | |
ed76c0e4 |
388 | $ProductId |
27da23d5 |
389 | |
390 | ; Files |
391 | "$UREL\\PerlApp.APP"-"!:\\system\\apps\\PerlApp\\PerlApp.app" |
ed76c0e4 |
392 | $mdl |
27da23d5 |
393 | "$APPS\\PerlApp.rsc"-"!:\\system\\apps\\PerlApp\\PerlApp.rsc" |
db5886f1 |
394 | $AIF |
27da23d5 |
395 | __EOF__ |
396 | if ( open( DEMOS, "perl symbian\\demo_pl list |" ) ) { |
397 | while (<DEMOS>) { |
398 | chomp; |
53d44271 |
399 | if (defined $S90SDK) { |
400 | print PERLAPP_PKG qq["$_"-"!:\\Mydocs\\Perl\\$_"\n]; |
401 | } else { |
402 | print PERLAPP_PKG qq["$_"-"!:\\Perl\\$_"\n]; |
403 | } |
27da23d5 |
404 | } |
405 | close(DEMOS); |
406 | } |
407 | close(PERLAPP_PKG); |
408 | } |
409 | else { |
410 | die "$0: symbian\\PerlApp.pkg: $!\n"; |
411 | } |
412 | push @unclean, 'symbian\PerlApp.pkg'; |
413 | } |
414 | |
415 | print "Creating...\n"; |
416 | create_mmp( |
417 | 'miniperl', 'exe', |
418 | 'miniperlmain.c', 'symbian\symbian_stubs.c', |
c8f896e5 |
419 | 'symbian\PerlBase.cpp', |
d0d72822 |
420 | 'symbian\PerlUi.cpp', |
c8f896e5 |
421 | 'symbian\PerlUtil.cpp', |
422 | 'symbian\symbian_utils.cpp', |
27da23d5 |
423 | ); |
424 | create_mmp( |
425 | "perl", 'exe', |
426 | 'perlmain.c', 'symbian\symbian_stubs.c', |
d0d72822 |
427 | 'symbian\symbian_utils.cpp', |
428 | 'symbian\PerlBase.cpp', |
429 | 'symbian\PerlUi.cpp', |
c8f896e5 |
430 | 'symbian\PerlUtil.cpp', |
27da23d5 |
431 | 'ext\DynaLoader\DynaLoader.cpp', |
432 | ); |
433 | |
434 | create_mmp( |
435 | "perl$VERSION", 'dll', |
436 | 'symbian\symbian_dll.cpp', 'symbian\symbian_stubs.c', |
d0d72822 |
437 | 'symbian\symbian_utils.cpp', |
438 | 'symbian\PerlBase.cpp', |
439 | 'symbian\PerlUi.cpp', |
c8f896e5 |
440 | 'symbian\PerlUtil.cpp', |
27da23d5 |
441 | 'ext\DynaLoader\DynaLoader.cpp', |
442 | ); |
443 | |
444 | create_bld_inf(); |
445 | create_config_h(); |
446 | create_perlmain_c(); |
447 | create_symbian_port_h(); |
448 | create_DynaLoader_cpp(); |
449 | create_PerlApp_pkg(); |
450 | |
451 | if ( open( PERLAPP_MMP, ">symbian/PerlApp.mmp" ) ) { |
452 | my @MACRO; |
ed76c0e4 |
453 | my @LIB; |
d0d72822 |
454 | push @MACRO, 'PERL_IMPLICIT_CONTEXT'; |
455 | push @MACRO, 'MULTIPLICITY'; |
ed76c0e4 |
456 | if (defined $S60SDK) { |
457 | push @MACRO, '__SERIES60__'; |
458 | push @MACRO, '__SERIES60_1X__' if $S60SDK =~ /^1\./; |
459 | push @MACRO, '__SERIES60_2X__' if $S60SDK =~ /^2\./; |
460 | push @LIB, <<__EOF__; |
461 | LIBRARY avkon.lib |
462 | LIBRARY commondialogs.lib |
463 | __EOF__ |
464 | } |
465 | if (defined $S80SDK) { |
466 | push @MACRO, '__SERIES80__'; |
467 | push @MACRO, '__SERIES80_1X__' if $S80SDK =~ /^1\./; |
468 | push @MACRO, '__SERIES80_2X__' if $S80SDK =~ /^2\./; |
469 | push @LIB, <<__EOF__; |
470 | LIBRARY eikctl.lib |
471 | LIBRARY eikcoctl.lib |
c7a4d1c0 |
472 | LIBRARY eikdlg.lib |
ed76c0e4 |
473 | LIBRARY ckndlg.lib |
474 | __EOF__ |
475 | } |
53d44271 |
476 | if (defined $S90SDK) { |
477 | push @MACRO, '__SERIES90__'; |
478 | push @LIB, <<__EOF__; |
479 | LIBRARY eikctl.lib |
480 | LIBRARY eikcoctl.lib |
481 | LIBRARY eikdlg.lib |
482 | LIBRARY ckndlg.lib |
483 | __EOF__ |
484 | } |
25ca88e0 |
485 | if (defined $UIQSDK) { |
486 | push @MACRO, '__UIQ__'; |
487 | push @MACRO, '__UIQ_1X__' if $UIQSDK =~ /^1\./; |
488 | push @MACRO, '__UIQ_2X__' if $UIQSDK =~ /^2\./; |
489 | push @LIB, <<__EOF__; |
490 | LIBRARY eikctl.lib |
491 | LIBRARY eikcoctl.lib |
492 | LIBRARY eikdlg.lib |
493 | LIBRARY qikctl.lib |
494 | __EOF__ |
495 | } |
27da23d5 |
496 | print PERLAPP_MMP <<__EOF__; |
497 | // !!!!!! DO NOT EDIT THIS FILE !!!!!! |
498 | // This file is built by symbian\\config.pl. |
499 | // Any changes made here will be lost! |
500 | TARGET PerlApp.app |
501 | TARGETTYPE app |
502 | UID 0x100039CE 0x102015F6 |
503 | TARGETPATH \\system\\apps\\PerlApp |
504 | SRCDBG |
505 | EXPORTUNFROZEN |
506 | SOURCEPATH . |
507 | SOURCE PerlApp.cpp |
508 | |
27da23d5 |
509 | USERINCLUDE . |
510 | USERINCLUDE .. |
511 | USERINCLUDE \\symbian\\perl\\$R_V_SV\\include |
512 | |
513 | SYSTEMINCLUDE \\epoc32\\include |
514 | SYSTEMINCLUDE \\epoc32\\include\\libc |
515 | |
516 | LIBRARY apparc.lib |
27da23d5 |
517 | LIBRARY bafl.lib |
518 | LIBRARY charconv.lib |
d0d72822 |
519 | LIBRARY cone.lib |
27da23d5 |
520 | LIBRARY efsrv.lib |
d0d72822 |
521 | LIBRARY eikcore.lib |
27da23d5 |
522 | LIBRARY estlib.lib |
523 | LIBRARY euser.lib |
524 | LIBRARY perl$VERSION.lib |
ed76c0e4 |
525 | @LIB |
d0d72822 |
526 | RESOURCE perlapp.rss |
27da23d5 |
527 | __EOF__ |
528 | if (@MACRO) { |
529 | for my $macro (@MACRO) { |
530 | print PERLAPP_MMP <<__EOF__; |
531 | MACRO $macro |
532 | __EOF__ |
533 | } |
534 | } |
53d44271 |
535 | if ($SDK_VARIANT =~ /^S[689]0$/) { |
25ca88e0 |
536 | print PERLAPP_MMP <<__EOF__; |
537 | AIF PerlApp.aif . PerlAppAif.rss |
538 | __EOF__ |
539 | } |
27da23d5 |
540 | close(PERLAPP_MMP); |
541 | push @unclean, 'symbian\PerlApp.mmp'; |
542 | } |
543 | else { |
544 | warn "$0: failed to create symbian\\PerlApp.mmp"; |
545 | } |
546 | |
547 | if ( open( MAKEFILE, ">Makefile" ) ) { |
548 | my $perl = "perl$VERSION"; |
ed76c0e4 |
549 | my $windef1 = "$SYMBIAN_ROOT\\Epoc32\\Build$CWD\\$perl\\$WIN\\$perl.def"; |
27da23d5 |
550 | my $windef2 = "..\\BWINS\\${perl}u.def"; |
ed76c0e4 |
551 | my $armdef1 = "$SYMBIAN_ROOT\\Epoc32\\Build$CWD\\$perl\\$ARM\\$perl.def"; |
27da23d5 |
552 | my $armdef2 = "..\\BMARM\\${perl}u.def"; |
d0d72822 |
553 | my $MF = $WIN eq 'wins' ? 'vc6' : $WIN eq 'winscw' ? 'cw_ide' : "UNKNOWN"; |
27da23d5 |
554 | print "\tMakefile\n"; |
555 | print MAKEFILE <<__EOF__; |
556 | help: |
557 | \@echo === Perl for Symbian === |
558 | \@echo Useful targets: |
559 | \@echo all win arm clean |
560 | \@echo perldll.sis perlext.sis perlsdk.zip |
561 | |
562 | WIN = ${WIN} |
563 | ARM = ${ARM} |
564 | |
565 | all: build |
566 | |
ed76c0e4 |
567 | build: rename_makedef build_${WIN} build_arm |
27da23d5 |
568 | |
569 | @unclean: symbian\\config.pl |
570 | perl symbian\\config.pl |
571 | |
d0d72822 |
572 | build_${WIN}: abld.bat perldll_${WIN} |
ed76c0e4 |
573 | |
d0d72822 |
574 | build_vc6: abld.bat perldll_wins |
27da23d5 |
575 | |
d0d72822 |
576 | build_vc7: abld.bat perldll_wins |
c7a4d1c0 |
577 | |
d0d72822 |
578 | build_cw: abld.bat perldll_winscw |
27da23d5 |
579 | |
d0d72822 |
580 | build_arm: abld.bat perl_arm miniperl_arm perldll_arm |
27da23d5 |
581 | |
d0d72822 |
582 | miniperl_win miniperl_${WIN}: miniperl.mmp abld.bat rename_makedef |
ed76c0e4 |
583 | abld build ${WIN} udeb miniperl |
27da23d5 |
584 | |
d0d72822 |
585 | miniperl_arm: miniperl.mmp abld.bat rename_makedef |
27da23d5 |
586 | abld build \$(ARM) $UARM miniperl |
587 | |
ed76c0e4 |
588 | miniperl: miniperl_${WIN} miniperl_arm |
27da23d5 |
589 | |
ed76c0e4 |
590 | perl: perl_${WIN} perl_arm |
27da23d5 |
591 | |
d0d72822 |
592 | perl_win perl_${WIN}: perl.mmp abld.bat rename_makedef |
ed76c0e4 |
593 | abld build ${WIN} perl |
27da23d5 |
594 | |
d0d72822 |
595 | perl_arm: perl.mmp abld.bat rename_makedef |
27da23d5 |
596 | abld build \$(ARM) $UARM perl |
597 | |
ed76c0e4 |
598 | perldll_win perldll_${WIN}: perl${VERSION}_${WIN} freeze_${WIN} perl${VERSION}_${WIN} |
27da23d5 |
599 | |
ed76c0e4 |
600 | perl${VERSION}_win perl${VERSION}_${WIN}: perl$VERSION.mmp abld.bat rename_makedef |
601 | abld build ${WIN} perl$VERSION |
27da23d5 |
602 | |
603 | perldll_arm: perl${VERSION}_arm freeze_arm perl${VERSION}_arm |
604 | |
d0d72822 |
605 | perl${VERSION}_arm: perl$VERSION.mmp abld.bat rename_makedef |
27da23d5 |
606 | abld build \$(ARM) $UARM perl$VERSION |
607 | |
ed76c0e4 |
608 | perldll perl$VERSION: perldll_${WIN} perldll_arm |
27da23d5 |
609 | |
ed76c0e4 |
610 | win ${WIN}: miniperl_${WIN} perl_${WIN} perldll_${WIN} |
27da23d5 |
611 | |
ed76c0e4 |
612 | thumb arm: miniperl_arm perl_arm perldll_arm |
27da23d5 |
613 | |
614 | rename_makedef: |
615 | -ren makedef.pl nomakedef.pl |
616 | |
617 | # Symbian SDK has a makedef.pl of its own, |
618 | # and we don't need Perl's. |
619 | rerename_makedef: |
620 | -ren nomakedef.pl makedef.pl |
621 | |
d0d72822 |
622 | symbian\\PerlUi.rss: symbian\\PerlUi$SDK_VARIANT.rss |
623 | copy symbian\\PerlUi$SDK_VARIANT.rss symbian\\PerlUi.rss |
27da23d5 |
624 | |
d0d72822 |
625 | abld.bat abld: bld.inf symbian\\PerlUi.rss |
626 | bldmake bldfiles |
27da23d5 |
627 | |
628 | vc6: win.mf vc6.mf build_vc6 |
629 | |
c7a4d1c0 |
630 | vc7: win.mf vc7.mf build_vc7 |
631 | |
ed76c0e4 |
632 | cw: win.mf cw.mf build_cw |
27da23d5 |
633 | |
ed76c0e4 |
634 | ${WIN}_miniperl.mf: abld.bat symbian\\config.pl |
d0d72822 |
635 | abld makefile ${MF} miniperl |
ed76c0e4 |
636 | echo > ${WIN}_miniperl.mf |
27da23d5 |
637 | |
ed76c0e4 |
638 | ${WIN}_perl.mf: abld.bat symbian\\config.pl |
d0d72822 |
639 | abld makefile ${MF} perl |
ed76c0e4 |
640 | echo > ${WIN}_perl.mf |
27da23d5 |
641 | |
ed76c0e4 |
642 | ${WIN}_${VERSION}.mf: abld.bat symbian\\config.pl |
d0d72822 |
643 | abld makefile ${MF} perl${VERSION} |
ed76c0e4 |
644 | echo > ${WIN}_${VERSION}.mf |
27da23d5 |
645 | |
ed76c0e4 |
646 | symbian\\${WIN}.mf: |
647 | cd symbian; make ${WIN}.mf |
648 | |
649 | ${WIN}.mf: ${WIN}_miniperl.mf ${WIN}_perl.mf ${WIN}_${VERSION}.mf symbian\\${WIN}.mf |
27da23d5 |
650 | |
651 | arm_miniperl.mf: abld.bat symbian\\config.pl |
27da23d5 |
652 | echo > arm_miniperl.mf |
653 | |
654 | arm_perl.mf: abld.bat symbian\\config.pl |
27da23d5 |
655 | echo > arm_perl.mf |
656 | |
657 | arm_${VERSION}.mf: abld.bat symbian\\config.pl |
27da23d5 |
658 | echo > arm_${VERSION}.mf |
659 | |
660 | arm.mf: arm_miniperl.mf arm_perl.mf arm_${VERSION}.mf |
661 | |
ed76c0e4 |
662 | win.mf: vc6.mf cw.mf |
663 | echo > win.mf |
664 | |
27da23d5 |
665 | vc6.mf: abld.bat symbian\\config.pl |
666 | abld makefile vc6 |
667 | echo > vc6.mf |
668 | |
c7a4d1c0 |
669 | vc7.mf: abld.bat symbian\\config.pl |
670 | abld makefile vc7 |
671 | echo > vc7.mf |
672 | |
ed76c0e4 |
673 | cw.mf: abld.bat symbian\\config.pl |
674 | abld makefile cw_ide |
675 | echo > cw.mf |
676 | |
27da23d5 |
677 | PM = lib\\Config.pm lib\\Cross.pm lib\\lib.pm ext\\DynaLoader\\DynaLoader.pm ext\\DynaLoader\\XSLoader.pm ext\\Errno\\Errno.pm |
678 | POD = lib\\Config.pod |
679 | |
680 | pm: \$(PM) |
681 | |
682 | XLIB = -Ixlib\\symbian |
683 | |
684 | XSBOPT = --win=\$(WIN) --arm=\$(ARM) |
685 | |
686 | lib\\Config.pm: |
687 | copy symbian\\config.sh config.sh |
53d44271 |
688 | __EOF__ |
689 | if (defined $S90SDK) { |
690 | print MAKEFILE <<__EOF__; |
691 | perl -pi.bak -e "s:x\\.y\\.z+:$R_V_SV:g; s!='(\\\\\\\\system)!='C:\\1!" config.sh |
692 | __EOF__ |
693 | } else { |
694 | print MAKEFILE <<__EOF__; |
27da23d5 |
695 | perl -pi.bak -e "s:x\\.y\\.z+:$R_V_SV:g" config.sh |
53d44271 |
696 | __EOF__ |
697 | }; |
698 | print MAKEFILE <<__EOF__; |
27da23d5 |
699 | perl \$(XLIB) configpm --cross=symbian |
700 | copy xlib\\symbian\\Config.pm lib\\Config.pm |
701 | perl -pi.bak -e "s:x\\.y\\.z:$R_V_SV:g" lib\\Config.pm |
702 | perl -pi.bak -e "s:5\\.\\d+\\.\\d+:$R_V_SV:g" lib\\Config.pm |
703 | -perl -pi.bak -e "s:x\\.y\\.z:$R_V_SV:g" xlib\\symbian\\Config_heavy.pl |
704 | |
705 | lib\\lib.pm: |
706 | perl lib\\lib_pm.PL |
707 | |
708 | ext\\DynaLoader\\DynaLoader.pm: |
709 | -del /f ext\\DynaLoader\\DynaLoader.pm |
710 | perl -Ixlib\\symbian ext\\DynaLoader\\DynaLoader_pm.PL |
711 | perl -pi.bak -e "s/__END__//" DynaLoader.pm |
712 | copy /y DynaLoader.pm ext\\DynaLoader\\DynaLoader.pm |
713 | -del /f DynaLoader.pm DynaLoader.pm.bak |
714 | |
715 | ext\\DynaLoader\\XSLoader.pm: |
716 | perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) XSLoader |
717 | |
718 | ext\\Errno\\Errno.pm: |
719 | perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) Errno |
720 | |
721 | miniperlexe.sis: miniperl_arm symbian\\makesis.pl |
722 | perl \$(XLIB) symbian\\makesis.pl miniperl |
723 | |
724 | perlexe.sis: perl_arm symbian\\makesis.pl |
725 | perl \$(XLIB) symbian\\makesis.pl perl |
726 | |
727 | |
728 | allsis: all miniperlexe.sis perlexe.sis perldll.sis perllib.sis perlext.sis perlapp.sis |
729 | |
730 | perldll.sis perl$VERSION.sis: perldll_arm pm symbian\\makesis.pl |
731 | perl \$(XLIB) symbian\\makesis.pl perl${VERSION}dll |
732 | |
c8f896e5 |
733 | perl${VERSION}lib.sis perllib.sis: \$(PM) |
27da23d5 |
734 | perl \$(XLIB) symbian\\makesis.pl perl${VERSION}lib |
735 | |
c8f896e5 |
736 | perl${VERSION}ext.sis perlext.sis: perldll_arm buildext_sis |
27da23d5 |
737 | perl symbian\\makesis.pl perl${VERSION}ext |
738 | |
48462a74 |
739 | EXT = Compress::Raw::Zlib Cwd Data::Dumper Devel::Peek Digest::MD5 Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 PerlIO::scalar PerlIO::via SDBM_File Socket Storable Time::HiRes XSLoader attributes |
27da23d5 |
740 | |
c042ae3a |
741 | buildext: perldll symbian\\xsbuild.pl lib\\Config.pm |
27da23d5 |
742 | perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) \$(EXT) |
743 | |
25ca88e0 |
744 | buildextcpp: perldll symbian\\xsbuild.pl lib\\Config.pm |
745 | perl \$(XLIB) symbian\\xsbuild.pl --csuffix .cpp \$(XSBOPT) \$(EXT) |
746 | |
c042ae3a |
747 | buildext_sis: perldll.sis symbian\\xsbuild.pl lib\\Config.pm |
27da23d5 |
748 | perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) --sis \$(EXT) |
749 | |
25ca88e0 |
750 | buildextcpp_sis: perldll.sis symbian\\xsbuild.pl lib\\Config.pm |
751 | perl \$(XLIB) symbian\\xsbuild.pl --csuffix .cpp \$(XSBOPT) --sis \$(EXT) |
752 | |
27da23d5 |
753 | cleanext: symbian\\xsbuild.pl |
754 | perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) --clean \$(EXT) |
755 | |
756 | distcleanext: symbian\\xsbuild.pl |
757 | perl \$(XLIB) symbian\\xsbuild.pl \$(XSBOPT) --distclean \$(EXT) |
758 | |
759 | sis makesis: miniperl perl perldll pm buildext perlapp.sis |
760 | perl \$(XLIB) symbian\\makesis.pl |
761 | |
762 | APIDIR = \\Symbian\\perl\\$R_V_SV |
763 | |
764 | sdkinstall: |
765 | -mkdir \\Symbian\\perl |
766 | -mkdir \\Symbian\\perl\\$R_V_SV |
767 | -mkdir \$(APIDIR)\\include |
768 | -mkdir \$(APIDIR)\\include\\symbian |
769 | -mkdir \$(APIDIR)\\lib |
770 | -mkdir \$(APIDIR)\\lib\\ExtUtils |
771 | -mkdir \$(APIDIR)\\pod |
772 | -mkdir \$(APIDIR)\\bin |
773 | -mkdir \$(BINDIR) |
774 | copy /y *.h \$(APIDIR)\\include |
25ca88e0 |
775 | -copy /y *.inc \$(APIDIR)\\include |
27da23d5 |
776 | copy /y lib\\ExtUtils\\xsubpp \$(APIDIR)\\lib\\ExtUtils |
777 | copy /y lib\\ExtUtils\\typemap \$(APIDIR)\\lib\\ExtUtils |
c8f896e5 |
778 | copy /y lib\\ExtUtils\\ParseXS.pm \$(APIDIR)\\lib\\ExtUtils |
27da23d5 |
779 | copy /y symbian\\xsbuild.pl \$(APIDIR)\\bin |
c8f896e5 |
780 | copy /y symbian\\sisify.pl \$(APIDIR)\\bin |
27da23d5 |
781 | copy /y symbian\\PerlBase.h \$(APIDIR)\\include |
d0d72822 |
782 | copy /y symbian\\PerlUi.h \$(APIDIR)\\include |
c8f896e5 |
783 | copy /y symbian\\PerlUtil.h \$(APIDIR)\\include |
27da23d5 |
784 | copy /y symbian\\symbian*.h \$(APIDIR)\\include\\symbian |
785 | copy /y symbian\\PerlBase.pod \$(APIDIR)\\pod |
c8f896e5 |
786 | copy /y symbian\\PerlUtil.pod \$(APIDIR)\\pod |
27da23d5 |
787 | |
ed76c0e4 |
788 | RELDIR = $SYMBIAN_ROOT\\epoc32\\release |
27da23d5 |
789 | RELWIN = \$(RELDIR)\\\$(WIN)\\udeb |
790 | RELARM = \$(RELDIR)\\\$(ARM)\\$UARM |
c8f896e5 |
791 | SDKZIP = perl${VERSION}sdk.zip |
27da23d5 |
792 | |
c8f896e5 |
793 | |
794 | \$(SDKZIP) perlsdk.zip: perldll sdkinstall |
795 | -del /f perl${VERSION}sdk.zip |
27da23d5 |
796 | zip -r perl${VERSION}sdk.zip \$(RELWIN)\\perl$VERSION.* \$(RELARM)\\perl$VERSION.* \$(APIDIR) |
797 | \@echo perl${VERSION}sdk.zip created. |
798 | |
c8f896e5 |
799 | PERLSIS = perl${VERSION}.SIS perl${VERSION}lib.SIS perl${VERSION}ext.SIS |
800 | ALLSIS = \$(PERLSIS) perlapp.sis |
801 | ETC = README.symbian symbian\\PerlBase.pod symbian\\PerlUtil.pod symbian\\sisify.pl symbian\\TODO |
802 | |
803 | perl${VERSION}dist.zip perldist.zip: \$(ALLSIS) \$(SDKZIP) \$(ETC) |
804 | -del /f perl${VERSION}dist.zip |
805 | zip -r perl${VERSION}dist.zip \$(ALLSIS) \$(SDKZIP) \$(ETC) |
806 | |
ed76c0e4 |
807 | perlapp: sdkinstall perlapp_${WIN} perlapp_arm |
27da23d5 |
808 | |
c7a4d1c0 |
809 | perlapp_arm_minimal sisify_hex perlappmin.hex perlrscmin.hex: sdkinstall config.h |
810 | cd symbian; make perlapp_arm USERDEFS=-DCreatePerlAppMinimal |
811 | perl symbian\\hexdump.pl |
812 | |
ed76c0e4 |
813 | perlapp_win perlapp_${WIN}: config.h |
814 | cd symbian; make perlapp_${WIN} |
27da23d5 |
815 | |
816 | perlapp_arm: config.h |
817 | cd symbian; make perlapp_arm |
818 | |
c7a4d1c0 |
819 | perlapp_arm_clean: |
820 | cd symbian; make clean |
821 | |
27da23d5 |
822 | perlapp_demo_extract: |
823 | cd symbian; make perlapp_demo_extract |
824 | |
825 | perlapp.sis: perlapp_arm |
826 | cd symbian; make perlapp.sis |
827 | |
828 | perlapp.zip: |
c8f896e5 |
829 | cd symbian; zip perlapp.zip PerlApp.* PerlRecog.* PerlBase.* PerlUtil.* demo_pl |
27da23d5 |
830 | |
831 | zip: perlsdk.zip perlapp.zip |
832 | |
ed76c0e4 |
833 | freeze: freeze_${WIN} freeze_arm |
27da23d5 |
834 | |
ed76c0e4 |
835 | freeze_${WIN}: |
836 | abld freeze ${WIN} perl$VERSION |
27da23d5 |
837 | |
838 | freeze_arm: |
839 | abld freeze \$(ARM) perl$VERSION |
840 | |
ed76c0e4 |
841 | defrost: defrost_${WIN} defrost_arm |
27da23d5 |
842 | |
ed76c0e4 |
843 | defrost_${WIN}: |
27da23d5 |
844 | -del /f $windef1 |
845 | -del /f $windef2 |
846 | |
847 | defrost_arm: |
848 | -del /f $armdef1 |
849 | -del /f $armdef2 |
850 | |
ed76c0e4 |
851 | clean_${WIN}: abld.bat |
852 | abld clean ${WIN} |
27da23d5 |
853 | |
854 | clean_arm: abld.bat |
855 | abld clean \$(ARM) |
856 | |
ed76c0e4 |
857 | clean: clean_${WIN} clean_arm rerename_makedef |
27da23d5 |
858 | -del /f \$(PM) |
859 | -del /f \$(POD) |
860 | -del /f lib\\Config.pm.bak |
861 | -del /f xlib\\symbian\\Config_heavy.pl |
862 | -rmdir /s /q xlib |
863 | -del /f config.sh |
864 | -del /f DynaLoader.pm ext\\DynaLoader\\DynaLoader.pm |
865 | -del /f ext\\DynaLoader\\Makefile |
866 | -del /f ext\\SDBM_File\\sdbm\\Makefile |
867 | -del /f symbian\\*.lst |
868 | -del /f abld.bat @unclean *.pkg *.sis *.zip |
869 | -del /f symbian\\abld.bat symbian\\*.sis symbian\\*.zip |
870 | -del /f symbian\\perl5*.pkg symbian\\miniperl.pkg |
c7a4d1c0 |
871 | -del arm_*.mf ${WIN}_*.mf vc*.mf cw*.mf |
db5886f1 |
872 | -del symbian\\Makefile |
873 | -del symbian\\PerlUi.rss symbian\\PerlApp.rss |
c7a4d1c0 |
874 | -del perlappmin.hex perlrscmin.hex |
27da23d5 |
875 | -perl symbian\\xsbuild.pl \$(XSBOPT) --clean \$(EXT) |
876 | -rmdir /s /q perl${VERSION}_Data |
877 | -cd symbian; make clean |
878 | |
879 | reallyclean: abld.bat |
880 | abld reallyclean |
881 | |
882 | distclean: defrost reallyclean clean |
883 | -perl symbian\\xsbuild.pl \$(XSBOPT) --distclean \$(EXT) |
884 | -del /f config.h config.sh.bak symbian\\symbian_port.h |
885 | -del /f Makefile symbian\\PerlApp.mmp |
886 | -del /f BMARM\\*.def |
887 | -del /f *.cwlink *.resources *.pref |
888 | -del /f perl${VERSION}.xml perl${VERSION}.mcp uid.cpp |
889 | -rmdir /s /q BMARM |
890 | cd symbian; make distclean |
891 | -del /f symbian\\Makefile |
892 | __EOF__ |
893 | close MAKEFILE; |
894 | } |
895 | else { |
896 | warn "$0: failed to create Makefile: $!\n"; |
897 | } |
898 | |
899 | if ( open( MAKEFILE, ">symbian/Makefile")) { |
ed76c0e4 |
900 | my $wrap = defined $S60SDK && $S60SDK eq '1.2' && $WIN ne '${WIN}cw'; |
27da23d5 |
901 | my $ABLD = $wrap ? 'perl b.pl': 'abld'; |
902 | print "\tsymbian/Makefile\n"; |
d0d72822 |
903 | my $MF = $WIN eq 'wins' ? 'vc6' : $WIN eq 'winscw' ? 'cw_ide' : "UNKNOWN"; |
27da23d5 |
904 | print MAKEFILE <<__EOF__; |
905 | WIN = $WIN |
906 | ARM = $ARM |
907 | ABLD = $ABLD |
d0d72822 |
908 | MF = $MF |
27da23d5 |
909 | |
910 | abld.bat: |
911 | bldmake bldfiles |
912 | |
ed76c0e4 |
913 | perlapp_${WIN}: abld.bat ..\\config.h PerlApp.h PerlApp.cpp |
d0d72822 |
914 | copy PerlUi$SDK_VARIANT.rss PerlApp.rss |
27da23d5 |
915 | bldmake bldfiles |
ed76c0e4 |
916 | \$(ABLD) build ${WIN} udeb |
27da23d5 |
917 | |
918 | perlapp_arm: ..\\config.h PerlApp.h PerlApp.cpp |
d0d72822 |
919 | copy PerlUi$SDK_VARIANT.rss PerlApp.rss |
27da23d5 |
920 | bldmake bldfiles |
ed76c0e4 |
921 | \$(ABLD) build ${ARM} $UARM |
27da23d5 |
922 | |
d0d72822 |
923 | $MF: |
924 | abld makefile $MF |
925 | |
27da23d5 |
926 | win.mf: |
927 | bldmake bldfiles |
d0d72822 |
928 | abld makefile $MF |
27da23d5 |
929 | |
930 | perlapp_demo_extract: |
931 | perl demo_pl extract |
932 | |
933 | perlapp.sis: perlapp_arm perlapp_demo_extract |
934 | -del /f perlapp.SIS |
935 | makesis perlapp.pkg |
936 | copy /y perlapp.SIS ..\\perlapp.SIS |
937 | |
938 | clean: |
939 | -perl demo_pl cleanup |
940 | -del /f perlapp.sis |
941 | -del /f b.pl |
d0d72822 |
942 | -del PerlApp.rss |
c7a4d1c0 |
943 | abld clean $WIN |
944 | abld clean thumb |
db5886f1 |
945 | -del Makefile |
27da23d5 |
946 | |
947 | distclean: clean |
948 | -del /f *.cwlink *.resources *.pref |
949 | -del /f PerlApp.xml PerlApp.mcp uid.cpp |
950 | -rmdir /s /q PerlApp_Data |
951 | -del /f abld.bat |
952 | __EOF__ |
953 | close(MAKEFILE); |
954 | if ($wrap) { |
955 | if ( open( B_PL, ">symbian/b.pl")) { |
956 | print B_PL <<'__EOF__'; |
957 | # abld.pl wrapper. |
958 | |
959 | # nmake doesn't like MFLAGS and MAKEFLAGS being set to -w and w. |
960 | delete $ENV{MFLAGS}; |
961 | delete $ENV{MAKEFLAGS}; |
962 | |
963 | system("abld @ARGV"); |
964 | __EOF__ |
965 | close(B_PL); |
966 | } else { |
967 | warn "$0: failed to create symbian/b.pl: $!\n"; |
968 | } |
969 | } |
970 | } else { |
971 | warn "$0: failed to create symbian/Makefile: $!\n"; |
972 | } |
973 | |
974 | print "Deleting...\n"; |
975 | for my $config ( |
976 | # Do not delete config.h here. |
977 | "config.sh", |
978 | "lib\\Config.pm", |
979 | "xlib\\symbian\\Config.pm", |
980 | "xlib\\symbian\\Config_heavy.pl", |
db5886f1 |
981 | "symbian\\PerlUi.rss", |
982 | "symbian\\PerlApp.rss", |
27da23d5 |
983 | ) { |
984 | print "\t$config\n"; |
985 | unlink($config); |
986 | } |
987 | |
988 | print <<__EOM__; |
989 | Configuring done. |
990 | Now you can run: |
991 | make all |
992 | make allsis |
993 | __EOM__ |
994 | |
995 | 1; # Happy End. |