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