This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
840cee63bb690c73b062525447bbbc3b6a264663
[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         = 520
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 AUTODIR         = ..\lib\auto
501 LIBDIR          = ..\lib
502 EXTDIR          = ..\ext
503 DISTDIR         = ..\dist
504 CPANDIR         = ..\cpan
505 PODDIR          = ..\pod
506 EXTUTILSDIR     = $(LIBDIR)\ExtUtils
507
508 LINK32          = link
509 LIB32           = $(LINK32) -lib
510 RSC             = rc
511
512 INCLUDES        = -I.\include -I. -I..
513 DEFINES         = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
514 LOCDEFS         = -DPERLDLL -DPERL_CORE
515 CXX_FLAG        = -TP
516
517 PERLEXE_RES     = perl.res
518 PERLDLL_RES     =
519
520 !if "$(CFG)" == "RELEASE"
521 CELIB           = celib.lib
522 !endif
523
524 !if "$(CFG)" == "DEBUG"
525 CELIB           = celib.lib
526 !endif
527
528 #use ws2.lib instead of winsock.lib for WSAGetLastError
529 CELIBS          = -nodefaultlib \
530                   ws2.lib $(CELIB) coredll.lib
531
532 #this libc's purpose is WinCE entrypoint to main wrapper, not a real C std lib
533 !if $(CEVersion) > 200
534 LIBC          = corelibc.lib
535 !else
536 LIBC          = msvcrt.lib
537 !endif
538
539 LIBBASEFILES    = $(CRYPT_LIB) $(CELIBS)
540
541 LIBFILES        = $(LIBBASEFILES) $(LIBC)
542
543 CFLAGS          = -nologo -GF -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
544                 $(PCHFLAGS) $(OPTIMIZE)
545
546 LINK_FLAGS      = -nologo -debug -opt:ref,icf -machine:$(PROCESSOR_ARCHITECTURE)
547
548 !if "$(CFG)" == "RELEASE" && "$(CCTYPE)" != "MSVC60"
549 #see matching flag in CECFLAGS
550 LINK_FLAGS      = $(LINK_FLAGS) -ltcg
551 !endif
552
553 OBJOUT_FLAG     = -Fo
554 EXEOUT_FLAG     = -Fe
555
556 CFLAGS_O        = $(CFLAGS) $(BUILDOPT)
557
558 o = .obj
559
560 #
561 # Rules
562 #
563
564 .SUFFIXES : .c $(o) .dll .lib .exe .rc .res
565
566 .c$(o):
567         $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
568
569 .c.i:
570         $(CC) -c -I$(<D) $(CFLAGS_O) -P $(OBJOUT_FLAG)$@ $<
571
572 .y.c:
573         $(NOOP)
574
575 $(o).dll:
576         $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
577             -implib:$(*B).lib -def:$(*B).def \
578             -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
579
580 .rc.res:
581         $(RSC) -i.. $<
582
583 # This must be relative to ../lib/CORE, else the ext dll build fails...
584 PERLIMPLIB_EXP  = perl$(PV).lib
585 PERLIMPLIB      = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
586 PERLDLL         = $(MACHINE)\perl$(PV).dll
587
588 DLLDIR          = $(MACHINE)\dll
589 PERLEXE         = $(MACHINE)\perl.exe
590
591 CONFIGPM        = ..\lib\Config.pm ..\lib\Config_heavy.pl
592 GENUUDMAP       = ..\generate_uudmap.exe
593
594 UUDMAP_H        = ..\uudmap.h
595 BITCOUNT_H      = ..\bitcount.h
596 MG_DATA_H       = ..\mg_data.h
597 GENERATED_HEADERS = $(UUDMAP_H) $(BITCOUNT_H) $(MG_DATA_H)
598
599 # Unicode data files generated by mktables
600 FIRSTUNIFILE     = ..\lib\unicore\Decomposition.pl
601 UNIDATAFILES     = ..\lib\unicore\Decomposition.pl \
602                    ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
603                    ..\lib\unicore\Heavy.pl ..\lib\unicore\mktables.lst \
604                    ..\lib\unicore\UCD.pl ..\lib\unicore\Name.pm \
605                    ..\lib\unicore\TestProp.pl
606
607 PERLEXE_MANIFEST= .\perlexe.manifest
608 PERLEXE_ICO     = .\perlexe.ico
609 PERLEXE_RES     = .\perlexe.res
610 PERLDLL_RES     =
611
612 # Directories of Unicode data files generated by mktables
613 UNIDATADIR1     = ..\lib\unicore\To
614 UNIDATADIR2     = ..\lib\unicore\lib
615
616 # Nominate a target which causes extensions to be re-built
617 # This used to be $(PERLEXE), but at worst it is the .dll that they depend
618 # on and really only the interface - i.e. the .def file used to export symbols
619 # from the .dll
620 PERLDEP         = perldll.def
621
622 MAKE            = nmake -nologo
623 MAKE_BARE       = nmake
624
625 CFGSH_TMPL      = config.ce
626 CFGH_TMPL       = config_H.ce
627
628 XCOPY           = xcopy /f /r /i /d /y
629 RCOPY           = xcopy /f /r /i /e /d /y
630 NOOP            = @rem
631 NULL            =
632
633 DEL             = del
634
635 MICROCORE_SRC   =               \
636                 ..\av.c         \
637                 ..\caretx.c     \
638                 ..\deb.c        \
639                 ..\doio.c       \
640                 ..\doop.c       \
641                 ..\dump.c       \
642                 ..\globals.c    \
643                 ..\gv.c         \
644                 ..\mro.c        \
645                 ..\hv.c         \
646                 ..\locale.c     \
647                 ..\keywords.c   \
648                 ..\mathoms.c    \
649                 ..\mg.c         \
650                 ..\numeric.c    \
651                 ..\op.c         \
652                 ..\pad.c        \
653                 ..\perl.c       \
654                 ..\perlapi.c    \
655                 ..\perly.c      \
656                 ..\pp.c         \
657                 ..\pp_ctl.c     \
658                 ..\pp_hot.c     \
659                 ..\pp_pack.c    \
660                 ..\pp_sort.c    \
661                 ..\pp_sys.c     \
662                 ..\reentr.c     \
663                 ..\regcomp.c    \
664                 ..\regexec.c    \
665                 ..\run.c        \
666                 ..\scope.c      \
667                 ..\sv.c         \
668                 ..\taint.c      \
669                 ..\toke.c       \
670                 ..\universal.c  \
671                 ..\utf8.c       \
672                 ..\util.c
673
674 EXTRACORE_SRC   = $(EXTRACORE_SRC) perllib.c
675
676 !IF "$(PERL_MALLOC)" == "define"
677 EXTRACORE_SRC   = $(EXTRACORE_SRC) ..\malloc.c
678 !ENDIF
679
680 EXTRACORE_SRC   = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
681
682 WIN32_SRC       =               \
683                 .\wince.c       \
684                 .\wincesck.c    \
685                 .\win32thread.c
686
687 !IF "$(CRYPT_SRC)" != ""
688 WIN32_SRC       = $(WIN32_SRC) .\$(CRYPT_SRC)
689 !ENDIF
690
691 CORE_NOCFG_H    =               \
692                 ..\av.h         \
693                 ..\cop.h        \
694                 ..\cv.h         \
695                 ..\dosish.h     \
696                 ..\embed.h      \
697                 ..\form.h       \
698                 ..\gv.h         \
699                 ..\handy.h      \
700                 ..\hv.h         \
701                 ..\hv_func.h    \
702                 ..\iperlsys.h   \
703                 ..\mg.h         \
704                 ..\nostdio.h    \
705                 ..\op.h         \
706                 ..\opcode.h     \
707                 ..\perl.h       \
708                 ..\perlapi.h    \
709                 ..\perlsdio.h   \
710                 ..\perly.h      \
711                 ..\pp.h         \
712                 ..\proto.h      \
713                 ..\regexp.h     \
714                 ..\scope.h      \
715                 ..\sv.h         \
716                 ..\thread.h     \
717                 ..\unixish.h    \
718                 ..\utf8.h       \
719                 ..\util.h       \
720                 ..\warnings.h   \
721                 ..\XSUB.h       \
722                 ..\EXTERN.h     \
723                 ..\perlvars.h   \
724                 ..\intrpvar.h   \
725                 .\include\dirent.h      \
726                 .\include\netdb.h       \
727                 .\include\sys\errno2.h  \
728                 .\include\sys\socket.h  \
729                 .\win32.h
730
731 DYNAMIC_EXT     = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
732                 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
733                 Sys/Hostname
734
735 STATIC_EXT      = DynaLoader
736
737 DYNALOADER      = $(EXTDIR)\DynaLoader\DynaLoader
738
739 ERRNO_PM        = $(LIBDIR)\Errno.pm
740
741
742 EXTENSION_PM    =               \
743                 $(ERRNO_PM)
744
745 CFG_VARS = \
746  "INST_TOP=$(INST_TOP)" \
747  "INST_VER=$(INST_VER)" \
748  "INST_ARCH=$(INST_ARCH)" \
749  "archname=$(ARCHNAME)" \
750  "cc=$(CC)" \
751  "ld=$(LINK32)"  \
752  "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
753  "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
754  "cf_by=vkon" \
755  "cf_email=$(EMAIL)" \
756 #9cef8306
757  "d_mymalloc=$(PERL_MALLOC)" \
758  "libs=$(LIBFILES)" \
759  "incpath=$(CCINCDIR)" \
760  "libperl=$(PERLIMPLIB_EXP)" \
761  "libpth=$(LIBPATH)" \
762  "libc=$(LIBC)" \
763  "make=$(MAKE_BARE)" \
764  "static_ext=$(STATIC_EXT)" \
765  "dynamic_ext=$(DYNAMIC_EXT)" \
766  "usethreads=$(USE_ITHREADS)" \
767  "useithreads=$(USE_ITHREADS)" \
768  "usemultiplicity=$(USE_MULTI)" \
769  "useperlio=$(USE_PERLIO)" \
770  "use64bitint=undef" \
771  "uselargefiles=undef" \
772  "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
773  "optimize=$(OPTIMIZE)" \
774  "WIN64=$(WIN64)"
775
776 #
777 # filenames given to xsubpp must have forward slashes (since it puts
778 # full pathnames in #line strings)
779 XSUBPP          = $(HPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
780                 -C++ -prototypes
781
782
783 #
784 # Top targets
785 #
786
787 all: hostminiperl force_config_h ..\lib\buildcustomize.pl .\config.h ..\git_version.h $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) MakePPPort Extensions
788
789 $(DYNALOADER)$(o) : $(DYNALOADER).c config.h $(EXTDIR)\DynaLoader\dlutils.c
790
791 #convenience target
792 configpm_targ : $(CONFIGPM)
793
794 force_config_h:
795         -@$(DEL) /f config.h
796         -@$(DEL) /f config.sh
797         -@$(DEL) /f ..\config.h
798         -@$(DEL) /f ..\config.sh
799         -@$(DEL) $(PERLEXE_RES)
800         -@mkdir ..\host
801         -@copy $(HPERL) ..\host\miniperl.exe
802         -@copy $(GENUUDMAP) ..\host\generate_uudmap.exe
803         -@$(MAKE) -f Makefile distclean
804         -@copy ..\host\miniperl.exe $(HPERL)
805         -@copy ..\host\generate_uudmap.exe $(GENUUDMAP)
806         $(GENUUDMAP) $(GENERATED_HEADERS)
807         type NUL > force_config_h
808
809 $(UUDMAP_H) $(MG_DATA_H) : $(BITCOUNT_H)
810
811 $(BITCOUNT_H) :
812         $(GENUUDMAP) $(GENERATED_HEADERS)
813
814 $(CONFIGPM) : $(HPERL) ..\config.sh config_h.PL ..\git_version.h
815         cd .. && $(HPERL) -Ilib configpm --no-glossary
816         if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
817         $(XCOPY) ..\*.h $(COREDIR)\*.*
818         $(XCOPY) *.h $(COREDIR)\*.*
819         $(RCOPY) include $(COREDIR)\*.*
820         if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
821
822 .\config.h: $(CONFIGPM) ..\config.sh
823         -@$(DEL) /f config.h
824         -$(HPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(COREDIR)" "CONFIG_H=config.h"
825         copy config.h ..\config.h
826
827 ..\config.sh : config.ce config_sh.PL FindExt.pm
828         -@$(DEL) /f config.sh
829         $(HPERL) -I..\lib -I. config_sh.PL $(CFG_VARS) config.ce > ..\config.sh
830
831 ..\git_version.h : ..\make_patchnum.pl
832         cd .. && $(HPERL) -Ilib make_patchnum.pl && cd win32
833
834 # make sure that we recompile perl.c if the git version changes
835 $(DLLDIR)\perl.obj : ..\git_version.h
836
837 MakePPPort: $(HPERL) $(CONFIGPM) Extensions_nonxs
838         $(HPERL) -I..\lib ..\mkppport
839
840 MakePPPort_clean:
841         -if exist $(HPERL) $(HPERL) -I..\lib ..\mkppport --clean
842
843 #----------------------------------------------------------------------------------
844 NOT_COMPILE_EXT =
845 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
846 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
847 !endif
848 !if "$(MACHINE)" == "wince-mips-palm-wce211"
849 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
850 !endif
851
852 Extensions: ..\make_ext.pl $(CONFIGPM)
853         $(HPERL) -I..\lib -I. ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR)  --all \
854         !POSIX !Win32 !Win32API/File !Time/HiRes !Time/Piece !re !SDBM_File $(NOT_COMPILE_EXT)
855
856
857 Extensions_nonxs: ..\make_ext.pl ..\lib\buildcustomize.pl $(CONFIGPM) ..\pod\perlfunc.pod
858         $(XCOPY) ..\*.h $(COREDIR)\*.*
859         $(HPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs
860
861 Extensions_clean:
862         -if exist $(HPERL) $(HPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR)  --all --target=clean 
863
864 #----------------------------------------------------------------------------------
865
866 $(PERLEXE_RES): perlexe.rc perl.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
867         rc $(RCDEFS) perlexe.rc
868
869 clean: Extensions_clean
870         -if exist .\$(MACHINE)\dll rmdir /s /q .\$(MACHINE)\dll
871   -@$(DEL) .\$(MACHINE)\*.obj
872   -@$(DEL) .\$(MACHINE)\*.exe
873   -@$(DEL) .\$(MACHINE)\*.dll
874   -@$(DEL) .\$(MACHINE)\*.lib
875         -@$(DEL) .\$(MACHINE)\*.exp
876         -@$(DEL) .\$(MACHINE)\*.pdb
877         -@$(DEL) ..\git_version.h
878   -@$(DEL) config.h perl.res
879   -@$(DEL) ..\t\test_state
880
881 XDLLOBJS = \
882 $(DLLDIR)\av.obj \
883 $(DLLDIR)\caretx.obj \
884 $(DLLDIR)\deb.obj \
885 $(DLLDIR)\doio.obj \
886 $(DLLDIR)\doop.obj \
887 $(DLLDIR)\dump.obj \
888 $(DLLDIR)\globals.obj \
889 $(DLLDIR)\gv.obj \
890 $(DLLDIR)\mro.obj \
891 $(DLLDIR)\hv.obj \
892 $(DLLDIR)\locale.obj \
893 $(DLLDIR)\keywords.obj \
894 $(DLLDIR)\mathoms.obj \
895 $(DLLDIR)\mg.obj \
896 $(DLLDIR)\numeric.obj \
897 $(DLLDIR)\op.obj \
898 $(DLLDIR)\pad.obj \
899 $(DLLDIR)\perl.obj \
900 $(DLLDIR)\perlapi.obj \
901 $(DLLDIR)\perlio.obj \
902 $(DLLDIR)\perly.obj \
903 $(DLLDIR)\pp.obj \
904 $(DLLDIR)\pp_ctl.obj \
905 $(DLLDIR)\pp_hot.obj \
906 $(DLLDIR)\pp_pack.obj \
907 $(DLLDIR)\pp_sort.obj \
908 $(DLLDIR)\pp_sys.obj \
909 $(DLLDIR)\reentr.obj \
910 $(DLLDIR)\regcomp.obj \
911 $(DLLDIR)\regexec.obj \
912 $(DLLDIR)\run.obj \
913 $(DLLDIR)\scope.obj \
914 $(DLLDIR)\sv.obj \
915 $(DLLDIR)\taint.obj \
916 $(DLLDIR)\toke.obj \
917 $(DLLDIR)\universal.obj \
918 $(DLLDIR)\utf8.obj \
919 $(DLLDIR)\util.obj \
920 $(DLLDIR)\win32thread.obj \
921 $(DLLDIR)\wince.obj \
922 $(DLLDIR)\win32io.obj \
923 $(DLLDIR)\wincesck.obj \
924 $(DLLDIR)\perllib.obj \
925 $(DLLDIR)\DynaLoader.obj
926 !IF "$(PERL_MALLOC)" == "define"
927 XDLLOBJS        = $(XDLLOBJS) $(DLLDIR)\malloc.obj
928 !ENDIF
929 !IF "$(CRYPT_SRC)" != ""
930 XDLLOBJS        = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj
931 !ENDIF
932
933 #sanity checks to make sure all our external files (celib, w32console, and
934 #MS CE SDK) are locatable
935 lib_check :
936     @if not exist $(CECONSOLEDIR)\$(MACHINE)\w32console.obj cmd /k \
937         "echo w32console.obj doesn't seem to exist, check your w32console directory \
938         & exit 1"
939     @if not exist $(CELIBDLLDIR)\$(MACHINE)-release\celib.lib cmd /k \
940         "echo celib.lib doesn't seem to exist, check your celib directory \
941         & exit 1"
942     @for %X in ( $(LIBC) ) do @if exist %~^$LIB:X ( exit 0 ) \
943         else ( echo $(LIBC) doesn't seem to exist, check your build enviroment & exit 1 )
944
945 #specific header files to check picked at random
946 header_check  :
947     @if not exist $(CELIBDLLDIR)\inc\cewin32.h  cmd /k \
948         "echo cewin32.h doesn't seem to exist, check your celib directory \
949         & exit 1"
950     @for %X in (ceconfig.h) do @if exist %~^$INCLUDE:X ( exit 0 ) \
951         else ( echo ceconfig.h doesn't seem to exist, check your build enviroment & exit 1 )
952
953 {$(SRCDIR)}.c{$(DLLDIR)}.obj:
954     $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
955
956 # compiler explains that it will optimize toke.c if we'll give it an
957 # option -QMOb<num> with num>=4178
958 $(DLLDIR)\toke.obj:
959     $(CC) -c $(CFLAGS_O) -QMOb9000 -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ ..\toke.c
960
961 {$(SRCDIR)/win32}.c{$(DLLDIR)}.obj:
962     $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
963
964 # -DPERL_IMPLICIT_SYS needs C++ for perllib.c
965 # This is the only file that depends on perlhost.h, vmem.h, and vdir.h
966 !IF "$(USE_IMP_SYS)" == "define"
967 $(DLLDIR)\perllib$(o)   : perllib.c .\perlhost.h .\vdir.h .\vmem.h
968         $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
969         rem (frustrated) mv perllib.obj $(DLLDIR)
970 !ENDIF
971
972 perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl .\config.h
973         $(HPERL) -I..\lib create_perllibst_h.pl
974         $(HPERL) -I..\lib -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
975             CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def
976
977 $(PERLDLL) : header_check lib_check $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
978         $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ \
979                   $(SUBSYS) $(LDLIBPATH) \
980                   $(LINK_FLAGS) $(LIBFILES) \
981                   $(XDLLOBJS) $(PERLDLL_RES)
982
983 $(DLLDIR) :
984         if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
985
986 $(EXTDIR)\DynaLoader\DynaLoader.c :
987         $(HPERL) -I..\lib -I. ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader
988
989 $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
990     $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
991           $(EXTDIR)\DynaLoader\DynaLoader.c
992
993 XPERLEXEOBJS = \
994 $(MACHINE)\perlmaince.obj
995
996 ..\lib\buildcustomize.pl :
997         $(HPERL) -I..\lib -f ..\write_buildcustomize.pl ..
998
999 $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
1000         $(XCOPY) $(MACHINE)\*.lib $(COREDIR)
1001         $(LINK32) $(SUBSYS) $(LDLIBPATH) \
1002             -entry:wWinMainCRTStartup \
1003             -out:$(MACHINE)\perl.exe \
1004             -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
1005             $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
1006
1007 $(MACHINE)\perlmaince.obj : perlmaince.c
1008         $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmaince.c
1009
1010 iodll:     $(IO_DLL)
1011 socketdll: $(SOCKET_DLL)
1012 dumperdll: $(DUMPER_DLL)
1013
1014 dlls: socketdll iodll dumperdll
1015         -xmkdir -p $(MACHINE)/lib/auto/IO
1016         copy ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
1017         copy ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
1018         -xmkdir $(MACHINE)/lib/auto/Socket
1019         copy ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
1020         copy ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
1021         -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
1022         copy ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
1023         copy ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
1024
1025 makedist: all dlls
1026         $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
1027         copy perl.txt $(MACHINE)
1028         copy registry.bat $(MACHINE)
1029         copy ../lib/Config.pm $(MACHINE)/lib
1030         cd $(MACHINE)
1031         -@$(DEL) perl-$(MACHINE).tar.gz
1032         sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib"
1033         gzip -9 perl-$(MACHINE).tar
1034         mv perl-$(MACHINE).tar.gz h:/freenet/new
1035         cd ..
1036
1037 install: all
1038         -cemkdir "$(INSTALL_ROOT)"
1039         -cemkdir "$(INSTALL_ROOT)\bin"
1040         -cemkdir "$(INSTALL_ROOT)\lib"
1041         $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin"
1042         $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
1043         $(CECOPY) "pc:../lib/Config.pm" "ce:$(INSTALL_ROOT)/lib"
1044
1045 $(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables MakePPPort
1046         cd ..\lib\unicore && \
1047         $(HPERL) -I.. -I..\..\lib mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
1048
1049 dist: all
1050         $(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
1051
1052 zipdist: all
1053         $(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
1054         $(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
1055
1056 zip:
1057         $(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
1058
1059 hostminiperl: ..\miniperl.exe
1060
1061 ..\miniperl.exe:
1062         set PATH=$(CCHOME)\bin;$(PATH)
1063         $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
1064
1065 host-install:
1066         perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/lib/CORE#},1)"
1067         perl -MConfig -MExtUtils::Install -we "install({'../lib', qq#$$Config{installprefixexp}/lib#},1)"
1068         perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/lib/CORE#"
1069         perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
1070          quotemeta($$Config{installprefixexp}) . \
1071          qq#/lib'}\" $$Config{installprefixexp}/lib/Config.pm#"