This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
run/locale.t: Add explanation for when tests fail
[perl5.git] / win32 / Makefile.ce
CommitLineData
b0f06652 1#
e4451f11 2# perl makefile for wince
b0f06652
VK
3# During the cross-compilation, it first uses Makefile file to build
4# miniperl on HOST and then build required platform
e4451f11 5#
e4451f11
JH
6
7SRCDIR = ..
46f5adf9 8PV = 521
42165d27 9
18f68570 10# INSTALL_ROOT specifies a path where this perl will be installed on CE device
42165d27 11INSTALL_ROOT=/netzwerk/sprache/perl
18f68570
VK
12INST_TOP=$(INSTALL_ROOT)
13INST_VER=
42165d27
VK
14
15# PERLCEDIR shoud be set to current directory
58ff4bd0 16PERLCEDIR = $(MAKEDIR)
42165d27 17
18f68570 18# WCEROOT is a directory where Windows CE Tools was installed
ca6c63e1 19WCEROOT = D:\Windows CE Tools
18f68570
VK
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
24HPERL = $(MAKEDIR)\..\miniperl.exe
25
ca6c63e1
JH
26CEPATH = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN
27CELIBDLLDIR = h:\src\wince\celib-palm-3.0
e4451f11 28CECONSOLEDIR = h:\src\wince\w32console
18f68570
VK
29
30# specify following options to build perl on local machine, by MSVC
31MSVCDIR = D:\MSVStudio\VC98
32CCHOME = $(MSVCDIR)
33CCINCDIR = $(CCHOME)\include
34CCLIBDIR = $(CCHOME)\lib
35
42165d27
VK
36# cecopy program. Make shure it is in your path, as well as cemkdir, cedel
37CECOPY = cecopy
38
18f68570 39#
f4257e4d
YO
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
18f68570
VK
44# encodings and may see lower IO performance. You have been warned.
45USE_PERLIO = define
46
2e64bfdb
JH
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#
53PERL_MALLOC = define
54
18f68570 55
e4451f11
JH
56NOOP = @echo
57# keep this untouched!
58NULL =
59
2c8bbb43
DD
60#
61# uncomment exactly one of the following
62#
63# Embedded Visual C++ 4 and older
64CCTYPE = 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
42165d27 69
aebd5ec7
VK
70#CFG=DEBUG
71CFG=RELEASE
e4451f11
JH
72
73!if "$(MACHINE)" == ""
74MACHINE=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
61b311ca 87#MACHINE=wince-x86-hpc-wce300
2c8bbb43 88#MACHINE=wince-arm-pocket-wce400
e4451f11
JH
89!endif
90
2e64bfdb
JH
91# set this to your email address
92#
93#EMAIL =
94
95##################### CHANGE THESE ONLY IF YOU MUST #####################
96
e4451f11
JH
97######################################################################
98# machines
99
100!if "$(MACHINE)" == "wince-sh3-hpc-wce211"
101CC = shcl.exe
102ARCH = SH3
103CPU = SH3
104TARGETCPU = SH3
105CEVersion = 211
106OSVERSION = WCE211
107PLATFORM = MS HPC Pro
108MCFLAGS = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
109 -I $(CELIBDLLDIR)\inc
110SUBSYS = -subsystem:windowsce,2.11
111CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
112LDLIBPATH = -libpath:$(CELIBPATH)
113STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
114 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
115!endif
116
117!if "$(MACHINE)" == "wince-mips-hpc-wce211"
118CC = clmips.exe
119ARCH = MIPS
120CPU = MIPS
121TARGETCPU = MIPS
122CEVersion = 211
123OSVERSION = WCE211
124PLATFORM = MS HPC Pro
125MCFLAGS = -D _MT -D _DLL \
126 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
127 -D PALM_SIZE \
128 -I $(CELIBDLLDIR)\inc
129SUBSYS = -subsystem:windowsce,2.11
130CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
131LDLIBPATH = -libpath:$(CELIBPATH)
132STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
133 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
134!endif
135
136!if "$(MACHINE)" == "wince-mips-hpc-wce200"
137CC = clmips.exe
138ARCH = MIPS
139CPU = MIPS
140TARGETCPU = MIPS
141CEVersion = 200
142OSVERSION = WCE200
143PLATFORM = MS HPC
144# MUST USE -MD to get the right FPE stuff...
145MCFLAGS = -D _MT -D _DLL -MD \
146 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
147 -D PALM_SIZE \
148 -I $(CELIBDLLDIR)\inc
149SUBSYS = -subsystem:windowsce,2.00
150CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
151LDLIBPATH = -libpath:$(CELIBPATH)
152STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
153 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
154!endif
155
156!if "$(MACHINE)" == "wince-sh3-hpc-wce200"
157CC = shcl.exe
158ARCH = SH3
159CPU = SH3
160TARGETCPU = SH3
161CEVersion = 200
162OSVERSION = WCE200
163PLATFORM = MS HPC
164# MUST USE -MD to get the right FPE stuff...
165MCFLAGS = -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
169SUBSYS = -subsystem:windowsce,2.00
170CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
171LDLIBPATH = -libpath:$(CELIBPATH)
172STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
173 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
174!endif
175
176!if "$(MACHINE)" == "wince-arm-hpc-wce211"
177CC = clarm.exe
178ARCH = ARM
179CPU = ARM
180TARGETCPU = ARM
181CEVersion = 211
182OSVERSION = WCE211
183PLATFORM = MS HPC Pro
184MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
185 -DPROCESSOR_ARM -DPALM_SIZE \
186 -I $(CELIBDLLDIR)\inc
187SUBSYS = -subsystem:windowsce,2.11
188CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
189LDLIBPATH = -libpath:$(CELIBPATH)
190STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
191 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
192!endif
193
194!if "$(MACHINE)" == "wince-arm-hpc-wce300"
195CC = clarm.exe
196ARCH = ARM
197CPU = ARM
198TARGETCPU = ARM
199CEVersion = 300
200OSVERSION = WCE300
c96f74ce 201#PLATFORM = HPC2000
e4451f11
JH
202MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
203 -DPROCESSOR_ARM -DPALM_SIZE \
204 -I $(CELIBDLLDIR)\inc
205SUBSYS = -subsystem:windowsce,3.00
206CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
207LDLIBPATH = -libpath:$(CELIBPATH)
208STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
209 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
210!endif
211
212!if "$(MACHINE)" == "wince-mips-palm-wce211"
213CC = clmips.exe
214ARCH = MIPS
215CPU = MIPS
216TARGETCPU = MIPS
217CEVersion = 211
218OSVERSION = WCE211
219PLATFORM = MS Palm Size PC
220MCFLAGS = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \
221 -I $(CELIBDLLDIR)\inc
222SUBSYS = -subsystem:windowsce,2.11
223CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
224LDLIBPATH = -libpath:$(CELIBPATH)
225STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
226 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
227!endif
228
229!if "$(MACHINE)" == "wince-sh3-palm-wce211"
230CC = shcl.exe
231ARCH = SH3
232CPU = SH3
233TARGETCPU = SH3
234CEVersion = 211
235OSVERSION = WCE211
236PLATFORM = MS Palm Size PC
237MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
238 -I $(CELIBDLLDIR)\inc
239SUBSYS = -subsystem:windowsce,2.11
240CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
241LDLIBPATH = -libpath:$(CELIBPATH)
242STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
243 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
244!endif
245
246!if "$(MACHINE)" == "wince-x86em-palm-wce211"
247CC = cl.exe
248ARCH = X86EM
249CPU = X86
250TARGETCPU = X86
251CEVersion = 211
252OSVERSION = WCE211
253PLATFORM = MS Palm Size PC
254MCFLAGS = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \
255 -D_WIN32_WCE_EMULATION -DPALM_SIZE \
256 -I $(CELIBDLLDIR)\inc
257MACH = -machine:x86
258SUBSYS = -subsystem:windows
259CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
260LDLIBPATH = -libpath:$(CELIBPATH)
261STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
262 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
263!endif
264
265!if "$(MACHINE)" == "wince-x86em-pocket-wce300"
266CC = cl.exe
267ARCH = X86EM
268CPU = X86
269TARGETCPU = X86
270CEVersion = 300
271OSVERSION = WCE300
272PLATFORM = MS Pocket PC
273MCFLAGS = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \
274 -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \
f4257e4d 275 -I $(CELIBDLLDIR)\inc
e4451f11
JH
276MACH = -machine:x86
277SUBSYS = -subsystem:windows
278CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
279LDLIBPATH = -libpath:$(CELIBPATH)
280STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
281 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
282!endif
283
284!if "$(MACHINE)" == "wince-mips-pocket-wce300"
285CC = clmips.exe
286ARCH = MIPS
287CPU = MIPS
288TARGETCPU = MIPS
289CEVersion = 300
290OSVERSION = WCE300
291PLATFORM = MS Pocket PC
292MCFLAGS = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
293 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
f4257e4d 294 -I $(CELIBDLLDIR)\inc
e4451f11
JH
295MACH = -machine:mips
296SUBSYS = -subsystem:windowsce,3.00
297CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
216db7ee 298#STDLIBPATH = $(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(CPU)
e4451f11 299LDLIBPATH = -libpath:$(CELIBPATH)
216db7ee 300#"-libpath:$(STDLIBPATH)"
e4451f11
JH
301STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
302 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
303!endif
304
305!if "$(MACHINE)" == "wince-sh3-pocket-wce300"
306CC = shcl.exe
307ARCH = SH3
308CPU = SH3
309TARGETCPU = SH3
310CEVersion = 300
311OSVERSION = WCE300
312PLATFORM = MS Pocket PC
313MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \
314 -DPALM_SIZE -DPOCKET_SIZE \
f4257e4d 315 -I $(CELIBDLLDIR)\inc
2e64bfdb 316MACH = -machine:sh3
e4451f11
JH
317SUBSYS = -subsystem:windowsce,3.00
318CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
319LDLIBPATH = -libpath:$(CELIBPATH)
320STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
321 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
322!endif
323
324!if "$(MACHINE)" == "wince-arm-pocket-wce300"
325CC = clarm.exe
326ARCH = ARM
327CPU = ARM
328TARGETCPU = ARM
329CEVersion = 300
330OSVERSION = WCE300
331PLATFORM = MS Pocket PC
332MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
333 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
f4257e4d 334 -I $(CELIBDLLDIR)\inc
e4451f11
JH
335MACH = -machine:arm
336SUBSYS = -subsystem:windowsce,3.00
337CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
338LDLIBPATH = -libpath:$(CELIBPATH)
339STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
340 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
341!endif
342
61b311ca
DD
343!if "$(MACHINE)" == "wince-x86-hpc-wce300"
344CC = cl.exe
345ARCH = X86EM
346CPU = X86
347TARGETCPU = X86
348CEVersion = 400
349OSVERSION = WCE400
350PLATFORM = MS Pocket PC
351MCFLAGS = -DX86 -D_X86_ -Dx86 -DPROCESSOR_X86 -D _MT -D _DLL \
352 -DPALM_SIZE -DPOCKET_SIZE -I $(CELIBDLLDIR)\inc
353MACH = -machine:IX86
354SUBSYS = -subsystem:windowsce,2.0
355CELIBPATH = $(CELIBDLLDIR)\wince-x86-hpc-wce300-release
356LDLIBPATH = -libpath:$(CELIBPATH)
357STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
358 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
359!endif
360
2c8bbb43
DD
361!if "$(MACHINE)" == "wince-arm-pocket-wce400"
362#CC = clarm.exe #set in WCEARMV4.BAT
363ARCH = ARM
364CPU = ARM
365TARGETCPU = ARM
366CEVersion = 400
367#OSVERSION = WCE300 #set in WCEARMV4.BAT
368PLATFORM = MS Pocket PC
369MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
370 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
371 -I $(CELIBDLLDIR)\inc
372MACH = -machine:arm
373SUBSYS = -subsystem:windowsce,4.00
374CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
375LDLIBPATH = -libpath:$(CELIBPATH)
376STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
377 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
378!endif
379
380
e4451f11
JH
381######################################################################
382# common section
383
384CEDEFS = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \
2c8bbb43 385 $(MCFLAGS) -D PERL
ca6c63e1 386
27329181 387CECFLAGS = $(CEDEFS) -Zi
e4451f11
JH
388
389!if "$(CFG)" == "DEBUG"
27329181 390CECFLAGS = $(CECFLAGS) -Od
e4451f11
JH
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...
c96f74ce
JH
396!if "$(CPU)" == "SH3"
397!else
2c8bbb43 398CECFLAGS = $(CECFLAGS) -O1
e4451f11 399!endif
2c8bbb43
DD
400! IF "$(CCTYPE)" != "MSVC60"
401#turn on LTCG optimization for CCs that have it
402CECFLAGS = $(CECFLAGS) -GL
403! ENDIF
404! IF "$(CCTYPE)" == "MSVC80" || "$(CCTYPE)" == "MSVC90"
405#no stack security cookie for CCs where its on by default
406CECFLAGS = $(CECFLAGS) -GS-
407! ENDIF
c96f74ce
JH
408!endif
409
e4451f11
JH
410RCDEFS = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
411 /d _WIN32_WCE=$(CEVersion)
412
27329181 413#PATH=$(CEPATH);$(PATH)
e4451f11 414
61b311ca
DD
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
58ff4bd0
DD
418#INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include
419#LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH)
e4451f11
JH
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
b0f06652 435BUILDOPT = $(BUILDOPT) $(CECFLAGS) -DUSE_CROSS_COMPILE
e4451f11 436
e4451f11
JH
437
438!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
439D_CRYPT = undef
440!ELSE
441D_CRYPT = define
442CRYPT_FLAG = -DHAVE_DES_FCRYPT
443!ENDIF
444
e4451f11
JH
445!IF "$(PERL_MALLOC)" == ""
446PERL_MALLOC = undef
447!ENDIF
448
e4451f11
JH
449!IF "$(USE_MULTI)" == ""
450USE_MULTI = undef
451!ENDIF
452
e4451f11
JH
453!IF "$(USE_ITHREADS)" == ""
454USE_ITHREADS = undef
455!ENDIF
456
457!IF "$(USE_IMP_SYS)" == ""
458USE_IMP_SYS = undef
459!ENDIF
460
18f68570
VK
461!IF "$(USE_PERLIO)" == ""
462USE_PERLIO = undef
463!ENDIF
464
e4451f11
JH
465!IF "$(USE_PERLCRT)" == ""
466USE_PERLCRT = undef
467!ENDIF
468
3db8f154 469!IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
e4451f11
JH
470USE_MULTI = define
471!ENDIF
472
acfe0abc 473!IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
e4451f11 474USE_MULTI = define
e4451f11
JH
475!ENDIF
476
3db8f154 477!IF "$(USE_MULTI)" != "undef"
e4451f11
JH
478BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
479!ENDIF
480
481!IF "$(USE_IMP_SYS)" != "undef"
482BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS
483!ENDIF
484
18f68570
VK
485!IF "$(USE_PERLIO)" == "define"
486BUILDOPT = $(BUILDOPT) -DUSE_PERLIO
487!ENDIF
488
47bcb90d 489!IF "$(CROSS_NAME)" == ""
2e64bfdb 490CROSS_NAME = $(MACHINE)
47bcb90d
VK
491!ENDIF
492
e4451f11
JH
493# new option - automatically defined in perl.h...
494#BUILDOPT = $(BUILDOPT) -DUSE_ENVIRON_ARRAY
495
496PROCESSOR_ARCHITECTURE = $(TARGETCPU)
497ARCHNAME = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE)
e4451f11
JH
498ARCHDIR = ..\lib\$(ARCHNAME)
499COREDIR = ..\lib\CORE
500AUTODIR = ..\lib\auto
501LIBDIR = ..\lib
502EXTDIR = ..\ext
58ff4bd0
DD
503DISTDIR = ..\dist
504CPANDIR = ..\cpan
e4451f11
JH
505PODDIR = ..\pod
506EXTUTILSDIR = $(LIBDIR)\ExtUtils
507
508LINK32 = link
509LIB32 = $(LINK32) -lib
510RSC = rc
511
f4257e4d 512INCLUDES = -I.\include -I. -I..
e4451f11
JH
513DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
514LOCDEFS = -DPERLDLL -DPERL_CORE
216db7ee 515CXX_FLAG = -TP
e4451f11
JH
516
517PERLEXE_RES = perl.res
518PERLDLL_RES =
519
e4451f11
JH
520!if "$(CFG)" == "RELEASE"
521CELIB = celib.lib
522!endif
523
524!if "$(CFG)" == "DEBUG"
525CELIB = celib.lib
526!endif
527
61b311ca 528#use ws2.lib instead of winsock.lib for WSAGetLastError
e4451f11 529CELIBS = -nodefaultlib \
61b311ca 530 ws2.lib $(CELIB) coredll.lib
e4451f11 531
d9d77087 532#this libc's purpose is WinCE entrypoint to main wrapper, not a real C std lib
e4451f11 533!if $(CEVersion) > 200
d9d77087 534LIBC = corelibc.lib
e4451f11 535!else
d9d77087 536LIBC = msvcrt.lib
e4451f11
JH
537!endif
538
539LIBBASEFILES = $(CRYPT_LIB) $(CELIBS)
540
541LIBFILES = $(LIBBASEFILES) $(LIBC)
542
58ff4bd0 543CFLAGS = -nologo -GF -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
e4451f11
JH
544 $(PCHFLAGS) $(OPTIMIZE)
545
27329181 546LINK_FLAGS = -nologo -debug -opt:ref,icf -machine:$(PROCESSOR_ARCHITECTURE)
e4451f11 547
2c8bbb43
DD
548!if "$(CFG)" == "RELEASE" && "$(CCTYPE)" != "MSVC60"
549#see matching flag in CECFLAGS
550LINK_FLAGS = $(LINK_FLAGS) -ltcg
551!endif
552
e4451f11
JH
553OBJOUT_FLAG = -Fo
554EXEOUT_FLAG = -Fe
555
556CFLAGS_O = $(CFLAGS) $(BUILDOPT)
557
558o = .obj
559
560#
561# Rules
f4257e4d 562#
e4451f11
JH
563
564.SUFFIXES : .c $(o) .dll .lib .exe .rc .res
565
566.c$(o):
567 $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
568
61b311ca
DD
569.c.i:
570 $(CC) -c -I$(<D) $(CFLAGS_O) -P $(OBJOUT_FLAG)$@ $<
571
e4451f11
JH
572.y.c:
573 $(NOOP)
574
575$(o).dll:
576 $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
577 -implib:$(*B).lib -def:$(*B).def \
f4257e4d 578 -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
e4451f11
JH
579
580.rc.res:
581 $(RSC) -i.. $<
582
583# This must be relative to ../lib/CORE, else the ext dll build fails...
9f88ff7a 584PERLIMPLIB_EXP = perl$(PV).lib
e4451f11
JH
585PERLIMPLIB = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
586PERLDLL = $(MACHINE)\perl$(PV).dll
587
588DLLDIR = $(MACHINE)\dll
589PERLEXE = $(MACHINE)\perl.exe
590
9f88ff7a
BF
591CONFIGPM = ..\lib\Config.pm ..\lib\Config_heavy.pl
592GENUUDMAP = ..\generate_uudmap.exe
593
594UUDMAP_H = ..\uudmap.h
595BITCOUNT_H = ..\bitcount.h
596MG_DATA_H = ..\mg_data.h
597GENERATED_HEADERS = $(UUDMAP_H) $(BITCOUNT_H) $(MG_DATA_H)
e4451f11 598
42d1cefd 599# Unicode data files generated by mktables
517bb5c6 600FIRSTUNIFILE = ..\lib\unicore\Decomposition.pl
3df51b85 601UNIDATAFILES = ..\lib\unicore\Decomposition.pl \
42d1cefd 602 ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
860054a8 603 ..\lib\unicore\Heavy.pl ..\lib\unicore\mktables.lst \
1a234f2b 604 ..\lib\unicore\UCD.pl ..\lib\unicore\Name.pm \
3e344d15 605 ..\lib\unicore\TestProp.pl
42d1cefd 606
517bb5c6
VK
607PERLEXE_MANIFEST= .\perlexe.manifest
608PERLEXE_ICO = .\perlexe.ico
609PERLEXE_RES = .\perlexe.res
610PERLDLL_RES =
611
42d1cefd
RGS
612# Directories of Unicode data files generated by mktables
613UNIDATADIR1 = ..\lib\unicore\To
614UNIDATADIR2 = ..\lib\unicore\lib
615
fefd7080
VK
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
620PERLDEP = perldll.def
621
e4451f11 622MAKE = nmake -nologo
58ff4bd0 623MAKE_BARE = nmake
e4451f11
JH
624
625CFGSH_TMPL = config.ce
626CFGH_TMPL = config_H.ce
627
58ff4bd0
DD
628XCOPY = xcopy /f /r /i /d /y
629RCOPY = xcopy /f /r /i /e /d /y
630NOOP = @rem
631NULL =
632
633DEL = del
634
e4451f11
JH
635MICROCORE_SRC = \
636 ..\av.c \
9fc05455 637 ..\caretx.c \
e4451f11
JH
638 ..\deb.c \
639 ..\doio.c \
640 ..\doop.c \
641 ..\dump.c \
642 ..\globals.c \
643 ..\gv.c \
e1a479c5 644 ..\mro.c \
e4451f11 645 ..\hv.c \
61b311ca 646 ..\locale.c \
26ea9e12 647 ..\keywords.c \
61b311ca 648 ..\mathoms.c \
e4451f11 649 ..\mg.c \
61b311ca 650 ..\numeric.c \
e4451f11 651 ..\op.c \
b475b3e6 652 ..\pad.c \
e4451f11
JH
653 ..\perl.c \
654 ..\perlapi.c \
655 ..\perly.c \
656 ..\pp.c \
657 ..\pp_ctl.c \
658 ..\pp_hot.c \
84d4ea48
JH
659 ..\pp_pack.c \
660 ..\pp_sort.c \
e4451f11 661 ..\pp_sys.c \
10bc17b6 662 ..\reentr.c \
e4451f11
JH
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 \
48462a74 672 ..\util.c
e4451f11
JH
673
674EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
675
676!IF "$(PERL_MALLOC)" == "define"
677EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
678!ENDIF
679
42165d27 680EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
e4451f11
JH
681
682WIN32_SRC = \
683 .\wince.c \
684 .\wincesck.c \
f4257e4d 685 .\win32thread.c
e4451f11
JH
686
687!IF "$(CRYPT_SRC)" != ""
688WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
689!ENDIF
690
e4451f11
JH
691CORE_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 \
4d3a042d 701 ..\hv_func.h \
e4451f11
JH
702 ..\iperlsys.h \
703 ..\mg.h \
704 ..\nostdio.h \
705 ..\op.h \
706 ..\opcode.h \
707 ..\perl.h \
708 ..\perlapi.h \
709 ..\perlsdio.h \
e4451f11
JH
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 \
e4451f11
JH
725 .\include\dirent.h \
726 .\include\netdb.h \
c44e86c9 727 .\include\sys\errno2.h \
e4451f11
JH
728 .\include\sys\socket.h \
729 .\win32.h
730
48462a74 731DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
e4451f11
JH
732 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
733 Sys/Hostname
734
735STATIC_EXT = DynaLoader
e4451f11
JH
736
737DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
e4451f11
JH
738
739ERRNO_PM = $(LIBDIR)\Errno.pm
740
e4451f11
JH
741
742EXTENSION_PM = \
743 $(ERRNO_PM)
744
e4451f11 745CFG_VARS = \
e4451f11
JH
746 "INST_TOP=$(INST_TOP)" \
747 "INST_VER=$(INST_VER)" \
748 "INST_ARCH=$(INST_ARCH)" \
749 "archname=$(ARCHNAME)" \
58ff4bd0
DD
750 "cc=$(CC)" \
751 "ld=$(LINK32)" \
e4451f11 752 "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
1829b0dc
VK
753 "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
754 "cf_by=vkon" \
2e64bfdb 755 "cf_email=$(EMAIL)" \
58ff4bd0 756#9cef8306
e4451f11
JH
757 "d_mymalloc=$(PERL_MALLOC)" \
758 "libs=$(LIBFILES)" \
759 "incpath=$(CCINCDIR)" \
760 "libperl=$(PERLIMPLIB_EXP)" \
761 "libpth=$(LIBPATH)" \
762 "libc=$(LIBC)" \
58ff4bd0 763 "make=$(MAKE_BARE)" \
e4451f11
JH
764 "static_ext=$(STATIC_EXT)" \
765 "dynamic_ext=$(DYNAMIC_EXT)" \
58ff4bd0 766 "usethreads=$(USE_ITHREADS)" \
e4451f11 767 "useithreads=$(USE_ITHREADS)" \
e4451f11 768 "usemultiplicity=$(USE_MULTI)" \
18f68570 769 "useperlio=$(USE_PERLIO)" \
58ff4bd0
DD
770 "use64bitint=undef" \
771 "uselargefiles=undef" \
e4451f11 772 "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
58ff4bd0
DD
773 "optimize=$(OPTIMIZE)" \
774 "WIN64=$(WIN64)"
e4451f11 775
517bb5c6
VK
776#
777# filenames given to xsubpp must have forward slashes (since it puts
778# full pathnames in #line strings)
9f88ff7a 779XSUBPP = $(HPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
517bb5c6
VK
780 -C++ -prototypes
781
782
e4451f11
JH
783#
784# Top targets
785#
786
9f88ff7a 787all: hostminiperl force_config_h ..\lib\buildcustomize.pl .\config.h ..\git_version.h $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) MakePPPort Extensions
e4451f11 788
9f88ff7a 789$(DYNALOADER)$(o) : $(DYNALOADER).c config.h $(EXTDIR)\DynaLoader\dlutils.c
e4451f11 790
58ff4bd0
DD
791#convenience target
792configpm_targ : $(CONFIGPM)
793
9f88ff7a
BF
794force_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
e2a02c1e 830
b85bdaea
DD
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
9f88ff7a
BF
837MakePPPort: $(HPERL) $(CONFIGPM) Extensions_nonxs
838 $(HPERL) -I..\lib ..\mkppport
42e07562
MHM
839
840MakePPPort_clean:
01e90026 841 -if exist $(HPERL) $(HPERL) -I..\lib ..\mkppport --clean
42e07562 842
fefd7080 843#----------------------------------------------------------------------------------
94081db1
VK
844NOT_COMPILE_EXT =
845!if "$(MACHINE)" == "wince-sh3-palm-wce211"
846NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
847!endif
848!if "$(MACHINE)" == "wince-mips-palm-wce211"
849NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
850!endif
851
58ff4bd0 852Extensions: ..\make_ext.pl $(CONFIGPM)
9f88ff7a
BF
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
857Extensions_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
fefd7080 860
f4257e4d 861Extensions_clean:
27329181 862 -if exist $(HPERL) $(HPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --all --target=clean
fefd7080
VK
863
864#----------------------------------------------------------------------------------
865
517bb5c6
VK
866$(PERLEXE_RES): perlexe.rc perl.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
867 rc $(RCDEFS) perlexe.rc
e4451f11 868
27329181 869clean: Extensions_clean
58ff4bd0
DD
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
b85bdaea 877 -@$(DEL) ..\git_version.h
9f88ff7a 878 -@$(DEL) config.h perl.res
58ff4bd0 879 -@$(DEL) ..\t\test_state
e4451f11 880
e4451f11
JH
881XDLLOBJS = \
882$(DLLDIR)\av.obj \
0162f7cd 883$(DLLDIR)\caretx.obj \
e4451f11
JH
884$(DLLDIR)\deb.obj \
885$(DLLDIR)\doio.obj \
886$(DLLDIR)\doop.obj \
887$(DLLDIR)\dump.obj \
888$(DLLDIR)\globals.obj \
889$(DLLDIR)\gv.obj \
e1a479c5 890$(DLLDIR)\mro.obj \
e4451f11
JH
891$(DLLDIR)\hv.obj \
892$(DLLDIR)\locale.obj \
517bb5c6 893$(DLLDIR)\keywords.obj \
7ee2227d 894$(DLLDIR)\mathoms.obj \
e4451f11
JH
895$(DLLDIR)\mg.obj \
896$(DLLDIR)\numeric.obj \
897$(DLLDIR)\op.obj \
b475b3e6 898$(DLLDIR)\pad.obj \
e4451f11
JH
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 \
84d4ea48 907$(DLLDIR)\pp_sort.obj \
e4451f11 908$(DLLDIR)\pp_sys.obj \
10bc17b6 909$(DLLDIR)\reentr.obj \
e4451f11
JH
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 \
42165d27 922$(DLLDIR)\win32io.obj \
e4451f11 923$(DLLDIR)\wincesck.obj \
e4451f11
JH
924$(DLLDIR)\perllib.obj \
925$(DLLDIR)\DynaLoader.obj
2e64bfdb
JH
926!IF "$(PERL_MALLOC)" == "define"
927XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj
928!ENDIF
81003058
VK
929!IF "$(CRYPT_SRC)" != ""
930XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj
931!ENDIF
e4451f11 932
d9d77087
DD
933#sanity checks to make sure all our external files (celib, w32console, and
934#MS CE SDK) are locatable
935lib_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
946header_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
e4451f11 953{$(SRCDIR)}.c{$(DLLDIR)}.obj:
216db7ee
VK
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
e4451f11 960
247d8755 961{$(SRCDIR)/win32}.c{$(DLLDIR)}.obj:
216db7ee
VK
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"
8f33b42a 967$(DLLDIR)\perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h
216db7ee
VK
968 $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
969 rem (frustrated) mv perllib.obj $(DLLDIR)
970!ENDIF
e4451f11 971
9f88ff7a
BF
972perldll.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) \
080c3729 975 CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def
18f68570 976
d9d77087 977$(PERLDLL) : header_check lib_check $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
61b311ca 978 $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ \
e4451f11
JH
979 $(SUBSYS) $(LDLIBPATH) \
980 $(LINK_FLAGS) $(LIBFILES) \
981 $(XDLLOBJS) $(PERLDLL_RES)
982
983$(DLLDIR) :
984 if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
985
58ff4bd0 986$(EXTDIR)\DynaLoader\DynaLoader.c :
9f88ff7a 987 $(HPERL) -I..\lib -I. ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader
58ff4bd0 988
e4451f11 989$(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
216db7ee 990 $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
e4451f11
JH
991 $(EXTDIR)\DynaLoader\DynaLoader.c
992
993XPERLEXEOBJS = \
247d8755 994$(MACHINE)\perlmaince.obj
e4451f11 995
9f88ff7a
BF
996..\lib\buildcustomize.pl :
997 $(HPERL) -I..\lib -f ..\write_buildcustomize.pl ..
998
e4451f11 999$(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
9f88ff7a 1000 $(XCOPY) $(MACHINE)\*.lib $(COREDIR)
2e64bfdb 1001 $(LINK32) $(SUBSYS) $(LDLIBPATH) \
e4451f11
JH
1002 -entry:wWinMainCRTStartup \
1003 -out:$(MACHINE)\perl.exe \
1004 -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
1005 $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
1006
247d8755
VK
1007$(MACHINE)\perlmaince.obj : perlmaince.c
1008 $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmaince.c
e4451f11
JH
1009
1010iodll: $(IO_DLL)
1011socketdll: $(SOCKET_DLL)
1012dumperdll: $(DUMPER_DLL)
1013
1014dlls: socketdll iodll dumperdll
1015 -xmkdir -p $(MACHINE)/lib/auto/IO
9f88ff7a
BF
1016 copy ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
1017 copy ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
e4451f11 1018 -xmkdir $(MACHINE)/lib/auto/Socket
9f88ff7a
BF
1019 copy ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
1020 copy ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
e4451f11 1021 -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
9f88ff7a
BF
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
e4451f11
JH
1024
1025makedist: all dlls
1026 $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
9f88ff7a
BF
1027 copy perl.txt $(MACHINE)
1028 copy registry.bat $(MACHINE)
1029 copy ../lib/Config.pm $(MACHINE)/lib
e4451f11 1030 cd $(MACHINE)
58ff4bd0 1031 -@$(DEL) perl-$(MACHINE).tar.gz
e4451f11
JH
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
42165d27
VK
1037install: 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"
18f68570 1042 $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
9f88ff7a 1043 $(CECOPY) "pc:../lib/Config.pm" "ce:$(INSTALL_ROOT)/lib"
42d1cefd 1044
9f88ff7a 1045$(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables MakePPPort
42d1cefd 1046 cd ..\lib\unicore && \
9f88ff7a 1047 $(HPERL) -I.. -I..\..\lib mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
e4451f11 1048
2e64bfdb 1049dist: all
9f88ff7a 1050 $(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
c96f74ce
JH
1051
1052zipdist: all
9f88ff7a
BF
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
c96f74ce
JH
1055
1056zip:
9f88ff7a 1057 $(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
2e64bfdb 1058
18f68570 1059hostminiperl: ..\miniperl.exe
e4451f11 1060
18f68570 1061..\miniperl.exe:
18f68570 1062 set PATH=$(CCHOME)\bin;$(PATH)
47bcb90d 1063 $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
476a6acb 1064
47bcb90d 1065host-install:
9f88ff7a
BF
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#"
74a9a7e5
VK
1069 perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
1070 quotemeta($$Config{installprefixexp}) . \
9f88ff7a 1071 qq#/lib'}\" $$Config{installprefixexp}/lib/Config.pm#"