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