6339c10b3c913078bb10450db8e0a4289512c605
[p5sagit/p5-mst-13.2.git] / wince / Makefile.ce
1 # perl makefile for wince
2 #
3 # Time-stamp: <26/10/01 15:10:06 keuchel@keuchelnt>
4
5 SRCDIR     = ..
6 PV         = 59
7 INST_VER   = 5.9.0
8
9 # INSTALL_ROOT specifies a path where this perl will be installed on CE device
10 INSTALL_ROOT=/netzwerk/sprache/perl
11 INST_TOP=$(INSTALL_ROOT)
12 INST_VER=
13
14 # PERLCEDIR shoud be set to current directory
15 PERLCEDIR  = H:\src\wince\perl\wince
16
17 # WCEROOT is a directory where Windows CE Tools was installed
18 WCEROOT    = D:\Windows CE Tools
19
20 # HPERL stands for host perl, which is perl on local desktop machine
21 # which is usually ..\miniperl.exe
22 #HPERL     = N:\Programme\perl\bin\perl.exe
23 HPERL = $(MAKEDIR)\..\miniperl.exe
24
25 CEPATH     = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN
26 CELIBDLLDIR  = h:\src\wince\celib-palm-3.0
27 CECONSOLEDIR = h:\src\wince\w32console
28
29 # specify following options to build perl on local machine, by MSVC
30 MSVCDIR         = D:\MSVStudio\VC98
31 CCHOME          = $(MSVCDIR)
32 CCINCDIR        = $(CCHOME)\include
33 CCLIBDIR        = $(CCHOME)\lib
34
35 # Only for WIN2000
36 #YES        = /y
37 COPY       = copy $(YES)
38 XCOPY      = xcopy $(YES) /f /r /i /d
39 RCOPY      = xcopy $(YES) /f /r /i /e /d
40
41 # cecopy program. Make shure it is in your path, as well as cemkdir, cedel
42 CECOPY     = cecopy
43
44 #
45 # Comment out next assign to disable perl's I/O subsystem and use compiler's 
46 # stdio for IO - depending on your compiler vendor and run time library you may 
47 # then get a number of fails from make test i.e. bugs - complain to them not us ;-). 
48 # You will also be unable to take full advantage of perl5.8's support for multiple 
49 # encodings and may see lower IO performance. You have been warned.
50 USE_PERLIO      = define
51
52
53 NOOP       = @echo
54 # keep this untouched!
55 NULL       =
56
57
58 CFG=DEBUG
59 #CFG=RELEASE
60
61 !if "$(MACHINE)" == ""
62 MACHINE=wince-arm-hpc-wce300
63 #MACHINE=wince-arm-hpc-wce211
64 #MACHINE=wince-sh3-hpc-wce211
65 #MACHINE=wince-mips-hpc-wce211
66 #MACHINE=wince-sh3-hpc-wce200
67 #MACHINE=wince-mips-hpc-wce200
68 #MACHINE=wince-arm-pocket-wce300
69 #MACHINE=wince-mips-pocket-wce300
70 #MACHINE=wince-sh3-pocket-wce300
71 #MACHINE=wince-x86em-pocket-wce300
72 #MACHINE=wince-mips-palm-wce211
73 #MACHINE=wince-sh3-palm-wce211
74 #MACHINE=wince-x86em-palm-wce211
75 !endif
76
77 ######################################################################
78 # machines
79
80 !if "$(MACHINE)" == "wince-sh3-hpc-wce211"
81 CC         = shcl.exe
82 ARCH       = SH3
83 CPU        = SH3
84 TARGETCPU  = SH3
85 CEVersion  = 211
86 OSVERSION  = WCE211
87 PLATFORM   = MS HPC Pro
88 MCFLAGS    = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
89              -I $(CELIBDLLDIR)\inc
90 SUBSYS     = -subsystem:windowsce,2.11
91 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
92 LDLIBPATH  = -libpath:$(CELIBPATH)
93 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
94              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
95 !endif
96
97 !if "$(MACHINE)" == "wince-mips-hpc-wce211"
98 CC         = clmips.exe
99 ARCH       = MIPS
100 CPU        = MIPS
101 TARGETCPU  = MIPS
102 CEVersion  = 211
103 OSVERSION  = WCE211
104 PLATFORM   = MS HPC Pro
105 MCFLAGS    = -D _MT -D _DLL \
106              -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
107              -D PALM_SIZE \
108              -I $(CELIBDLLDIR)\inc
109 SUBSYS     = -subsystem:windowsce,2.11
110 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
111 LDLIBPATH  = -libpath:$(CELIBPATH)
112 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
113              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
114 !endif
115
116 !if "$(MACHINE)" == "wince-mips-hpc-wce200"
117 CC         = clmips.exe
118 ARCH       = MIPS
119 CPU        = MIPS
120 TARGETCPU  = MIPS
121 CEVersion  = 200
122 OSVERSION  = WCE200
123 PLATFORM   = MS HPC
124 # MUST USE -MD to get the right FPE stuff...
125 MCFLAGS    = -D _MT -D _DLL -MD \
126              -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
127              -D PALM_SIZE \
128              -I $(CELIBDLLDIR)\inc
129 SUBSYS     = -subsystem:windowsce,2.00
130 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
131 LDLIBPATH  = -libpath:$(CELIBPATH)
132 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
133              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
134 !endif
135
136 !if "$(MACHINE)" == "wince-sh3-hpc-wce200"
137 CC         = shcl.exe
138 ARCH       = SH3
139 CPU        = SH3
140 TARGETCPU  = SH3
141 CEVersion  = 200
142 OSVERSION  = WCE200
143 PLATFORM   = MS HPC
144 # MUST USE -MD to get the right FPE stuff...
145 MCFLAGS    = -D _MT -D _DLL -MD \
146              -D SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \
147              -D PALM_SIZE \
148              -I $(CELIBDLLDIR)\inc
149 SUBSYS     = -subsystem:windowsce,2.00
150 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
151 LDLIBPATH  = -libpath:$(CELIBPATH)
152 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
153              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
154 !endif
155
156 !if "$(MACHINE)" == "wince-arm-hpc-wce211"
157 CC         = clarm.exe
158 ARCH       = ARM
159 CPU        = ARM
160 TARGETCPU  = ARM
161 CEVersion  = 211
162 OSVERSION  = WCE211
163 PLATFORM   = MS HPC Pro
164 MCFLAGS    = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
165              -DPROCESSOR_ARM -DPALM_SIZE \
166              -I $(CELIBDLLDIR)\inc
167 SUBSYS     = -subsystem:windowsce,2.11
168 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
169 LDLIBPATH  = -libpath:$(CELIBPATH)
170 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
171              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
172 !endif
173
174 !if "$(MACHINE)" == "wince-arm-hpc-wce300"
175 CC         = clarm.exe
176 ARCH       = ARM
177 CPU        = ARM
178 TARGETCPU  = ARM
179 CEVersion  = 300
180 OSVERSION  = WCE300
181 PLATFORM   = HPC2000
182 MCFLAGS    = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
183              -DPROCESSOR_ARM -DPALM_SIZE \
184              -I $(CELIBDLLDIR)\inc
185 SUBSYS     = -subsystem:windowsce,3.00
186 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
187 LDLIBPATH  = -libpath:$(CELIBPATH)
188 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
189              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
190 !endif
191
192 !if "$(MACHINE)" == "wince-mips-palm-wce211"
193 CC         = clmips.exe
194 ARCH       = MIPS
195 CPU        = MIPS
196 TARGETCPU  = MIPS
197 CEVersion  = 211
198 OSVERSION  = WCE211
199 PLATFORM   = MS Palm Size PC
200 MCFLAGS    = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \
201              -I $(CELIBDLLDIR)\inc
202 SUBSYS     = -subsystem:windowsce,2.11
203 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
204 LDLIBPATH  = -libpath:$(CELIBPATH)
205 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
206              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
207 !endif
208
209 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
210 CC         = shcl.exe
211 ARCH       = SH3
212 CPU        = SH3
213 TARGETCPU  = SH3
214 CEVersion  = 211
215 OSVERSION  = WCE211
216 PLATFORM   = MS Palm Size PC
217 MCFLAGS    = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
218              -I $(CELIBDLLDIR)\inc
219 SUBSYS     = -subsystem:windowsce,2.11
220 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
221 LDLIBPATH  = -libpath:$(CELIBPATH)
222 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
223              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
224 !endif
225
226 !if "$(MACHINE)" == "wince-x86em-palm-wce211"
227 CC         = cl.exe
228 ARCH       = X86EM
229 CPU        = X86
230 TARGETCPU  = X86
231 CEVersion  = 211
232 OSVERSION  = WCE211
233 PLATFORM   = MS Palm Size PC
234 MCFLAGS    = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \
235              -D_WIN32_WCE_EMULATION -DPALM_SIZE \
236              -I $(CELIBDLLDIR)\inc
237 MACH       = -machine:x86
238 SUBSYS     = -subsystem:windows
239 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
240 LDLIBPATH  = -libpath:$(CELIBPATH)
241 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
242              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
243 !endif
244
245 !if "$(MACHINE)" == "wince-x86em-pocket-wce300"
246 CC         = cl.exe
247 ARCH       = X86EM
248 CPU        = X86
249 TARGETCPU  = X86
250 CEVersion  = 300
251 OSVERSION  = WCE300
252 PLATFORM   = MS Pocket PC
253 MCFLAGS    = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \
254              -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \
255              -I $(CELIBDLLDIR)\inc 
256 MACH       = -machine:x86
257 SUBSYS     = -subsystem:windows
258 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
259 LDLIBPATH  = -libpath:$(CELIBPATH)
260 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
261              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
262 !endif
263
264 !if "$(MACHINE)" == "wince-mips-pocket-wce300"
265 CC         = clmips.exe
266 ARCH       = MIPS
267 CPU        = MIPS
268 TARGETCPU  = MIPS
269 CEVersion  = 300
270 OSVERSION  = WCE300
271 PLATFORM   = MS Pocket PC
272 MCFLAGS    = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
273              -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
274              -I $(CELIBDLLDIR)\inc 
275 MACH       = -machine:mips
276 SUBSYS     = -subsystem:windowsce,3.00
277 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
278 LDLIBPATH  = -libpath:$(CELIBPATH)
279 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
280              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
281 !endif
282
283 !if "$(MACHINE)" == "wince-sh3-pocket-wce300"
284 CC         = shcl.exe
285 ARCH       = SH3
286 CPU        = SH3
287 TARGETCPU  = SH3
288 CEVersion  = 300
289 OSVERSION  = WCE300
290 PLATFORM   = MS Pocket PC
291 MCFLAGS    = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \
292              -DPALM_SIZE -DPOCKET_SIZE \
293              -I $(CELIBDLLDIR)\inc 
294 MACH       = -machine:mips
295 SUBSYS     = -subsystem:windowsce,3.00
296 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
297 LDLIBPATH  = -libpath:$(CELIBPATH)
298 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
299              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
300 !endif
301
302 !if "$(MACHINE)" == "wince-arm-pocket-wce300"
303 CC         = clarm.exe
304 ARCH       = ARM
305 CPU        = ARM
306 TARGETCPU  = ARM
307 CEVersion  = 300
308 OSVERSION  = WCE300
309 PLATFORM   = MS Pocket PC
310 MCFLAGS    = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
311              -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
312              -I $(CELIBDLLDIR)\inc 
313 MACH       = -machine:arm
314 SUBSYS     = -subsystem:windowsce,3.00
315 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
316 LDLIBPATH  = -libpath:$(CELIBPATH)
317 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
318              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
319 !endif
320
321 ######################################################################
322 # common section
323
324 CEDEFS    = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \
325             $(MCFLAGS) -D PERL
326
327 #CEDEFS    = $(CEDEFS) -DDEBUGGING_OPS
328
329 CECFLAGS  = $(CEDEFS)
330
331 !if "$(CFG)" == "DEBUG"
332 CECFLAGS  = $(CECFLAGS) -Zi -Od
333 !endif
334
335 !if "$(CFG)" == "RELEASE"
336 # -O2 and -Ot give internal compiler error in perl.c and lexer.
337 # Also the dll cannot be loaded by perl.exe...
338 CECFLAGS  = $(CECFLAGS)
339 !endif
340
341 RCDEFS    = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
342             /d _WIN32_WCE=$(CEVersion)
343
344 PATH=$(CEPATH);$(PATH)
345
346 INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include
347 LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH)
348
349 ######################################################################
350
351 !message
352 !message Compiling for $(MACHINE)
353 !message LIB=$(LIB)
354 !message INCLUDE=$(INCLUDE)
355 !message PATH=$(CEPATH)
356 !message
357
358 ######################################################################
359 #
360 # Additional compiler flags can be specified here.
361 #
362
363 BUILDOPT        = $(BUILDOPT) $(CECFLAGS)
364
365 ##################### CHANGE THESE ONLY IF YOU MUST #####################
366
367 !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
368 D_CRYPT         = undef
369 !ELSE
370 D_CRYPT         = define
371 CRYPT_FLAG      = -DHAVE_DES_FCRYPT
372 !ENDIF
373
374 !IF "$(PERL_MALLOC)" == ""
375 PERL_MALLOC     = undef
376 !ENDIF
377
378 !IF "$(USE_5005THREADS)" == ""
379 USE_5005THREADS = undef
380 !ENDIF
381
382 !IF "$(USE_5005THREADS)" == "define"
383 USE_ITHREADS    = undef
384 !ENDIF
385
386 !IF "$(USE_IMP_SYS)" == "define"
387 PERL_MALLOC     = undef
388 !ENDIF
389
390 !IF "$(USE_MULTI)" == ""
391 USE_MULTI       = undef
392 !ENDIF
393
394 !IF "$(USE_ITHREADS)" == ""
395 USE_ITHREADS    = undef
396 !ENDIF
397
398 !IF "$(USE_IMP_SYS)" == ""
399 USE_IMP_SYS     = undef
400 !ENDIF
401
402 !IF "$(USE_PERLIO)" == ""
403 USE_PERLIO      = undef
404 !ENDIF
405
406 !IF "$(USE_PERLCRT)" == ""
407 USE_PERLCRT     = undef
408 !ENDIF
409
410 !IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)" == "defineundefundef"
411 USE_MULTI       = define
412 !ENDIF
413
414 !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
415 USE_MULTI       = define
416 USE_5005THREADS = undef
417 !ENDIF
418
419 !IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef"
420 BUILDOPT        = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
421 !ENDIF
422
423 !IF "$(USE_IMP_SYS)" != "undef"
424 BUILDOPT        = $(BUILDOPT) -DPERL_IMPLICIT_SYS
425 !ENDIF
426
427 !IF "$(USE_PERLIO)" == "define"
428 BUILDOPT        = $(BUILDOPT) -DUSE_PERLIO
429 !ENDIF
430
431 !IF "$(CROSS_NAME)" == ""
432 CROSS_NAME      = wince
433 !ENDIF
434
435 # new option - automatically defined in perl.h...
436 #BUILDOPT        = $(BUILDOPT) -DUSE_ENVIRON_ARRAY
437
438 PROCESSOR_ARCHITECTURE = $(TARGETCPU)
439 ARCHNAME        = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE)
440 ARCHDIR         = ..\lib\$(ARCHNAME)
441 COREDIR         = ..\lib\CORE
442 XCOREDIR        = ..\xlib\$(CROSS_NAME)\CORE
443 AUTODIR         = ..\lib\auto
444 LIBDIR          = ..\lib
445 EXTDIR          = ..\ext
446 PODDIR          = ..\pod
447 EXTUTILSDIR     = $(LIBDIR)\ExtUtils
448
449 LINK32          = link
450 LIB32           = $(LINK32) -lib
451 RSC             = rc
452
453 INCLUDES        = -I.\include -I. -I..
454 DEFINES         = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
455 LOCDEFS         = -DPERLDLL -DPERL_CORE
456 CXX_FLAG        = -TP -GX
457
458 PERLEXE_RES     = perl.res
459 PERLDLL_RES     =
460
461 !if "$(CFG)" == "RELEASE"
462 CELIB           = celib.lib
463 !endif
464
465 !if "$(CFG)" == "DEBUG"
466 CELIB           = celib.lib
467 !endif
468
469 CELIBS          = -nodefaultlib \
470                   winsock.lib $(CELIB) coredll.lib
471
472 !if $(CEVersion) > 200
473 CELIBS          = $(CELIBS) corelibc.lib 
474 !else
475 CELIBS          = $(CELIBS) msvcrt.lib 
476 !endif
477
478 LIBBASEFILES    = $(CRYPT_LIB) $(CELIBS)
479
480 LIBFILES        = $(LIBBASEFILES) $(LIBC)
481
482 CFLAGS          = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
483                 $(PCHFLAGS) $(OPTIMIZE)
484
485 LINK_FLAGS      = -nologo -machine:$(PROCESSOR_ARCHITECTURE)
486
487 !if "$(CFG)" == "DEBUG"
488 LINK_FLAGS      = $(LINK_FLAGS) -debug:full -pdb:none 
489 !endif
490
491 OBJOUT_FLAG     = -Fo
492 EXEOUT_FLAG     = -Fe
493
494 CFLAGS_O        = $(CFLAGS) $(BUILDOPT)
495
496 o = .obj
497
498 #
499 # Rules
500
501
502 .SUFFIXES : .c $(o) .dll .lib .exe .rc .res
503
504 .c$(o):
505         $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
506
507 .y.c:
508         $(NOOP)
509
510 $(o).dll:
511         $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
512             -implib:$(*B).lib -def:$(*B).def \
513             -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)  
514
515 .rc.res:
516         $(RSC) -i.. $<
517
518 # This must be relative to ../lib/CORE, else the ext dll build fails...
519 PERLIMPLIB_EXP  = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib
520 PERLIMPLIB      = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
521 PERLDLL         = $(MACHINE)\perl$(PV).dll
522
523 DLLDIR          = $(MACHINE)\dll
524 PERLEXE         = $(MACHINE)\perl.exe
525
526 CONFIGPM        = ..\xlib\$(CROSS_NAME)\Config.pm
527 MINIMOD         = ..\lib\ExtUtils\Miniperl.pm
528
529 # Nominate a target which causes extensions to be re-built
530 # This used to be $(PERLEXE), but at worst it is the .dll that they depend
531 # on and really only the interface - i.e. the .def file used to export symbols
532 # from the .dll
533 PERLDEP         = perldll.def
534
535 MAKE            = nmake -nologo
536
537 CFGSH_TMPL      = config.ce
538 CFGH_TMPL       = config_H.ce
539
540 #
541 # filenames given to xsubpp must have forward slashes (since it puts
542 # full pathnames in #line strings)
543 XSUBPP          = $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \
544                 -C++ -prototypes
545
546 MICROCORE_SRC   =               \
547                 ..\av.c         \
548                 ..\deb.c        \
549                 ..\doio.c       \
550                 ..\doop.c       \
551                 ..\dump.c       \
552                 ..\globals.c    \
553                 ..\gv.c         \
554                 ..\hv.c         \
555                 ..\mg.c         \
556                 ..\op.c         \
557                 ..\perl.c       \
558                 ..\perlapi.c    \
559                 ..\perly.c      \
560                 ..\pp.c         \
561                 ..\pp_ctl.c     \
562                 ..\pp_hot.c     \
563                 ..\pp_pack.c    \
564                 ..\pp_sort.c    \
565                 ..\pp_sys.c     \
566                 ..\reentr.c     \
567                 ..\regcomp.c    \
568                 ..\regexec.c    \
569                 ..\run.c        \
570                 ..\scope.c      \
571                 ..\sv.c         \
572                 ..\taint.c      \
573                 ..\toke.c       \
574                 ..\universal.c  \
575                 ..\utf8.c       \
576                 ..\util.c       \
577                 ..\xsutils.c
578
579 EXTRACORE_SRC   = $(EXTRACORE_SRC) perllib.c
580
581 !IF "$(PERL_MALLOC)" == "define"
582 EXTRACORE_SRC   = $(EXTRACORE_SRC) ..\malloc.c
583 !ENDIF
584
585 EXTRACORE_SRC   = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
586
587 WIN32_SRC       =               \
588                 .\wince.c       \
589                 .\wincesck.c    \
590                 .\win32thread.c 
591
592 !IF "$(CRYPT_SRC)" != ""
593 WIN32_SRC       = $(WIN32_SRC) .\$(CRYPT_SRC)
594 !ENDIF
595
596 DLL_SRC         = $(DYNALOADER).c
597
598 CORE_NOCFG_H    =               \
599                 ..\av.h         \
600                 ..\cop.h        \
601                 ..\cv.h         \
602                 ..\dosish.h     \
603                 ..\embed.h      \
604                 ..\form.h       \
605                 ..\gv.h         \
606                 ..\handy.h      \
607                 ..\hv.h         \
608                 ..\iperlsys.h   \
609                 ..\mg.h         \
610                 ..\nostdio.h    \
611                 ..\op.h         \
612                 ..\opcode.h     \
613                 ..\perl.h       \
614                 ..\perlapi.h    \
615                 ..\perlsdio.h   \
616                 ..\perlsfio.h   \
617                 ..\perly.h      \
618                 ..\pp.h         \
619                 ..\proto.h      \
620                 ..\regexp.h     \
621                 ..\scope.h      \
622                 ..\sv.h         \
623                 ..\thread.h     \
624                 ..\unixish.h    \
625                 ..\utf8.h       \
626                 ..\util.h       \
627                 ..\warnings.h   \
628                 ..\XSUB.h       \
629                 ..\EXTERN.h     \
630                 ..\perlvars.h   \
631                 ..\intrpvar.h   \
632                 ..\thrdvar.h    \
633                 .\include\dirent.h      \
634                 .\include\netdb.h       \
635                 .\include\sys\socket.h  \
636                 .\win32.h
637
638 !IF "$(USE_SETARGV)" != ""
639 SETARGV_OBJ     = setargv$(o)
640 !ENDIF
641
642 DYNAMIC_EXT     = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \
643                 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
644                 Sys/Hostname
645
646 STATIC_EXT      = DynaLoader
647 NONXS_EXT       = Errno
648
649 DYNALOADER      = $(EXTDIR)\DynaLoader\DynaLoader
650 SOCKET          = $(EXTDIR)\Socket\Socket
651 IO              = $(EXTDIR)\IO\IO
652 DUMPER          = $(EXTDIR)\Data\Dumper\Dumper
653 #
654 FCNTL           = $(EXTDIR)\Fcntl\Fcntl
655 OPCODE          = $(EXTDIR)\Opcode\Opcode
656 SDBM_FILE       = $(EXTDIR)\SDBM_File\SDBM_File
657 POSIX           = $(EXTDIR)\POSIX\POSIX
658 ATTRS           = $(EXTDIR)\attrs\attrs
659 THREAD          = $(EXTDIR)\Thread\Thread
660 B               = $(EXTDIR)\B\B
661 RE              = $(EXTDIR)\re\re
662 ERRNO           = $(EXTDIR)\Errno\Errno
663 PEEK            = $(EXTDIR)\Devel\Peek\Peek
664 BYTELOADER      = $(EXTDIR)\ByteLoader\ByteLoader
665 DPROF           = $(EXTDIR)\Devel\DProf\DProf
666 GLOB            = $(EXTDIR)\File\Glob\Glob
667 HOSTNAME        = $(EXTDIR)\Sys\Hostname\Hostname
668 SOCKET_DLL      = $(AUTODIR)\Socket\Socket.dll
669 FCNTL_DLL       = $(AUTODIR)\Fcntl\Fcntl.dll
670 OPCODE_DLL      = $(AUTODIR)\Opcode\Opcode.dll
671 SDBM_FILE_DLL   = $(AUTODIR)\SDBM_File\SDBM_File.dll
672 IO_DLL          = $(AUTODIR)\IO\IO.dll
673 POSIX_DLL       = $(AUTODIR)\POSIX\POSIX.dll
674 ATTRS_DLL       = $(AUTODIR)\attrs\attrs.dll
675 THREAD_DLL      = $(AUTODIR)\Thread\Thread.dll
676 B_DLL           = $(AUTODIR)\B\B.dll
677 DUMPER_DLL      = $(AUTODIR)\Data\Dumper\Dumper.dll
678 PEEK_DLL        = $(AUTODIR)\Devel\Peek\Peek.dll
679 RE_DLL          = $(AUTODIR)\re\re.dll
680 BYTELOADER_DLL  = $(AUTODIR)\ByteLoader\ByteLoader.dll
681 DPROF_DLL       = $(AUTODIR)\Devel\DProf\DProf.dll
682 GLOB_DLL        = $(AUTODIR)\File\Glob\Glob.dll
683 HOSTNAME_DLL    = $(AUTODIR)\Sys\Hostname\Hostname.dll
684
685 ERRNO_PM        = $(LIBDIR)\Errno.pm
686
687 EXTENSION_C     =               \
688                 $(SOCKET).c     \
689                 $(FCNTL).c      \
690                 $(OPCODE).c     \
691                 $(SDBM_FILE).c  \
692                 $(IO).c         \
693                 $(POSIX).c      \
694                 $(ATTRS).c      \
695                 $(THREAD).c     \
696                 $(RE).c         \
697                 $(DUMPER).c     \
698                 $(PEEK).c       \
699                 $(B).c          \
700                 $(BYTELOADER).c \
701                 $(DPROF).c      \
702                 $(GLOB).c       \
703                 $(HOSTNAME).c
704
705 EXTENSION_DLL   =               \
706                 $(SOCKET_DLL)   \
707                 $(FCNTL_DLL)    \
708                 $(OPCODE_DLL)   \
709                 $(SDBM_FILE_DLL)\
710                 $(IO_DLL)       \
711                 $(POSIX_DLL)    \
712                 $(ATTRS_DLL)    \
713                 $(DUMPER_DLL)   \
714                 $(PEEK_DLL)     \
715                 $(B_DLL)        \
716                 $(RE_DLL)       \
717                 $(THREAD_DLL)   \
718                 $(BYTELOADER_DLL)       \
719                 $(DPROF_DLL)    \
720                 $(GLOB_DLL)     \
721                 $(HOSTNAME_DLL)
722
723 EXTENSION_PM    =               \
724                 $(ERRNO_PM)
725
726 POD2HTML        = $(PODDIR)\pod2html
727 POD2MAN         = $(PODDIR)\pod2man
728 POD2LATEX       = $(PODDIR)\pod2latex
729 POD2TEXT        = $(PODDIR)\pod2text
730
731 CFG_VARS = \
732  "INST_DRV=$(INST_DRV)" \
733  "INST_TOP=$(INST_TOP)" \
734  "INST_VER=$(INST_VER)" \
735  "INST_ARCH=$(INST_ARCH)" \
736  "archname=$(ARCHNAME)" \
737  "CC=$(CC)" \
738  "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
739  "cf_by=Rainer Keuchel" \
740  "cf_email=coyxc@rainer-keuchel.de" \
741  "d_crypt=$(D_CRYPT)" \
742  "d_mymalloc=$(PERL_MALLOC)" \
743  "libs=$(LIBFILES)" \
744  "incpath=$(CCINCDIR)" \
745  "libperl=$(PERLIMPLIB_EXP)" \
746  "libpth=$(LIBPATH)" \
747  "libc=$(LIBC)" \
748  "make=nmake" \
749  "static_ext=$(STATIC_EXT)" \
750  "dynamic_ext=$(DYNAMIC_EXT)" \
751  "nonxs_ext=$(NONXS_EXT)" \
752  "use5005threads=$(USE_5005THREADS)" \
753  "useithreads=$(USE_ITHREADS)" \
754  "usethreads=$(USE_5005THREADS)" \
755  "usemultiplicity=$(USE_MULTI)" \
756  "useperlio=$(USE_PERLIO)" \
757  "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
758  "optimize=$(OPTIMIZE)"
759
760 #
761 # Top targets
762 #
763
764 all: hostminiperl $(MINIMOD) $(CONFIGPM) $(PERLEXE) Extensions
765
766 $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
767
768 $(CONFIGPM): .\config.h ..\config.sh ..\minimod.pl
769         cd .. && $(HPERL) configpm --cross=$(CROSS_NAME) --no-glossary
770         -mkdir $(XCOREDIR)
771         $(XCOPY) ..\*.h $(XCOREDIR)\*.*
772         $(XCOPY) *.h $(XCOREDIR)\*.*
773         $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
774         $(RCOPY) include $(XCOREDIR)\*.*
775         -$(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)"
776         if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
777
778 .\config.h:
779         -del /f config.h
780         copy config_H.ce config.h
781
782 ..\config.sh: config.ce config_sh.PL
783         $(HPERL) -I..\lib -I..\win32 config_sh.PL $(CFG_VARS) config.ce > ..\config.sh
784
785 $(MINIMOD) : ..\minimod.pl
786         cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm
787
788 perlmain.c : runperl.c 
789         $(COPY) runperl.c perlmain.c
790
791 $(DYNALOADER).c: $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
792         if not exist $(AUTODIR) mkdir $(AUTODIR)
793         cd $(EXTDIR)\$(*B)
794         $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) $(*B)_pm.PL
795         $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) XSLoader_pm.PL
796         cd ..\..\wince
797         $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
798         $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
799         cd $(EXTDIR)\$(*B)
800         $(XSUBPP) dl_win32.xs > $(*B).c
801         cd ..\..\wince
802
803 $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
804         $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
805
806 #----------------------------------------------------------------------------------
807 Extensions: ..\win32\buildext.pl $(PERLDEP) $(CONFIGPM)
808         $(HPERL) -I..\lib -I..\win32 -MCross=$(CROSS_NAME) ..\win32\buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) \
809         !File/Glob !POSIX !Time/HiRes
810
811 Extensions_clean: 
812         -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
813
814 #----------------------------------------------------------------------------------
815
816 $(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs
817         cd $(EXTDIR)\Data\$(*B)
818         $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
819         $(MAKE)
820         cd ..\..\..\wince
821
822 $(DPROF_DLL): $(PERLEXE) $(DPROF).xs
823         cd $(EXTDIR)\Devel\$(*B)
824         $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
825         $(MAKE)
826         cd ..\..\..\wince
827
828 $(GLOB_DLL): $(PERLEXE) $(GLOB).xs
829         cd $(EXTDIR)\File\$(*B)
830         $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
831         $(MAKE)
832         cd ..\..\..\wince
833
834 $(PEEK_DLL): $(PERLEXE) $(PEEK).xs
835         cd $(EXTDIR)\Devel\$(*B)
836         $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
837         $(MAKE)
838         cd ..\..\..\wince
839
840 $(RE_DLL): $(PERLEXE) $(RE).xs
841         cd $(EXTDIR)\$(*B)
842         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
843         $(MAKE)
844         cd ..\..\wince
845
846 $(B_DLL): $(PERLEXE) $(B).xs
847         cd $(EXTDIR)\$(*B)
848         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
849         $(MAKE)
850         cd ..\..\wince
851
852 $(THREAD_DLL): $(PERLEXE) $(THREAD).xs
853         cd $(EXTDIR)\$(*B)
854         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
855         $(MAKE)
856         cd ..\..\wince
857
858 $(ATTRS_DLL): $(PERLEXE) $(ATTRS).xs
859         cd $(EXTDIR)\$(*B)
860         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
861         $(MAKE)
862         cd ..\..\wince
863
864 $(POSIX_DLL): $(PERLEXE) $(POSIX).xs
865         cd $(EXTDIR)\$(*B)
866         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
867         $(MAKE)
868         cd ..\..\wince
869
870 $(IO_DLL): $(PERLEXE) $(IO).xs
871         cd $(EXTDIR)\$(*B)
872         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
873         $(MAKE)
874         cd ..\..\wince
875
876 $(SDBM_FILE_DLL) : $(PERLEXE) $(SDBM_FILE).xs
877         cd $(EXTDIR)\$(*B)
878         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
879         $(MAKE)
880         cd ..\..\wince
881
882 $(FCNTL_DLL): $(PERLEXE) $(FCNTL).xs
883         cd $(EXTDIR)\$(*B)
884         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
885         $(MAKE)
886         cd ..\..\wince
887
888 $(OPCODE_DLL): $(PERLEXE) $(OPCODE).xs
889         cd $(EXTDIR)\$(*B)
890         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
891         $(MAKE)
892         cd ..\..\wince
893
894 $(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs
895         cd $(EXTDIR)\$(*B)
896         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
897         $(MAKE)
898         cd ..\..\wince
899
900 $(HOSTNAME_DLL): $(PERLEXE) $(HOSTNAME).xs
901         cd $(EXTDIR)\Sys\$(*B)
902         $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
903         $(MAKE)
904         cd ..\..\..\wince
905
906 $(BYTELOADER_DLL): $(PERLEXE) $(BYTELOADER).xs
907         cd $(EXTDIR)\$(*B)
908         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
909         $(MAKE)
910         cd ..\..\wince
911
912 $(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL
913         cd $(EXTDIR)\$(*B)
914         $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
915         $(MAKE)
916         cd ..\..\wince
917
918 $(PERLEXE_RES): perl.rc perl.ico
919         rc $(RCDEFS) perl.rc
920
921 clean: 
922         -rm -f $(MACHINE)/dll/*
923         -rm -f $(MACHINE)/*.obj
924         -rm -f $(MACHINE)/*.exe
925         -rm -f $(MACHINE)/*.dll
926         -rm -f $(MACHINE)/*.lib
927         -rm -f ../config.sh ../lib/Config.pm
928         -rm -f config.h perl.res
929
930 !IF "$(MACHINE)" == "wince-sh3-hpc"
931
932 install_perlexe: $(PERLEXE)
933         cedel /speicherkarte2/bin/perl.exe
934         $(CECOPY) pc:../perl.exe ce:$(INSTALL_ROOT)/bin
935
936 install_perldll: $(PERLDLL)
937         cedel /speicherkarte2/bin/perl$(PV).dll
938         $(CECOPY) pc:../perl$(PV).dll ce:/speicherkarte2/bin
939
940 install_perl: install_perlexe install_perldll
941
942 test_perl:
943         $(CECOPY) pc:test.pl ce:/speicherkarte2/bin
944         ceexec /speicherkarte2/bin/perl.exe /speicherkarte2/bin/test.pl
945
946 install_lib: ../lib/Config.pm
947         $(CECOPY)       pc:../lib/Config.pm ce:$(INSTALL_ROOT)/lib
948
949 !ELSEIF "$(MACHINE)" == "wince-arm-hpc"
950
951 install_perlexe: $(PERLEXE)
952         -cedel /speicherkarte/bin/perl.exe
953         $(CECOPY) pc:$(MACHINE)/perl.exe ce:$(INSTALL_ROOT)/bin
954
955 install_perldll: $(PERLDLL)
956         -cedel /speicherkarte/bin/perl$(PV).dll
957         $(CECOPY) pc:$(MACHINE)/perl$(PV).dll ce:$(INSTALL_ROOT)/bin
958
959 install_perl: install_perlexe install_perldll
960
961 test_perl:
962         $(CECOPY) pc:test.pl ce:/speicherkarte/bin
963         ceexec /speicherkarte/bin/perl.exe /speicherkarte/bin/test.pl
964
965 install_lib: ../lib/Config.pm
966         $(CECOPY)       pc:../lib/Config.pm ce:$(INSTALL_ROOT)/lib
967
968 !ELSEIF "$(MACHINE)" == "wince-mips-hpc"
969
970 install_perlexe: $(PERLEXE)
971         $(CECOPY) pc:../perl.exe ce:$(INSTALL_ROOT)/bin
972
973 install_perldll: $(PERLDLL)
974         $(CECOPY) pc:../perl$(PV).dll ce:$(INSTALL_ROOT)/bin
975
976 install_perl: install_perlexe install_perldll
977
978 test_perl:
979         $(CECOPY) pc:test.pl ce:/netzwerk/compaq/bin
980         ceexec /netzwerk/compaq/bin/perl.exe $(INSTALL_ROOT)/test.pl
981
982 install_lib: ../lib/Config.pm
983         $(CECOPY)       pc:../lib/Config.pm ce:$(INSTALL_ROOT)/lib
984
985 !ELSEIF "$(MACHINE)" == "wince-x86em-pocket"
986
987 install_lib:
988         ftpcopy ../lib/Config.pm ftp!ftp@localhost:/perl/lib
989         ftpcopy ../lib/Exporter.pm ftp!ftp@localhost:/perl/lib
990         ftpcopy ../lib/Exporter/Heavy.pm ftp!ftp@localhost:/perl/lib/Exporter
991
992 install_perlexe: $(PERLEXE)
993         $(CECOPY) pc:../perl.exe ce:$(INSTALL_ROOT)/bin
994
995 install_perldll: $(PERLDLL)
996         $(CECOPY) pc:../perl$(PV).dll ce:$(INSTALL_ROOT)/bin
997
998 install_perl: install_perlexe install_perldll
999
1000 test_perl:
1001         echo Not yet
1002 !ENDIF
1003
1004
1005 XDLLOBJS = \
1006 $(DLLDIR)\av.obj \
1007 $(DLLDIR)\deb.obj \
1008 $(DLLDIR)\doio.obj \
1009 $(DLLDIR)\doop.obj \
1010 $(DLLDIR)\dump.obj \
1011 $(DLLDIR)\globals.obj \
1012 $(DLLDIR)\gv.obj \
1013 $(DLLDIR)\hv.obj \
1014 $(DLLDIR)\locale.obj \
1015 $(DLLDIR)\mg.obj \
1016 $(DLLDIR)\numeric.obj \
1017 $(DLLDIR)\op.obj \
1018 $(DLLDIR)\perl.obj \
1019 $(DLLDIR)\perlapi.obj \
1020 $(DLLDIR)\perlio.obj \
1021 $(DLLDIR)\perly.obj \
1022 $(DLLDIR)\pp.obj \
1023 $(DLLDIR)\pp_ctl.obj \
1024 $(DLLDIR)\pp_hot.obj \
1025 $(DLLDIR)\pp_pack.obj \
1026 $(DLLDIR)\pp_sort.obj \
1027 $(DLLDIR)\pp_sys.obj \
1028 $(DLLDIR)\reentr.obj \
1029 $(DLLDIR)\regcomp.obj \
1030 $(DLLDIR)\regexec.obj \
1031 $(DLLDIR)\run.obj \
1032 $(DLLDIR)\scope.obj \
1033 $(DLLDIR)\sv.obj \
1034 $(DLLDIR)\taint.obj \
1035 $(DLLDIR)\toke.obj \
1036 $(DLLDIR)\universal.obj \
1037 $(DLLDIR)\utf8.obj \
1038 $(DLLDIR)\util.obj \
1039 $(DLLDIR)\win32thread.obj \
1040 $(DLLDIR)\wince.obj \
1041 $(DLLDIR)\win32io.obj \
1042 $(DLLDIR)\wincesck.obj \
1043 $(DLLDIR)\xsutils.obj \
1044 $(DLLDIR)\perllib.obj \
1045 $(DLLDIR)\DynaLoader.obj
1046
1047 {$(SRCDIR)}.c{$(DLLDIR)}.obj:
1048     $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
1049
1050 {$(SRCDIR)/wince}.c{$(DLLDIR)}.obj:
1051     $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
1052
1053 perldll.def : $(HPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
1054         $(HPERL) -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
1055             CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) > perldll.def
1056
1057 $(PERLDLL) : $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
1058         $(LINK32) -dll -def:perldll.def -out:$@ \
1059                   $(SUBSYS) $(LDLIBPATH) \
1060                   $(LINK_FLAGS) $(LIBFILES) \
1061                   $(XDLLOBJS) $(PERLDLL_RES)
1062
1063 $(DLLDIR) :
1064         if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
1065
1066 $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
1067     $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
1068           $(EXTDIR)\DynaLoader\DynaLoader.c
1069
1070 XPERLEXEOBJS = \
1071 $(MACHINE)\perlmain.obj
1072
1073 $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
1074         $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR)
1075         $(LINK32) $(SUBSYS) $(LDLIBPATH) \
1076             -entry:wWinMainCRTStartup \
1077             -out:$(MACHINE)\perl.exe \
1078             -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
1079             $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
1080
1081 $(MACHINE)\perlmain.obj : perlmain.c
1082         $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmain.c
1083
1084 iodll:     $(IO_DLL)
1085 socketdll: $(SOCKET_DLL)
1086 dumperdll: $(DUMPER_DLL)
1087
1088 dlls: socketdll iodll dumperdll
1089         -xmkdir -p $(MACHINE)/lib/auto/IO
1090         cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
1091         cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
1092         -xmkdir $(MACHINE)/lib/auto/Socket
1093         cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
1094         cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
1095         -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
1096         cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
1097         cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
1098
1099 makedist: all dlls
1100         $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
1101         cp perl.txt $(MACHINE)
1102         cp registry.bat $(MACHINE)
1103         cp ../lib/Config.pm $(MACHINE)/lib
1104         cd $(MACHINE)
1105         rm -f perl-$(MACHINE).tar.gz
1106         sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib"
1107         gzip -9 perl-$(MACHINE).tar
1108         mv perl-$(MACHINE).tar.gz h:/freenet/new
1109         cd ..
1110
1111 !if "$(MACHINE)" == "wince-arm-hpc-wce300"
1112 install: all
1113         $(CECOPY) pc:$(MACHINE)/perl.exe ce:$(INSTALL_ROOT)/bin
1114         $(CECOPY) pc:$(MACHINE)/perl$(PV).dll ce:$(INSTALL_ROOT)/bin
1115 install_dlls: dlls
1116         $(CECOPY) pc:../lib/auto/IO/io.dll ce:$(INSTALL_ROOT)/lib/auto/IO/io.dll
1117 !else
1118 install: all
1119         -cemkdir "$(INSTALL_ROOT)"
1120         -cemkdir "$(INSTALL_ROOT)\bin"
1121         -cemkdir "$(INSTALL_ROOT)\lib"
1122         $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin"
1123         $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
1124         $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib"
1125 !endif
1126
1127 perl.ico:
1128         $(HPERL) makeico.pl
1129
1130 hostminiperl: ..\miniperl.exe
1131
1132 ..\miniperl.exe:
1133         cd ../win32
1134         set PATH=$(CCHOME)\bin;$(PATH)
1135         $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
1136         cd ../wince
1137
1138 host-install:
1139         perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)"
1140         perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)"
1141         perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#"
1142         perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#"
1143         perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
1144          quotemeta($$Config{installprefixexp}) . \
1145          qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#"