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