This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove an old note about autoflush from the POD.
[perl5.git] / win32 / Makefile.ce
1 #
2 # perl makefile for wince
3 # During the cross-compilation, it first uses Makefile file to build
4 # miniperl on HOST and then build required platform
5 #
6
7 SRCDIR     = ..
8 PV         = 519
9
10 # INSTALL_ROOT specifies a path where this perl will be installed on CE device
11 INSTALL_ROOT=/netzwerk/sprache/perl
12 INST_TOP=$(INSTALL_ROOT)
13 INST_VER=
14
15 # PERLCEDIR shoud be set to current directory
16 PERLCEDIR  = $(MAKEDIR)
17
18 # WCEROOT is a directory where Windows CE Tools was installed
19 WCEROOT    = D:\Windows CE Tools
20
21 # HPERL stands for host perl, which is perl on local desktop machine
22 # which is usually ..\miniperl.exe
23 #HPERL     = N:\Programme\perl\bin\perl.exe
24 HPERL = $(MAKEDIR)\..\miniperl.exe
25
26 CEPATH     = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN
27 CELIBDLLDIR  = h:\src\wince\celib-palm-3.0
28 CECONSOLEDIR = h:\src\wince\w32console
29
30 # specify following options to build perl on local machine, by MSVC
31 MSVCDIR         = D:\MSVStudio\VC98
32 CCHOME          = $(MSVCDIR)
33 CCINCDIR        = $(CCHOME)\include
34 CCLIBDIR        = $(CCHOME)\lib
35
36 # cecopy program. Make shure it is in your path, as well as cemkdir, cedel
37 CECOPY     = cecopy
38
39 #
40 # Comment out next assign to disable perl's I/O subsystem and use compiler's
41 # stdio for IO - depending on your compiler vendor and run time library you may
42 # then get a number of fails from make test i.e. bugs - complain to them not us ;-).
43 # You will also be unable to take full advantage of perl5.8's support for multiple
44 # encodings and may see lower IO performance. You have been warned.
45 USE_PERLIO      = define
46
47 #
48 # set this if you wish to use perl's malloc
49 # This will make perl run few times faster
50 # WARNING: Turning this on/off WILL break binary compatibility with extensions
51 # you may have compiled with/without it.
52 #
53 PERL_MALLOC     = define
54
55
56 NOOP       = @echo
57 # keep this untouched!
58 NULL       =
59
60 #
61 # uncomment exactly one of the following
62 #
63 # Embedded Visual C++ 4 and older
64 CCTYPE          = MSVC60
65 # Smart Devices for Visual C++ 2005 (aka Visual C++ 8.x) (full version)
66 #CCTYPE         = MSVC80
67 # Smart Devices for Visual C++ 2008 (aka Visual C++ 9.x) (full version)
68 #CCTYPE         = MSVC90
69
70 #CFG=DEBUG
71 CFG=RELEASE
72
73 !if "$(MACHINE)" == ""
74 MACHINE=wince-arm-hpc-wce300
75 #MACHINE=wince-arm-hpc-wce211
76 #MACHINE=wince-sh3-hpc-wce211
77 #MACHINE=wince-mips-hpc-wce211
78 #MACHINE=wince-sh3-hpc-wce200
79 #MACHINE=wince-mips-hpc-wce200
80 #MACHINE=wince-arm-pocket-wce300
81 #MACHINE=wince-mips-pocket-wce300
82 #MACHINE=wince-sh3-pocket-wce300
83 #MACHINE=wince-x86em-pocket-wce300
84 #MACHINE=wince-mips-palm-wce211
85 #MACHINE=wince-sh3-palm-wce211
86 #MACHINE=wince-x86em-palm-wce211
87 #MACHINE=wince-x86-hpc-wce300
88 #MACHINE=wince-arm-pocket-wce400
89 !endif
90
91 # set this to your email address
92 #
93 #EMAIL          =
94
95 ##################### CHANGE THESE ONLY IF YOU MUST #####################
96
97 ######################################################################
98 # machines
99
100 !if "$(MACHINE)" == "wince-sh3-hpc-wce211"
101 CC         = shcl.exe
102 ARCH       = SH3
103 CPU        = SH3
104 TARGETCPU  = SH3
105 CEVersion  = 211
106 OSVERSION  = WCE211
107 PLATFORM   = MS HPC Pro
108 MCFLAGS    = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
109              -I $(CELIBDLLDIR)\inc
110 SUBSYS     = -subsystem:windowsce,2.11
111 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
112 LDLIBPATH  = -libpath:$(CELIBPATH)
113 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
114              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
115 !endif
116
117 !if "$(MACHINE)" == "wince-mips-hpc-wce211"
118 CC         = clmips.exe
119 ARCH       = MIPS
120 CPU        = MIPS
121 TARGETCPU  = MIPS
122 CEVersion  = 211
123 OSVERSION  = WCE211
124 PLATFORM   = MS HPC Pro
125 MCFLAGS    = -D _MT -D _DLL \
126              -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
127              -D PALM_SIZE \
128              -I $(CELIBDLLDIR)\inc
129 SUBSYS     = -subsystem:windowsce,2.11
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-mips-hpc-wce200"
137 CC         = clmips.exe
138 ARCH       = MIPS
139 CPU        = MIPS
140 TARGETCPU  = MIPS
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 MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
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-sh3-hpc-wce200"
157 CC         = shcl.exe
158 ARCH       = SH3
159 CPU        = SH3
160 TARGETCPU  = SH3
161 CEVersion  = 200
162 OSVERSION  = WCE200
163 PLATFORM   = MS HPC
164 # MUST USE -MD to get the right FPE stuff...
165 MCFLAGS    = -D _MT -D _DLL -MD \
166              -D SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \
167              -D PALM_SIZE \
168              -I $(CELIBDLLDIR)\inc
169 SUBSYS     = -subsystem:windowsce,2.00
170 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
171 LDLIBPATH  = -libpath:$(CELIBPATH)
172 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
173              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
174 !endif
175
176 !if "$(MACHINE)" == "wince-arm-hpc-wce211"
177 CC         = clarm.exe
178 ARCH       = ARM
179 CPU        = ARM
180 TARGETCPU  = ARM
181 CEVersion  = 211
182 OSVERSION  = WCE211
183 PLATFORM   = MS HPC Pro
184 MCFLAGS    = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
185              -DPROCESSOR_ARM -DPALM_SIZE \
186              -I $(CELIBDLLDIR)\inc
187 SUBSYS     = -subsystem:windowsce,2.11
188 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
189 LDLIBPATH  = -libpath:$(CELIBPATH)
190 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
191              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
192 !endif
193
194 !if "$(MACHINE)" == "wince-arm-hpc-wce300"
195 CC         = clarm.exe
196 ARCH       = ARM
197 CPU        = ARM
198 TARGETCPU  = ARM
199 CEVersion  = 300
200 OSVERSION  = WCE300
201 #PLATFORM   = HPC2000
202 MCFLAGS    = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
203              -DPROCESSOR_ARM -DPALM_SIZE \
204              -I $(CELIBDLLDIR)\inc
205 SUBSYS     = -subsystem:windowsce,3.00
206 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
207 LDLIBPATH  = -libpath:$(CELIBPATH)
208 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
209              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
210 !endif
211
212 !if "$(MACHINE)" == "wince-mips-palm-wce211"
213 CC         = clmips.exe
214 ARCH       = MIPS
215 CPU        = MIPS
216 TARGETCPU  = MIPS
217 CEVersion  = 211
218 OSVERSION  = WCE211
219 PLATFORM   = MS Palm Size PC
220 MCFLAGS    = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \
221              -I $(CELIBDLLDIR)\inc
222 SUBSYS     = -subsystem:windowsce,2.11
223 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
224 LDLIBPATH  = -libpath:$(CELIBPATH)
225 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
226              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
227 !endif
228
229 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
230 CC         = shcl.exe
231 ARCH       = SH3
232 CPU        = SH3
233 TARGETCPU  = SH3
234 CEVersion  = 211
235 OSVERSION  = WCE211
236 PLATFORM   = MS Palm Size PC
237 MCFLAGS    = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
238              -I $(CELIBDLLDIR)\inc
239 SUBSYS     = -subsystem:windowsce,2.11
240 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
241 LDLIBPATH  = -libpath:$(CELIBPATH)
242 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
243              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
244 !endif
245
246 !if "$(MACHINE)" == "wince-x86em-palm-wce211"
247 CC         = cl.exe
248 ARCH       = X86EM
249 CPU        = X86
250 TARGETCPU  = X86
251 CEVersion  = 211
252 OSVERSION  = WCE211
253 PLATFORM   = MS Palm Size PC
254 MCFLAGS    = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \
255              -D_WIN32_WCE_EMULATION -DPALM_SIZE \
256              -I $(CELIBDLLDIR)\inc
257 MACH       = -machine:x86
258 SUBSYS     = -subsystem:windows
259 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
260 LDLIBPATH  = -libpath:$(CELIBPATH)
261 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
262              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
263 !endif
264
265 !if "$(MACHINE)" == "wince-x86em-pocket-wce300"
266 CC         = cl.exe
267 ARCH       = X86EM
268 CPU        = X86
269 TARGETCPU  = X86
270 CEVersion  = 300
271 OSVERSION  = WCE300
272 PLATFORM   = MS Pocket PC
273 MCFLAGS    = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \
274              -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \
275              -I $(CELIBDLLDIR)\inc
276 MACH       = -machine:x86
277 SUBSYS     = -subsystem:windows
278 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
279 LDLIBPATH  = -libpath:$(CELIBPATH)
280 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
281              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
282 !endif
283
284 !if "$(MACHINE)" == "wince-mips-pocket-wce300"
285 CC         = clmips.exe
286 ARCH       = MIPS
287 CPU        = MIPS
288 TARGETCPU  = MIPS
289 CEVersion  = 300
290 OSVERSION  = WCE300
291 PLATFORM   = MS Pocket PC
292 MCFLAGS    = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
293              -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
294              -I $(CELIBDLLDIR)\inc
295 MACH       = -machine:mips
296 SUBSYS     = -subsystem:windowsce,3.00
297 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
298 #STDLIBPATH = $(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(CPU)
299 LDLIBPATH  = -libpath:$(CELIBPATH)
300 #"-libpath:$(STDLIBPATH)"
301 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
302              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
303 !endif
304
305 !if "$(MACHINE)" == "wince-sh3-pocket-wce300"
306 CC         = shcl.exe
307 ARCH       = SH3
308 CPU        = SH3
309 TARGETCPU  = SH3
310 CEVersion  = 300
311 OSVERSION  = WCE300
312 PLATFORM   = MS Pocket PC
313 MCFLAGS    = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \
314              -DPALM_SIZE -DPOCKET_SIZE \
315              -I $(CELIBDLLDIR)\inc
316 MACH       = -machine:sh3
317 SUBSYS     = -subsystem:windowsce,3.00
318 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
319 LDLIBPATH  = -libpath:$(CELIBPATH)
320 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
321              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
322 !endif
323
324 !if "$(MACHINE)" == "wince-arm-pocket-wce300"
325 CC         = clarm.exe
326 ARCH       = ARM
327 CPU        = ARM
328 TARGETCPU  = ARM
329 CEVersion  = 300
330 OSVERSION  = WCE300
331 PLATFORM   = MS Pocket PC
332 MCFLAGS    = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
333              -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
334              -I $(CELIBDLLDIR)\inc
335 MACH       = -machine:arm
336 SUBSYS     = -subsystem:windowsce,3.00
337 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
338 LDLIBPATH  = -libpath:$(CELIBPATH)
339 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
340              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
341 !endif
342
343 !if "$(MACHINE)" == "wince-x86-hpc-wce300"
344 CC         = cl.exe
345 ARCH       = X86EM
346 CPU        = X86
347 TARGETCPU  = X86
348 CEVersion  = 400
349 OSVERSION  = WCE400
350 PLATFORM   = MS Pocket PC
351 MCFLAGS    = -DX86 -D_X86_ -Dx86 -DPROCESSOR_X86 -D _MT -D _DLL \
352              -DPALM_SIZE -DPOCKET_SIZE -I $(CELIBDLLDIR)\inc
353 MACH       = -machine:IX86
354 SUBSYS     = -subsystem:windowsce,2.0
355 CELIBPATH  = $(CELIBDLLDIR)\wince-x86-hpc-wce300-release
356 LDLIBPATH  = -libpath:$(CELIBPATH)
357 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
358              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
359 !endif
360
361 !if "$(MACHINE)" == "wince-arm-pocket-wce400"
362 #CC         = clarm.exe #set in WCEARMV4.BAT
363 ARCH       = ARM
364 CPU        = ARM
365 TARGETCPU  = ARM
366 CEVersion  = 400
367 #OSVERSION  = WCE300 #set in WCEARMV4.BAT
368 PLATFORM   = MS Pocket PC
369 MCFLAGS    = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
370              -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
371              -I $(CELIBDLLDIR)\inc
372 MACH       = -machine:arm
373 SUBSYS     = -subsystem:windowsce,4.00
374 CELIBPATH  = $(CELIBDLLDIR)\$(MACHINE)-release
375 LDLIBPATH  = -libpath:$(CELIBPATH)
376 STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
377              $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
378 !endif
379
380
381 ######################################################################
382 # common section
383
384 CEDEFS    = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \
385             $(MCFLAGS) -D PERL
386
387 CECFLAGS  = $(CEDEFS) -Zi
388
389 !if "$(CFG)" == "DEBUG"
390 CECFLAGS  = $(CECFLAGS) -Od
391 !endif
392
393 !if "$(CFG)" == "RELEASE"
394 # -O2 and -Ot give internal compiler error in perl.c and lexer.
395 # Also the dll cannot be loaded by perl.exe...
396 !if "$(CPU)" == "SH3"
397 !else
398 CECFLAGS  = $(CECFLAGS) -O1
399 !endif
400 !  IF "$(CCTYPE)" != "MSVC60"
401 #turn on LTCG optimization for CCs that have it
402 CECFLAGS        = $(CECFLAGS) -GL
403 !  ENDIF
404 !  IF "$(CCTYPE)" == "MSVC80" || "$(CCTYPE)" == "MSVC90"
405 #no stack security cookie for CCs where its on by default
406 CECFLAGS        = $(CECFLAGS) -GS-
407 !  ENDIF
408 !endif
409
410 RCDEFS    = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
411             /d _WIN32_WCE=$(CEVersion)
412
413 #PATH=$(CEPATH);$(PATH)
414
415 # attention, for eVC 4, these paths are not generated correctly since the
416 # WinCE SDK is organized differently from eVC 3, replace the next 2 macros
417 # with absolute paths to the correct directories on your system
418 #INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include
419 #LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH)
420
421 ######################################################################
422
423 !message
424 !message Compiling for $(MACHINE)
425 !message LIB=$(LIB)
426 !message INCLUDE=$(INCLUDE)
427 !message PATH=$(CEPATH)
428 !message
429
430 ######################################################################
431 #
432 # Additional compiler flags can be specified here.
433 #
434
435 BUILDOPT        = $(BUILDOPT) $(CECFLAGS) -DUSE_CROSS_COMPILE
436
437
438 !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
439 D_CRYPT         = undef
440 !ELSE
441 D_CRYPT         = define
442 CRYPT_FLAG      = -DHAVE_DES_FCRYPT
443 !ENDIF
444
445 !IF "$(PERL_MALLOC)" == ""
446 PERL_MALLOC     = undef
447 !ENDIF
448
449 !IF "$(USE_MULTI)" == ""
450 USE_MULTI       = undef
451 !ENDIF
452
453 !IF "$(USE_ITHREADS)" == ""
454 USE_ITHREADS    = undef
455 !ENDIF
456
457 !IF "$(USE_IMP_SYS)" == ""
458 USE_IMP_SYS     = undef
459 !ENDIF
460
461 !IF "$(USE_PERLIO)" == ""
462 USE_PERLIO      = undef
463 !ENDIF
464
465 !IF "$(USE_PERLCRT)" == ""
466 USE_PERLCRT     = undef
467 !ENDIF
468
469 !IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
470 USE_MULTI       = define
471 !ENDIF
472
473 !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
474 USE_MULTI       = define
475 !ENDIF
476
477 !IF "$(USE_MULTI)" != "undef"
478 BUILDOPT        = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
479 !ENDIF
480
481 !IF "$(USE_IMP_SYS)" != "undef"
482 BUILDOPT        = $(BUILDOPT) -DPERL_IMPLICIT_SYS
483 !ENDIF
484
485 !IF "$(USE_PERLIO)" == "define"
486 BUILDOPT        = $(BUILDOPT) -DUSE_PERLIO
487 !ENDIF
488
489 !IF "$(CROSS_NAME)" == ""
490 CROSS_NAME      = $(MACHINE)
491 !ENDIF
492
493 # new option - automatically defined in perl.h...
494 #BUILDOPT        = $(BUILDOPT) -DUSE_ENVIRON_ARRAY
495
496 PROCESSOR_ARCHITECTURE = $(TARGETCPU)
497 ARCHNAME        = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE)
498 ARCHDIR         = ..\lib\$(ARCHNAME)
499 COREDIR         = ..\lib\CORE
500 XCOREDIR        = ..\xlib\$(CROSS_NAME)\CORE
501 AUTODIR         = ..\lib\auto
502 LIBDIR          = ..\lib
503 EXTDIR          = ..\ext
504 DISTDIR         = ..\dist
505 CPANDIR         = ..\cpan
506 PODDIR          = ..\pod
507 EXTUTILSDIR     = $(LIBDIR)\ExtUtils
508
509 LINK32          = link
510 LIB32           = $(LINK32) -lib
511 RSC             = rc
512
513 INCLUDES        = -I.\include -I. -I..
514 DEFINES         = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
515 LOCDEFS         = -DPERLDLL -DPERL_CORE
516 CXX_FLAG        = -TP
517
518 PERLEXE_RES     = perl.res
519 PERLDLL_RES     =
520
521 !if "$(CFG)" == "RELEASE"
522 CELIB           = celib.lib
523 !endif
524
525 !if "$(CFG)" == "DEBUG"
526 CELIB           = celib.lib
527 !endif
528
529 #use ws2.lib instead of winsock.lib for WSAGetLastError
530 CELIBS          = -nodefaultlib \
531                   ws2.lib $(CELIB) coredll.lib
532
533 #this libc's purpose is WinCE entrypoint to main wrapper, not a real C std lib
534 !if $(CEVersion) > 200
535 LIBC          = corelibc.lib
536 !else
537 LIBC          = msvcrt.lib
538 !endif
539
540 LIBBASEFILES    = $(CRYPT_LIB) $(CELIBS)
541
542 LIBFILES        = $(LIBBASEFILES) $(LIBC)
543
544 CFLAGS          = -nologo -GF -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
545                 $(PCHFLAGS) $(OPTIMIZE)
546
547 LINK_FLAGS      = -nologo -debug -opt:ref,icf -machine:$(PROCESSOR_ARCHITECTURE)
548
549 !if "$(CFG)" == "RELEASE" && "$(CCTYPE)" != "MSVC60"
550 #see matching flag in CECFLAGS
551 LINK_FLAGS      = $(LINK_FLAGS) -ltcg
552 !endif
553
554 OBJOUT_FLAG     = -Fo
555 EXEOUT_FLAG     = -Fe
556
557 CFLAGS_O        = $(CFLAGS) $(BUILDOPT)
558
559 o = .obj
560
561 #
562 # Rules
563 #
564
565 .SUFFIXES : .c $(o) .dll .lib .exe .rc .res
566
567 .c$(o):
568         $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
569
570 .c.i:
571         $(CC) -c -I$(<D) $(CFLAGS_O) -P $(OBJOUT_FLAG)$@ $<
572
573 .y.c:
574         $(NOOP)
575
576 $(o).dll:
577         $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
578             -implib:$(*B).lib -def:$(*B).def \
579             -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
580
581 .rc.res:
582         $(RSC) -i.. $<
583
584 # This must be relative to ../lib/CORE, else the ext dll build fails...
585 PERLIMPLIB_EXP  = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib
586 PERLIMPLIB      = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
587 PERLDLL         = $(MACHINE)\perl$(PV).dll
588
589 DLLDIR          = $(MACHINE)\dll
590 PERLEXE         = $(MACHINE)\perl.exe
591
592 CONFIGPM        = ..\xlib\$(CROSS_NAME)\Config.pm
593
594 # Unicode data files generated by mktables
595 FIRSTUNIFILE     = ..\lib\unicore\Decomposition.pl
596 UNIDATAFILES     = ..\lib\unicore\Decomposition.pl \
597                    ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
598                    ..\lib\unicore\Heavy.pl ..\lib\unicore\mktables.lst \
599                    ..\lib\unicore\UCD.pl ..\lib\unicore\Name.pm \
600                    ..\lib\unicore\TestProp.pl
601
602 PERLEXE_MANIFEST= .\perlexe.manifest
603 PERLEXE_ICO     = .\perlexe.ico
604 PERLEXE_RES     = .\perlexe.res
605 PERLDLL_RES     =
606
607 # Directories of Unicode data files generated by mktables
608 UNIDATADIR1     = ..\lib\unicore\To
609 UNIDATADIR2     = ..\lib\unicore\lib
610
611 # Nominate a target which causes extensions to be re-built
612 # This used to be $(PERLEXE), but at worst it is the .dll that they depend
613 # on and really only the interface - i.e. the .def file used to export symbols
614 # from the .dll
615 PERLDEP         = perldll.def
616
617 MAKE            = nmake -nologo
618 MAKE_BARE       = nmake
619
620 CFGSH_TMPL      = config.ce
621 CFGH_TMPL       = config_H.ce
622
623 XCOPY           = xcopy /f /r /i /d /y
624 RCOPY           = xcopy /f /r /i /e /d /y
625 NOOP            = @rem
626 NULL            =
627
628 DEL             = del
629
630 MICROCORE_SRC   =               \
631                 ..\av.c         \
632                 ..\caretx.c     \
633                 ..\deb.c        \
634                 ..\doio.c       \
635                 ..\doop.c       \
636                 ..\dump.c       \
637                 ..\globals.c    \
638                 ..\gv.c         \
639                 ..\mro.c        \
640                 ..\hv.c         \
641                 ..\locale.c     \
642                 ..\keywords.c   \
643                 ..\mathoms.c    \
644                 ..\mg.c         \
645                 ..\numeric.c    \
646                 ..\op.c         \
647                 ..\pad.c        \
648                 ..\perl.c       \
649                 ..\perlapi.c    \
650                 ..\perly.c      \
651                 ..\pp.c         \
652                 ..\pp_ctl.c     \
653                 ..\pp_hot.c     \
654                 ..\pp_pack.c    \
655                 ..\pp_sort.c    \
656                 ..\pp_sys.c     \
657                 ..\reentr.c     \
658                 ..\regcomp.c    \
659                 ..\regexec.c    \
660                 ..\run.c        \
661                 ..\scope.c      \
662                 ..\sv.c         \
663                 ..\taint.c      \
664                 ..\toke.c       \
665                 ..\universal.c  \
666                 ..\utf8.c       \
667                 ..\util.c
668
669 EXTRACORE_SRC   = $(EXTRACORE_SRC) perllib.c
670
671 !IF "$(PERL_MALLOC)" == "define"
672 EXTRACORE_SRC   = $(EXTRACORE_SRC) ..\malloc.c
673 !ENDIF
674
675 EXTRACORE_SRC   = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
676
677 WIN32_SRC       =               \
678                 .\wince.c       \
679                 .\wincesck.c    \
680                 .\win32thread.c
681
682 !IF "$(CRYPT_SRC)" != ""
683 WIN32_SRC       = $(WIN32_SRC) .\$(CRYPT_SRC)
684 !ENDIF
685
686 CORE_NOCFG_H    =               \
687                 ..\av.h         \
688                 ..\cop.h        \
689                 ..\cv.h         \
690                 ..\dosish.h     \
691                 ..\embed.h      \
692                 ..\form.h       \
693                 ..\gv.h         \
694                 ..\handy.h      \
695                 ..\hv.h         \
696                 ..\hv_func.h    \
697                 ..\iperlsys.h   \
698                 ..\mg.h         \
699                 ..\nostdio.h    \
700                 ..\op.h         \
701                 ..\opcode.h     \
702                 ..\perl.h       \
703                 ..\perlapi.h    \
704                 ..\perlsdio.h   \
705                 ..\perly.h      \
706                 ..\pp.h         \
707                 ..\proto.h      \
708                 ..\regexp.h     \
709                 ..\scope.h      \
710                 ..\sv.h         \
711                 ..\thread.h     \
712                 ..\unixish.h    \
713                 ..\utf8.h       \
714                 ..\util.h       \
715                 ..\warnings.h   \
716                 ..\XSUB.h       \
717                 ..\EXTERN.h     \
718                 ..\perlvars.h   \
719                 ..\intrpvar.h   \
720                 .\include\dirent.h      \
721                 .\include\netdb.h       \
722                 .\include\sys\errno2.h  \
723                 .\include\sys\socket.h  \
724                 .\win32.h
725
726 DYNAMIC_EXT     = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
727                 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
728                 Sys/Hostname
729
730 STATIC_EXT      = DynaLoader
731
732 DYNALOADER      = $(EXTDIR)\DynaLoader\DynaLoader
733
734 ERRNO_PM        = $(LIBDIR)\Errno.pm
735
736
737 EXTENSION_PM    =               \
738                 $(ERRNO_PM)
739
740 CFG_VARS = \
741  "INST_TOP=$(INST_TOP)" \
742  "INST_VER=$(INST_VER)" \
743  "INST_ARCH=$(INST_ARCH)" \
744  "archname=$(ARCHNAME)" \
745  "cc=$(CC)" \
746  "ld=$(LINK32)"  \
747  "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
748  "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
749  "cf_by=vkon" \
750  "cf_email=$(EMAIL)" \
751 #9cef8306
752  "d_mymalloc=$(PERL_MALLOC)" \
753  "libs=$(LIBFILES)" \
754  "incpath=$(CCINCDIR)" \
755  "libperl=$(PERLIMPLIB_EXP)" \
756  "libpth=$(LIBPATH)" \
757  "libc=$(LIBC)" \
758  "make=$(MAKE_BARE)" \
759  "static_ext=$(STATIC_EXT)" \
760  "dynamic_ext=$(DYNAMIC_EXT)" \
761  "usethreads=$(USE_ITHREADS)" \
762  "useithreads=$(USE_ITHREADS)" \
763  "usemultiplicity=$(USE_MULTI)" \
764  "useperlio=$(USE_PERLIO)" \
765  "use64bitint=undef" \
766  "uselargefiles=undef" \
767  "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
768  "optimize=$(OPTIMIZE)" \
769  "WIN64=$(WIN64)"
770
771 #
772 # filenames given to xsubpp must have forward slashes (since it puts
773 # full pathnames in #line strings)
774 XSUBPP          = $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \
775                 -C++ -prototypes
776
777
778 #
779 # Top targets
780 #
781
782 all: hostminiperl $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) MakePPPort Extensions
783
784 $(DYNALOADER)$(o) : $(DYNALOADER).c xconfig.h $(EXTDIR)\DynaLoader\dlutils.c
785
786 #convenience target
787 configpm_targ : $(CONFIGPM)
788
789 $(CONFIGPM) : $(HPERL) ..\Cross\config-$(MACHINE).sh config_h.PL ..\git_version.h
790         cd .. && $(HPERL) -Ilib configpm --cross=$(CROSS_NAME) --no-glossary
791         -mkdir $(XCOREDIR)
792         $(XCOPY) ..\*.h $(XCOREDIR)\*.*
793         $(XCOPY) *.h $(XCOREDIR)\*.*
794         $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
795         $(RCOPY) include $(XCOREDIR)\*.*
796
797 .\xconfig.h:
798         -del /f xconfig.h
799         -mkdir $(XCOREDIR)
800         -$(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)" "CONFIG_H=xconfig.h"
801 #prevent accidents where the desktop config.h is used
802         $(DEL) $(XCOREDIR)\config.h
803         echo "#error This is a cross build. Use xconfig.h. \
804 " > $(XCOREDIR)\config.h
805
806 ..\git_version.h : ..\make_patchnum.pl
807         cd .. && $(HPERL) -Ilib make_patchnum.pl && cd win32
808
809 # make sure that we recompile perl.c if the git version changes
810 $(DLLDIR)\perl.obj : ..\git_version.h
811
812 ..\Cross\config-$(MACHINE).sh: config.ce config_sh.PL
813         $(HPERL) -I..\lib -I. config_sh.PL $(CFG_VARS) config.ce > ..\Cross\config-$(MACHINE).sh
814
815 MakePPPort: $(HPERL) $(CONFIGPM)
816         $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ..\mkppport
817
818 MakePPPort_clean:
819         -if exist $(HPERL) $(HPERL) -I..\lib ..\mkppport --clean
820
821 #----------------------------------------------------------------------------------
822 NOT_COMPILE_EXT =
823 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
824 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
825 !endif
826 !if "$(MACHINE)" == "wince-mips-palm-wce211"
827 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
828 !endif
829
830 Extensions: ..\make_ext.pl $(CONFIGPM)
831         $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR)  --all \
832         !POSIX !Errno !Win32 !Win32API/File !Time/HiRes !Time/Piece !re !SDBM_File $(NOT_COMPILE_EXT)
833
834 Extensions_clean:
835         -if exist $(HPERL) $(HPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR)  --all --target=clean 
836
837 #----------------------------------------------------------------------------------
838
839 $(PERLEXE_RES): perlexe.rc perl.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
840         rc $(RCDEFS) perlexe.rc
841
842 clean: Extensions_clean
843         -if exist .\$(MACHINE)\dll rmdir /s /q .\$(MACHINE)\dll
844   -@$(DEL) .\$(MACHINE)\*.obj
845   -@$(DEL) .\$(MACHINE)\*.exe
846   -@$(DEL) .\$(MACHINE)\*.dll
847   -@$(DEL) .\$(MACHINE)\*.lib
848         -@$(DEL) .\$(MACHINE)\*.exp
849         -@$(DEL) .\$(MACHINE)\*.pdb
850   -@$(DEL) ..\Cross\config-$(MACHINE).sh
851         -if exist ..\xlib rmdir /s /q ..\xlib
852         -if exist .\$(MACHINE) rmdir /s /q .\$(MACHINE)
853   -@$(DEL) config.h xconfig.h perl.res
854         -@$(DEL) ..\git_version.h
855   -@$(DEL) ..\t\test_state
856
857 XDLLOBJS = \
858 $(DLLDIR)\av.obj \
859 $(DLLDIR)\caretx.obj \
860 $(DLLDIR)\deb.obj \
861 $(DLLDIR)\doio.obj \
862 $(DLLDIR)\doop.obj \
863 $(DLLDIR)\dump.obj \
864 $(DLLDIR)\globals.obj \
865 $(DLLDIR)\gv.obj \
866 $(DLLDIR)\mro.obj \
867 $(DLLDIR)\hv.obj \
868 $(DLLDIR)\locale.obj \
869 $(DLLDIR)\keywords.obj \
870 $(DLLDIR)\mathoms.obj \
871 $(DLLDIR)\mg.obj \
872 $(DLLDIR)\numeric.obj \
873 $(DLLDIR)\op.obj \
874 $(DLLDIR)\pad.obj \
875 $(DLLDIR)\perl.obj \
876 $(DLLDIR)\perlapi.obj \
877 $(DLLDIR)\perlio.obj \
878 $(DLLDIR)\perly.obj \
879 $(DLLDIR)\pp.obj \
880 $(DLLDIR)\pp_ctl.obj \
881 $(DLLDIR)\pp_hot.obj \
882 $(DLLDIR)\pp_pack.obj \
883 $(DLLDIR)\pp_sort.obj \
884 $(DLLDIR)\pp_sys.obj \
885 $(DLLDIR)\reentr.obj \
886 $(DLLDIR)\regcomp.obj \
887 $(DLLDIR)\regexec.obj \
888 $(DLLDIR)\run.obj \
889 $(DLLDIR)\scope.obj \
890 $(DLLDIR)\sv.obj \
891 $(DLLDIR)\taint.obj \
892 $(DLLDIR)\toke.obj \
893 $(DLLDIR)\universal.obj \
894 $(DLLDIR)\utf8.obj \
895 $(DLLDIR)\util.obj \
896 $(DLLDIR)\win32thread.obj \
897 $(DLLDIR)\wince.obj \
898 $(DLLDIR)\win32io.obj \
899 $(DLLDIR)\wincesck.obj \
900 $(DLLDIR)\perllib.obj \
901 $(DLLDIR)\DynaLoader.obj
902 !IF "$(PERL_MALLOC)" == "define"
903 XDLLOBJS        = $(XDLLOBJS) $(DLLDIR)\malloc.obj
904 !ENDIF
905 !IF "$(CRYPT_SRC)" != ""
906 XDLLOBJS        = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj
907 !ENDIF
908
909 #sanity checks to make sure all our external files (celib, w32console, and
910 #MS CE SDK) are locatable
911 lib_check :
912     @if not exist $(CECONSOLEDIR)\$(MACHINE)\w32console.obj cmd /k \
913         "echo w32console.obj doesn't seem to exist, check your w32console directory \
914         & exit 1"
915     @if not exist $(CELIBDLLDIR)\$(MACHINE)-release\celib.lib cmd /k \
916         "echo celib.lib doesn't seem to exist, check your celib directory \
917         & exit 1"
918     @for %X in ( $(LIBC) ) do @if exist %~^$LIB:X ( exit 0 ) \
919         else ( echo $(LIBC) doesn't seem to exist, check your build enviroment & exit 1 )
920
921 #specific header files to check picked at random
922 header_check  :
923     @if not exist $(CELIBDLLDIR)\inc\cewin32.h  cmd /k \
924         "echo cewin32.h doesn't seem to exist, check your celib directory \
925         & exit 1"
926     @for %X in (ceconfig.h) do @if exist %~^$INCLUDE:X ( exit 0 ) \
927         else ( echo ceconfig.h doesn't seem to exist, check your build enviroment & exit 1 )
928
929 {$(SRCDIR)}.c{$(DLLDIR)}.obj:
930     $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
931
932 # compiler explains that it will optimize toke.c if we'll give it an
933 # option -QMOb<num> with num>=4178
934 $(DLLDIR)\toke.obj:
935     $(CC) -c $(CFLAGS_O) -QMOb9000 -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ ..\toke.c
936
937 {$(SRCDIR)/win32}.c{$(DLLDIR)}.obj:
938     $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
939
940 # -DPERL_IMPLICIT_SYS needs C++ for perllib.c
941 # This is the only file that depends on perlhost.h, vmem.h, and vdir.h
942 !IF "$(USE_IMP_SYS)" == "define"
943 $(DLLDIR)\perllib$(o)   : perllib.c .\perlhost.h .\vdir.h .\vmem.h
944         $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
945         rem (frustrated) mv perllib.obj $(DLLDIR)
946 !ENDIF
947
948 perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl .\xconfig.h
949         $(HPERL) -I..\lib -MCross create_perllibst_h.pl
950         $(HPERL) -I..\lib -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
951             CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def
952
953 $(PERLDLL) : header_check lib_check $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
954         $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ \
955                   $(SUBSYS) $(LDLIBPATH) \
956                   $(LINK_FLAGS) $(LIBFILES) \
957                   $(XDLLOBJS) $(PERLDLL_RES)
958
959 $(DLLDIR) :
960         if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
961
962 $(EXTDIR)\DynaLoader\DynaLoader.c :
963         $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader
964
965 $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
966     $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
967           $(EXTDIR)\DynaLoader\DynaLoader.c
968
969 XPERLEXEOBJS = \
970 $(MACHINE)\perlmaince.obj
971
972 $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
973         $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR)
974         $(LINK32) $(SUBSYS) $(LDLIBPATH) \
975             -entry:wWinMainCRTStartup \
976             -out:$(MACHINE)\perl.exe \
977             -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
978             $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
979
980 $(MACHINE)\perlmaince.obj : perlmaince.c
981         $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmaince.c
982
983 iodll:     $(IO_DLL)
984 socketdll: $(SOCKET_DLL)
985 dumperdll: $(DUMPER_DLL)
986
987 dlls: socketdll iodll dumperdll
988         -xmkdir -p $(MACHINE)/lib/auto/IO
989         cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
990         cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
991         -xmkdir $(MACHINE)/lib/auto/Socket
992         cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
993         cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
994         -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
995         cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
996         cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
997
998 makedist: all dlls
999         $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
1000         cp perl.txt $(MACHINE)
1001         cp registry.bat $(MACHINE)
1002         cp ../lib/Config.pm $(MACHINE)/lib
1003         cd $(MACHINE)
1004         -@$(DEL) perl-$(MACHINE).tar.gz
1005         sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib"
1006         gzip -9 perl-$(MACHINE).tar
1007         mv perl-$(MACHINE).tar.gz h:/freenet/new
1008         cd ..
1009
1010 install: all
1011         -cemkdir "$(INSTALL_ROOT)"
1012         -cemkdir "$(INSTALL_ROOT)\bin"
1013         -cemkdir "$(INSTALL_ROOT)\lib"
1014         $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin"
1015         $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
1016         $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib"
1017
1018 $(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables
1019         cd ..\lib\unicore && \
1020         $(HPERL) -I.. -I..\..\lib -MCross=$(CROSS_NAME) mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
1021
1022 dist: all
1023         $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
1024
1025 zipdist: all
1026         $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
1027         $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
1028
1029 zip:
1030         $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
1031
1032 hostminiperl: ..\miniperl.exe
1033
1034 ..\miniperl.exe:
1035         set PATH=$(CCHOME)\bin;$(PATH)
1036         $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
1037
1038 host-install:
1039         perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)"
1040         perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)"
1041         perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#"
1042         perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#"
1043         perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
1044          quotemeta($$Config{installprefixexp}) . \
1045          qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#"