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