Integrate from maint-5.8 : changes 18290-1, 18293-5, 18297
[p5sagit/p5-mst-13.2.git] / wince / Makefile.ce
CommitLineData
e4451f11 1# perl makefile for wince
2#
ca6c63e1 3# Time-stamp: <26/10/01 15:10:06 keuchel@keuchelnt>
e4451f11 4
5SRCDIR = ..
78a7c709 6PV = 59
7INST_VER = 5.9.0
42165d27 8
18f68570 9# INSTALL_ROOT specifies a path where this perl will be installed on CE device
42165d27 10INSTALL_ROOT=/netzwerk/sprache/perl
18f68570 11INST_TOP=$(INSTALL_ROOT)
12INST_VER=
42165d27 13
14# PERLCEDIR shoud be set to current directory
e4451f11 15PERLCEDIR = H:\src\wince\perl\wince
42165d27 16
18f68570 17# WCEROOT is a directory where Windows CE Tools was installed
ca6c63e1 18WCEROOT = D:\Windows CE Tools
18f68570 19
20# HPERL stands for host perl, which is perl on local desktop machine
21# which is usually ..\miniperl.exe
22#HPERL = N:\Programme\perl\bin\perl.exe
23HPERL = $(MAKEDIR)\..\miniperl.exe
24
ca6c63e1 25CEPATH = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN
26CELIBDLLDIR = h:\src\wince\celib-palm-3.0
e4451f11 27CECONSOLEDIR = h:\src\wince\w32console
18f68570 28
29# specify following options to build perl on local machine, by MSVC
30MSVCDIR = D:\MSVStudio\VC98
31CCHOME = $(MSVCDIR)
32CCINCDIR = $(CCHOME)\include
33CCLIBDIR = $(CCHOME)\lib
34
e4451f11 35# Only for WIN2000
ca6c63e1 36#YES = /y
e4451f11 37COPY = copy $(YES)
38XCOPY = xcopy $(YES) /f /r /i /d
39RCOPY = xcopy $(YES) /f /r /i /e /d
42165d27 40
41# cecopy program. Make shure it is in your path, as well as cemkdir, cedel
42CECOPY = cecopy
43
18f68570 44#
45# Comment out next assign to disable perl's I/O subsystem and use compiler's
46# stdio for IO - depending on your compiler vendor and run time library you may
47# then get a number of fails from make test i.e. bugs - complain to them not us ;-).
48# You will also be unable to take full advantage of perl5.8's support for multiple
49# encodings and may see lower IO performance. You have been warned.
50USE_PERLIO = define
51
52
e4451f11 53NOOP = @echo
54# keep this untouched!
55NULL =
56
42165d27 57
aebd5ec7 58#CFG=DEBUG
59CFG=RELEASE
e4451f11 60
61!if "$(MACHINE)" == ""
62MACHINE=wince-arm-hpc-wce300
63#MACHINE=wince-arm-hpc-wce211
64#MACHINE=wince-sh3-hpc-wce211
65#MACHINE=wince-mips-hpc-wce211
66#MACHINE=wince-sh3-hpc-wce200
67#MACHINE=wince-mips-hpc-wce200
68#MACHINE=wince-arm-pocket-wce300
69#MACHINE=wince-mips-pocket-wce300
70#MACHINE=wince-sh3-pocket-wce300
71#MACHINE=wince-x86em-pocket-wce300
72#MACHINE=wince-mips-palm-wce211
73#MACHINE=wince-sh3-palm-wce211
74#MACHINE=wince-x86em-palm-wce211
75!endif
76
77######################################################################
78# machines
79
80!if "$(MACHINE)" == "wince-sh3-hpc-wce211"
81CC = shcl.exe
82ARCH = SH3
83CPU = SH3
84TARGETCPU = SH3
85CEVersion = 211
86OSVERSION = WCE211
87PLATFORM = MS HPC Pro
88MCFLAGS = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
89 -I $(CELIBDLLDIR)\inc
90SUBSYS = -subsystem:windowsce,2.11
91CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
92LDLIBPATH = -libpath:$(CELIBPATH)
93STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
94 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
95!endif
96
97!if "$(MACHINE)" == "wince-mips-hpc-wce211"
98CC = clmips.exe
99ARCH = MIPS
100CPU = MIPS
101TARGETCPU = MIPS
102CEVersion = 211
103OSVERSION = WCE211
104PLATFORM = MS HPC Pro
105MCFLAGS = -D _MT -D _DLL \
106 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
107 -D PALM_SIZE \
108 -I $(CELIBDLLDIR)\inc
109SUBSYS = -subsystem:windowsce,2.11
110CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
111LDLIBPATH = -libpath:$(CELIBPATH)
112STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
113 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
114!endif
115
116!if "$(MACHINE)" == "wince-mips-hpc-wce200"
117CC = clmips.exe
118ARCH = MIPS
119CPU = MIPS
120TARGETCPU = MIPS
121CEVersion = 200
122OSVERSION = WCE200
123PLATFORM = MS HPC
124# MUST USE -MD to get the right FPE stuff...
125MCFLAGS = -D _MT -D _DLL -MD \
126 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
127 -D PALM_SIZE \
128 -I $(CELIBDLLDIR)\inc
129SUBSYS = -subsystem:windowsce,2.00
130CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
131LDLIBPATH = -libpath:$(CELIBPATH)
132STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
133 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
134!endif
135
136!if "$(MACHINE)" == "wince-sh3-hpc-wce200"
137CC = shcl.exe
138ARCH = SH3
139CPU = SH3
140TARGETCPU = SH3
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 SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \
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-arm-hpc-wce211"
157CC = clarm.exe
158ARCH = ARM
159CPU = ARM
160TARGETCPU = ARM
161CEVersion = 211
162OSVERSION = WCE211
163PLATFORM = MS HPC Pro
164MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
165 -DPROCESSOR_ARM -DPALM_SIZE \
166 -I $(CELIBDLLDIR)\inc
167SUBSYS = -subsystem:windowsce,2.11
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-wce300"
175CC = clarm.exe
176ARCH = ARM
177CPU = ARM
178TARGETCPU = ARM
179CEVersion = 300
180OSVERSION = WCE300
181PLATFORM = HPC2000
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,3.00
186CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
187LDLIBPATH = -libpath:$(CELIBPATH)
188STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
189 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
190!endif
191
192!if "$(MACHINE)" == "wince-mips-palm-wce211"
193CC = clmips.exe
194ARCH = MIPS
195CPU = MIPS
196TARGETCPU = MIPS
197CEVersion = 211
198OSVERSION = WCE211
199PLATFORM = MS Palm Size PC
200MCFLAGS = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \
201 -I $(CELIBDLLDIR)\inc
202SUBSYS = -subsystem:windowsce,2.11
203CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
204LDLIBPATH = -libpath:$(CELIBPATH)
205STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
206 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
207!endif
208
209!if "$(MACHINE)" == "wince-sh3-palm-wce211"
210CC = shcl.exe
211ARCH = SH3
212CPU = SH3
213TARGETCPU = SH3
214CEVersion = 211
215OSVERSION = WCE211
216PLATFORM = MS Palm Size PC
217MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
218 -I $(CELIBDLLDIR)\inc
219SUBSYS = -subsystem:windowsce,2.11
220CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
221LDLIBPATH = -libpath:$(CELIBPATH)
222STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
223 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
224!endif
225
226!if "$(MACHINE)" == "wince-x86em-palm-wce211"
227CC = cl.exe
228ARCH = X86EM
229CPU = X86
230TARGETCPU = X86
231CEVersion = 211
232OSVERSION = WCE211
233PLATFORM = MS Palm Size PC
234MCFLAGS = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \
235 -D_WIN32_WCE_EMULATION -DPALM_SIZE \
236 -I $(CELIBDLLDIR)\inc
237MACH = -machine:x86
238SUBSYS = -subsystem:windows
239CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
240LDLIBPATH = -libpath:$(CELIBPATH)
241STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
242 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
243!endif
244
245!if "$(MACHINE)" == "wince-x86em-pocket-wce300"
246CC = cl.exe
247ARCH = X86EM
248CPU = X86
249TARGETCPU = X86
250CEVersion = 300
251OSVERSION = WCE300
252PLATFORM = MS Pocket PC
253MCFLAGS = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \
254 -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \
255 -I $(CELIBDLLDIR)\inc
256MACH = -machine:x86
257SUBSYS = -subsystem:windows
258CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
259LDLIBPATH = -libpath:$(CELIBPATH)
260STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
261 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
262!endif
263
264!if "$(MACHINE)" == "wince-mips-pocket-wce300"
265CC = clmips.exe
266ARCH = MIPS
267CPU = MIPS
268TARGETCPU = MIPS
269CEVersion = 300
270OSVERSION = WCE300
271PLATFORM = MS Pocket PC
272MCFLAGS = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
273 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
274 -I $(CELIBDLLDIR)\inc
275MACH = -machine:mips
276SUBSYS = -subsystem:windowsce,3.00
277CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
278LDLIBPATH = -libpath:$(CELIBPATH)
279STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
280 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
281!endif
282
283!if "$(MACHINE)" == "wince-sh3-pocket-wce300"
284CC = shcl.exe
285ARCH = SH3
286CPU = SH3
287TARGETCPU = SH3
288CEVersion = 300
289OSVERSION = WCE300
290PLATFORM = MS Pocket PC
291MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \
292 -DPALM_SIZE -DPOCKET_SIZE \
293 -I $(CELIBDLLDIR)\inc
294MACH = -machine:mips
295SUBSYS = -subsystem:windowsce,3.00
296CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
297LDLIBPATH = -libpath:$(CELIBPATH)
298STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
299 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
300!endif
301
302!if "$(MACHINE)" == "wince-arm-pocket-wce300"
303CC = clarm.exe
304ARCH = ARM
305CPU = ARM
306TARGETCPU = ARM
307CEVersion = 300
308OSVERSION = WCE300
309PLATFORM = MS Pocket PC
310MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
311 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
312 -I $(CELIBDLLDIR)\inc
313MACH = -machine:arm
314SUBSYS = -subsystem:windowsce,3.00
315CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
316LDLIBPATH = -libpath:$(CELIBPATH)
317STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
318 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
319!endif
320
321######################################################################
322# common section
323
324CEDEFS = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \
ca6c63e1 325 $(MCFLAGS) -D PERL
326
e4451f11 327#CEDEFS = $(CEDEFS) -DDEBUGGING_OPS
328
329CECFLAGS = $(CEDEFS)
330
331!if "$(CFG)" == "DEBUG"
332CECFLAGS = $(CECFLAGS) -Zi -Od
333!endif
334
335!if "$(CFG)" == "RELEASE"
336# -O2 and -Ot give internal compiler error in perl.c and lexer.
337# Also the dll cannot be loaded by perl.exe...
338CECFLAGS = $(CECFLAGS)
339!endif
340
341RCDEFS = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
342 /d _WIN32_WCE=$(CEVersion)
343
344PATH=$(CEPATH);$(PATH)
345
346INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include
347LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH)
348
349######################################################################
350
351!message
352!message Compiling for $(MACHINE)
353!message LIB=$(LIB)
354!message INCLUDE=$(INCLUDE)
355!message PATH=$(CEPATH)
356!message
357
358######################################################################
359#
360# Additional compiler flags can be specified here.
361#
362
363BUILDOPT = $(BUILDOPT) $(CECFLAGS)
364
365##################### CHANGE THESE ONLY IF YOU MUST #####################
366
367!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
368D_CRYPT = undef
369!ELSE
370D_CRYPT = define
371CRYPT_FLAG = -DHAVE_DES_FCRYPT
372!ENDIF
373
e4451f11 374!IF "$(PERL_MALLOC)" == ""
375PERL_MALLOC = undef
376!ENDIF
377
e4451f11 378!IF "$(USE_IMP_SYS)" == "define"
379PERL_MALLOC = undef
380!ENDIF
381
382!IF "$(USE_MULTI)" == ""
383USE_MULTI = undef
384!ENDIF
385
e4451f11 386!IF "$(USE_ITHREADS)" == ""
387USE_ITHREADS = undef
388!ENDIF
389
390!IF "$(USE_IMP_SYS)" == ""
391USE_IMP_SYS = undef
392!ENDIF
393
18f68570 394!IF "$(USE_PERLIO)" == ""
395USE_PERLIO = undef
396!ENDIF
397
e4451f11 398!IF "$(USE_PERLCRT)" == ""
399USE_PERLCRT = undef
400!ENDIF
401
3db8f154 402!IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
e4451f11 403USE_MULTI = define
404!ENDIF
405
acfe0abc 406!IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
e4451f11 407USE_MULTI = define
e4451f11 408!ENDIF
409
3db8f154 410!IF "$(USE_MULTI)" != "undef"
e4451f11 411BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
412!ENDIF
413
414!IF "$(USE_IMP_SYS)" != "undef"
415BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS
416!ENDIF
417
18f68570 418!IF "$(USE_PERLIO)" == "define"
419BUILDOPT = $(BUILDOPT) -DUSE_PERLIO
420!ENDIF
421
47bcb90d 422!IF "$(CROSS_NAME)" == ""
423CROSS_NAME = wince
424!ENDIF
425
e4451f11 426# new option - automatically defined in perl.h...
427#BUILDOPT = $(BUILDOPT) -DUSE_ENVIRON_ARRAY
428
429PROCESSOR_ARCHITECTURE = $(TARGETCPU)
430ARCHNAME = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE)
e4451f11 431ARCHDIR = ..\lib\$(ARCHNAME)
432COREDIR = ..\lib\CORE
e2a02c1e 433XCOREDIR = ..\xlib\$(CROSS_NAME)\CORE
e4451f11 434AUTODIR = ..\lib\auto
435LIBDIR = ..\lib
436EXTDIR = ..\ext
437PODDIR = ..\pod
438EXTUTILSDIR = $(LIBDIR)\ExtUtils
439
440LINK32 = link
441LIB32 = $(LINK32) -lib
442RSC = rc
443
444INCLUDES = -I.\include -I. -I..
445DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
446LOCDEFS = -DPERLDLL -DPERL_CORE
447CXX_FLAG = -TP -GX
448
449PERLEXE_RES = perl.res
450PERLDLL_RES =
451
e4451f11 452!if "$(CFG)" == "RELEASE"
453CELIB = celib.lib
454!endif
455
456!if "$(CFG)" == "DEBUG"
457CELIB = celib.lib
458!endif
459
460CELIBS = -nodefaultlib \
461 winsock.lib $(CELIB) coredll.lib
462
463!if $(CEVersion) > 200
464CELIBS = $(CELIBS) corelibc.lib
465!else
466CELIBS = $(CELIBS) msvcrt.lib
467!endif
468
469LIBBASEFILES = $(CRYPT_LIB) $(CELIBS)
470
471LIBFILES = $(LIBBASEFILES) $(LIBC)
472
473CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
474 $(PCHFLAGS) $(OPTIMIZE)
475
476LINK_FLAGS = -nologo -machine:$(PROCESSOR_ARCHITECTURE)
477
478!if "$(CFG)" == "DEBUG"
479LINK_FLAGS = $(LINK_FLAGS) -debug:full -pdb:none
480!endif
481
482OBJOUT_FLAG = -Fo
483EXEOUT_FLAG = -Fe
484
485CFLAGS_O = $(CFLAGS) $(BUILDOPT)
486
487o = .obj
488
489#
490# Rules
491#
492
493.SUFFIXES : .c $(o) .dll .lib .exe .rc .res
494
495.c$(o):
496 $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
497
498.y.c:
499 $(NOOP)
500
501$(o).dll:
502 $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
503 -implib:$(*B).lib -def:$(*B).def \
504 -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
505
506.rc.res:
507 $(RSC) -i.. $<
508
509# This must be relative to ../lib/CORE, else the ext dll build fails...
e2a02c1e 510PERLIMPLIB_EXP = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib
e4451f11 511PERLIMPLIB = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
512PERLDLL = $(MACHINE)\perl$(PV).dll
513
514DLLDIR = $(MACHINE)\dll
515PERLEXE = $(MACHINE)\perl.exe
516
e2a02c1e 517CONFIGPM = ..\xlib\$(CROSS_NAME)\Config.pm
e4451f11 518MINIMOD = ..\lib\ExtUtils\Miniperl.pm
519
fefd7080 520# Nominate a target which causes extensions to be re-built
521# This used to be $(PERLEXE), but at worst it is the .dll that they depend
522# on and really only the interface - i.e. the .def file used to export symbols
523# from the .dll
524PERLDEP = perldll.def
525
e4451f11 526MAKE = nmake -nologo
527
528CFGSH_TMPL = config.ce
529CFGH_TMPL = config_H.ce
530
531#
532# filenames given to xsubpp must have forward slashes (since it puts
533# full pathnames in #line strings)
fefd7080 534XSUBPP = $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \
e4451f11 535 -C++ -prototypes
536
537MICROCORE_SRC = \
538 ..\av.c \
539 ..\deb.c \
540 ..\doio.c \
541 ..\doop.c \
542 ..\dump.c \
543 ..\globals.c \
544 ..\gv.c \
545 ..\hv.c \
546 ..\mg.c \
547 ..\op.c \
548 ..\perl.c \
549 ..\perlapi.c \
550 ..\perly.c \
551 ..\pp.c \
552 ..\pp_ctl.c \
553 ..\pp_hot.c \
84d4ea48 554 ..\pp_pack.c \
555 ..\pp_sort.c \
e4451f11 556 ..\pp_sys.c \
10bc17b6 557 ..\reentr.c \
e4451f11 558 ..\regcomp.c \
559 ..\regexec.c \
560 ..\run.c \
561 ..\scope.c \
562 ..\sv.c \
563 ..\taint.c \
564 ..\toke.c \
565 ..\universal.c \
566 ..\utf8.c \
567 ..\util.c \
568 ..\xsutils.c
569
570EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
571
572!IF "$(PERL_MALLOC)" == "define"
573EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
574!ENDIF
575
42165d27 576EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
e4451f11 577
578WIN32_SRC = \
579 .\wince.c \
580 .\wincesck.c \
581 .\win32thread.c
582
583!IF "$(CRYPT_SRC)" != ""
584WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
585!ENDIF
586
587DLL_SRC = $(DYNALOADER).c
588
589CORE_NOCFG_H = \
590 ..\av.h \
591 ..\cop.h \
592 ..\cv.h \
593 ..\dosish.h \
594 ..\embed.h \
595 ..\form.h \
596 ..\gv.h \
597 ..\handy.h \
598 ..\hv.h \
599 ..\iperlsys.h \
600 ..\mg.h \
601 ..\nostdio.h \
602 ..\op.h \
603 ..\opcode.h \
604 ..\perl.h \
605 ..\perlapi.h \
606 ..\perlsdio.h \
607 ..\perlsfio.h \
608 ..\perly.h \
609 ..\pp.h \
610 ..\proto.h \
611 ..\regexp.h \
612 ..\scope.h \
613 ..\sv.h \
614 ..\thread.h \
615 ..\unixish.h \
616 ..\utf8.h \
617 ..\util.h \
618 ..\warnings.h \
619 ..\XSUB.h \
620 ..\EXTERN.h \
621 ..\perlvars.h \
622 ..\intrpvar.h \
623 ..\thrdvar.h \
624 .\include\dirent.h \
625 .\include\netdb.h \
626 .\include\sys\socket.h \
627 .\win32.h
628
629!IF "$(USE_SETARGV)" != ""
630SETARGV_OBJ = setargv$(o)
631!ENDIF
632
633DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \
634 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
635 Sys/Hostname
636
637STATIC_EXT = DynaLoader
638NONXS_EXT = Errno
639
640DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
641SOCKET = $(EXTDIR)\Socket\Socket
642IO = $(EXTDIR)\IO\IO
643DUMPER = $(EXTDIR)\Data\Dumper\Dumper
644#
645FCNTL = $(EXTDIR)\Fcntl\Fcntl
646OPCODE = $(EXTDIR)\Opcode\Opcode
647SDBM_FILE = $(EXTDIR)\SDBM_File\SDBM_File
648POSIX = $(EXTDIR)\POSIX\POSIX
649ATTRS = $(EXTDIR)\attrs\attrs
650THREAD = $(EXTDIR)\Thread\Thread
651B = $(EXTDIR)\B\B
652RE = $(EXTDIR)\re\re
653ERRNO = $(EXTDIR)\Errno\Errno
654PEEK = $(EXTDIR)\Devel\Peek\Peek
655BYTELOADER = $(EXTDIR)\ByteLoader\ByteLoader
656DPROF = $(EXTDIR)\Devel\DProf\DProf
657GLOB = $(EXTDIR)\File\Glob\Glob
658HOSTNAME = $(EXTDIR)\Sys\Hostname\Hostname
659SOCKET_DLL = $(AUTODIR)\Socket\Socket.dll
660FCNTL_DLL = $(AUTODIR)\Fcntl\Fcntl.dll
661OPCODE_DLL = $(AUTODIR)\Opcode\Opcode.dll
662SDBM_FILE_DLL = $(AUTODIR)\SDBM_File\SDBM_File.dll
663IO_DLL = $(AUTODIR)\IO\IO.dll
664POSIX_DLL = $(AUTODIR)\POSIX\POSIX.dll
665ATTRS_DLL = $(AUTODIR)\attrs\attrs.dll
666THREAD_DLL = $(AUTODIR)\Thread\Thread.dll
667B_DLL = $(AUTODIR)\B\B.dll
668DUMPER_DLL = $(AUTODIR)\Data\Dumper\Dumper.dll
669PEEK_DLL = $(AUTODIR)\Devel\Peek\Peek.dll
670RE_DLL = $(AUTODIR)\re\re.dll
671BYTELOADER_DLL = $(AUTODIR)\ByteLoader\ByteLoader.dll
672DPROF_DLL = $(AUTODIR)\Devel\DProf\DProf.dll
673GLOB_DLL = $(AUTODIR)\File\Glob\Glob.dll
674HOSTNAME_DLL = $(AUTODIR)\Sys\Hostname\Hostname.dll
675
676ERRNO_PM = $(LIBDIR)\Errno.pm
677
678EXTENSION_C = \
679 $(SOCKET).c \
680 $(FCNTL).c \
681 $(OPCODE).c \
682 $(SDBM_FILE).c \
683 $(IO).c \
684 $(POSIX).c \
685 $(ATTRS).c \
686 $(THREAD).c \
687 $(RE).c \
688 $(DUMPER).c \
689 $(PEEK).c \
690 $(B).c \
691 $(BYTELOADER).c \
692 $(DPROF).c \
693 $(GLOB).c \
694 $(HOSTNAME).c
695
696EXTENSION_DLL = \
697 $(SOCKET_DLL) \
698 $(FCNTL_DLL) \
699 $(OPCODE_DLL) \
700 $(SDBM_FILE_DLL)\
701 $(IO_DLL) \
702 $(POSIX_DLL) \
703 $(ATTRS_DLL) \
704 $(DUMPER_DLL) \
705 $(PEEK_DLL) \
706 $(B_DLL) \
707 $(RE_DLL) \
708 $(THREAD_DLL) \
709 $(BYTELOADER_DLL) \
710 $(DPROF_DLL) \
711 $(GLOB_DLL) \
712 $(HOSTNAME_DLL)
713
714EXTENSION_PM = \
715 $(ERRNO_PM)
716
717POD2HTML = $(PODDIR)\pod2html
718POD2MAN = $(PODDIR)\pod2man
719POD2LATEX = $(PODDIR)\pod2latex
720POD2TEXT = $(PODDIR)\pod2text
721
722CFG_VARS = \
723 "INST_DRV=$(INST_DRV)" \
724 "INST_TOP=$(INST_TOP)" \
725 "INST_VER=$(INST_VER)" \
726 "INST_ARCH=$(INST_ARCH)" \
727 "archname=$(ARCHNAME)" \
74d57dc4 728 "CC=$(CC)" \
e4451f11 729 "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
730 "cf_by=Rainer Keuchel" \
731 "cf_email=coyxc@rainer-keuchel.de" \
732 "d_crypt=$(D_CRYPT)" \
733 "d_mymalloc=$(PERL_MALLOC)" \
734 "libs=$(LIBFILES)" \
735 "incpath=$(CCINCDIR)" \
736 "libperl=$(PERLIMPLIB_EXP)" \
737 "libpth=$(LIBPATH)" \
738 "libc=$(LIBC)" \
739 "make=nmake" \
740 "static_ext=$(STATIC_EXT)" \
741 "dynamic_ext=$(DYNAMIC_EXT)" \
742 "nonxs_ext=$(NONXS_EXT)" \
e4451f11 743 "useithreads=$(USE_ITHREADS)" \
e4451f11 744 "usemultiplicity=$(USE_MULTI)" \
18f68570 745 "useperlio=$(USE_PERLIO)" \
e4451f11 746 "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
747 "optimize=$(OPTIMIZE)"
748
749#
750# Top targets
751#
752
74a9a7e5 753all: hostminiperl $(MINIMOD) $(CONFIGPM) $(PERLEXE) Extensions
e4451f11 754
755$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
756
e2a02c1e 757$(CONFIGPM): .\config.h ..\config.sh ..\minimod.pl
fefd7080 758 cd .. && $(HPERL) configpm --cross=$(CROSS_NAME) --no-glossary
e2a02c1e 759 -mkdir $(XCOREDIR)
760 $(XCOPY) ..\*.h $(XCOREDIR)\*.*
761 $(XCOPY) *.h $(XCOREDIR)\*.*
e4451f11 762 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
e2a02c1e 763 $(RCOPY) include $(XCOREDIR)\*.*
fefd7080 764 -$(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)"
765 if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
e4451f11 766
e2a02c1e 767.\config.h:
768 -del /f config.h
769 copy config_H.ce config.h
770
771..\config.sh: config.ce config_sh.PL
fefd7080 772 $(HPERL) -I..\lib -I..\win32 config_sh.PL $(CFG_VARS) config.ce > ..\config.sh
e4451f11 773
774$(MINIMOD) : ..\minimod.pl
18f68570 775 cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm
e4451f11 776
777perlmain.c : runperl.c
778 $(COPY) runperl.c perlmain.c
779
780$(DYNALOADER).c: $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
781 if not exist $(AUTODIR) mkdir $(AUTODIR)
782 cd $(EXTDIR)\$(*B)
3f2394f2 783 $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) $(*B)_pm.PL
784 $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) XSLoader_pm.PL
e4451f11 785 cd ..\..\wince
786 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
787 $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
788 cd $(EXTDIR)\$(*B)
789 $(XSUBPP) dl_win32.xs > $(*B).c
790 cd ..\..\wince
791
792$(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
793 $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
794
fefd7080 795#----------------------------------------------------------------------------------
796Extensions: ..\win32\buildext.pl $(PERLDEP) $(CONFIGPM)
797 $(HPERL) -I..\lib -I..\win32 -MCross=$(CROSS_NAME) ..\win32\buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) \
74d57dc4 798 !File/Glob !POSIX !Time/HiRes
fefd7080 799
800Extensions_clean:
801 -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
802
803#----------------------------------------------------------------------------------
804
e4451f11 805$(DUMPER_DLL): $(PERLEXE) $(DUMPER).xs
806 cd $(EXTDIR)\Data\$(*B)
e2a02c1e 807 $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 808 $(MAKE)
809 cd ..\..\..\wince
810
811$(DPROF_DLL): $(PERLEXE) $(DPROF).xs
812 cd $(EXTDIR)\Devel\$(*B)
e2a02c1e 813 $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 814 $(MAKE)
815 cd ..\..\..\wince
816
817$(GLOB_DLL): $(PERLEXE) $(GLOB).xs
818 cd $(EXTDIR)\File\$(*B)
e2a02c1e 819 $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 820 $(MAKE)
821 cd ..\..\..\wince
822
823$(PEEK_DLL): $(PERLEXE) $(PEEK).xs
824 cd $(EXTDIR)\Devel\$(*B)
e2a02c1e 825 $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 826 $(MAKE)
827 cd ..\..\..\wince
828
829$(RE_DLL): $(PERLEXE) $(RE).xs
830 cd $(EXTDIR)\$(*B)
e2a02c1e 831 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 832 $(MAKE)
833 cd ..\..\wince
834
835$(B_DLL): $(PERLEXE) $(B).xs
836 cd $(EXTDIR)\$(*B)
e2a02c1e 837 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 838 $(MAKE)
839 cd ..\..\wince
840
841$(THREAD_DLL): $(PERLEXE) $(THREAD).xs
842 cd $(EXTDIR)\$(*B)
e2a02c1e 843 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 844 $(MAKE)
845 cd ..\..\wince
846
847$(ATTRS_DLL): $(PERLEXE) $(ATTRS).xs
848 cd $(EXTDIR)\$(*B)
e2a02c1e 849 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 850 $(MAKE)
851 cd ..\..\wince
852
853$(POSIX_DLL): $(PERLEXE) $(POSIX).xs
854 cd $(EXTDIR)\$(*B)
e2a02c1e 855 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 856 $(MAKE)
857 cd ..\..\wince
858
859$(IO_DLL): $(PERLEXE) $(IO).xs
860 cd $(EXTDIR)\$(*B)
e2a02c1e 861 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 862 $(MAKE)
863 cd ..\..\wince
864
865$(SDBM_FILE_DLL) : $(PERLEXE) $(SDBM_FILE).xs
866 cd $(EXTDIR)\$(*B)
e2a02c1e 867 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 868 $(MAKE)
869 cd ..\..\wince
870
871$(FCNTL_DLL): $(PERLEXE) $(FCNTL).xs
872 cd $(EXTDIR)\$(*B)
e2a02c1e 873 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 874 $(MAKE)
875 cd ..\..\wince
876
877$(OPCODE_DLL): $(PERLEXE) $(OPCODE).xs
878 cd $(EXTDIR)\$(*B)
e2a02c1e 879 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 880 $(MAKE)
881 cd ..\..\wince
882
883$(SOCKET_DLL): $(PERLEXE) $(SOCKET).xs
884 cd $(EXTDIR)\$(*B)
e2a02c1e 885 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 886 $(MAKE)
887 cd ..\..\wince
888
889$(HOSTNAME_DLL): $(PERLEXE) $(HOSTNAME).xs
890 cd $(EXTDIR)\Sys\$(*B)
e2a02c1e 891 $(HPERL) -I..\..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 892 $(MAKE)
893 cd ..\..\..\wince
894
895$(BYTELOADER_DLL): $(PERLEXE) $(BYTELOADER).xs
896 cd $(EXTDIR)\$(*B)
e2a02c1e 897 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 898 $(MAKE)
899 cd ..\..\wince
900
901$(ERRNO_PM): $(PERLEXE) $(ERRNO)_pm.PL
902 cd $(EXTDIR)\$(*B)
e2a02c1e 903 $(HPERL) -I..\..\lib -MCross Makefile.PL PERL_CORE=1 INSTALLDIRS=perl
e4451f11 904 $(MAKE)
905 cd ..\..\wince
906
476a6acb 907$(PERLEXE_RES): perl.rc perl.ico
e4451f11 908 rc $(RCDEFS) perl.rc
909
910clean:
911 -rm -f $(MACHINE)/dll/*
912 -rm -f $(MACHINE)/*.obj
913 -rm -f $(MACHINE)/*.exe
914 -rm -f $(MACHINE)/*.dll
915 -rm -f $(MACHINE)/*.lib
916 -rm -f ../config.sh ../lib/Config.pm
917 -rm -f config.h perl.res
918
42165d27 919!IF "$(MACHINE)" == "wince-sh3-hpc"
920
e4451f11 921install_perlexe: $(PERLEXE)
922 cedel /speicherkarte2/bin/perl.exe
18f68570 923 $(CECOPY) pc:../perl.exe ce:$(INSTALL_ROOT)/bin
e4451f11 924
925install_perldll: $(PERLDLL)
926 cedel /speicherkarte2/bin/perl$(PV).dll
42165d27 927 $(CECOPY) pc:../perl$(PV).dll ce:/speicherkarte2/bin
e4451f11 928
929install_perl: install_perlexe install_perldll
930
931test_perl:
42165d27 932 $(CECOPY) pc:test.pl ce:/speicherkarte2/bin
e4451f11 933 ceexec /speicherkarte2/bin/perl.exe /speicherkarte2/bin/test.pl
e4451f11 934
935install_lib: ../lib/Config.pm
18f68570 936 $(CECOPY) pc:../lib/Config.pm ce:$(INSTALL_ROOT)/lib
42165d27 937
938!ELSEIF "$(MACHINE)" == "wince-arm-hpc"
e4451f11 939
e4451f11 940install_perlexe: $(PERLEXE)
941 -cedel /speicherkarte/bin/perl.exe
18f68570 942 $(CECOPY) pc:$(MACHINE)/perl.exe ce:$(INSTALL_ROOT)/bin
e4451f11 943
944install_perldll: $(PERLDLL)
945 -cedel /speicherkarte/bin/perl$(PV).dll
18f68570 946 $(CECOPY) pc:$(MACHINE)/perl$(PV).dll ce:$(INSTALL_ROOT)/bin
e4451f11 947
948install_perl: install_perlexe install_perldll
949
950test_perl:
42165d27 951 $(CECOPY) pc:test.pl ce:/speicherkarte/bin
e4451f11 952 ceexec /speicherkarte/bin/perl.exe /speicherkarte/bin/test.pl
e4451f11 953
954install_lib: ../lib/Config.pm
18f68570 955 $(CECOPY) pc:../lib/Config.pm ce:$(INSTALL_ROOT)/lib
42165d27 956
957!ELSEIF "$(MACHINE)" == "wince-mips-hpc"
e4451f11 958
e4451f11 959install_perlexe: $(PERLEXE)
42165d27 960 $(CECOPY) pc:../perl.exe ce:$(INSTALL_ROOT)/bin
e4451f11 961
962install_perldll: $(PERLDLL)
42165d27 963 $(CECOPY) pc:../perl$(PV).dll ce:$(INSTALL_ROOT)/bin
e4451f11 964
965install_perl: install_perlexe install_perldll
966
967test_perl:
42165d27 968 $(CECOPY) pc:test.pl ce:/netzwerk/compaq/bin
969 ceexec /netzwerk/compaq/bin/perl.exe $(INSTALL_ROOT)/test.pl
e4451f11 970
971install_lib: ../lib/Config.pm
18f68570 972 $(CECOPY) pc:../lib/Config.pm ce:$(INSTALL_ROOT)/lib
42165d27 973
974!ELSEIF "$(MACHINE)" == "wince-x86em-pocket"
e4451f11 975
e4451f11 976install_lib:
977 ftpcopy ../lib/Config.pm ftp!ftp@localhost:/perl/lib
978 ftpcopy ../lib/Exporter.pm ftp!ftp@localhost:/perl/lib
979 ftpcopy ../lib/Exporter/Heavy.pm ftp!ftp@localhost:/perl/lib/Exporter
980
981install_perlexe: $(PERLEXE)
18f68570 982 $(CECOPY) pc:../perl.exe ce:$(INSTALL_ROOT)/bin
e4451f11 983
984install_perldll: $(PERLDLL)
18f68570 985 $(CECOPY) pc:../perl$(PV).dll ce:$(INSTALL_ROOT)/bin
e4451f11 986
987install_perl: install_perlexe install_perldll
988
989test_perl:
990 echo Not yet
42165d27 991!ENDIF
e4451f11 992
993
994XDLLOBJS = \
995$(DLLDIR)\av.obj \
996$(DLLDIR)\deb.obj \
997$(DLLDIR)\doio.obj \
998$(DLLDIR)\doop.obj \
999$(DLLDIR)\dump.obj \
1000$(DLLDIR)\globals.obj \
1001$(DLLDIR)\gv.obj \
1002$(DLLDIR)\hv.obj \
1003$(DLLDIR)\locale.obj \
1004$(DLLDIR)\mg.obj \
1005$(DLLDIR)\numeric.obj \
1006$(DLLDIR)\op.obj \
1007$(DLLDIR)\perl.obj \
1008$(DLLDIR)\perlapi.obj \
1009$(DLLDIR)\perlio.obj \
1010$(DLLDIR)\perly.obj \
1011$(DLLDIR)\pp.obj \
1012$(DLLDIR)\pp_ctl.obj \
1013$(DLLDIR)\pp_hot.obj \
1014$(DLLDIR)\pp_pack.obj \
84d4ea48 1015$(DLLDIR)\pp_sort.obj \
e4451f11 1016$(DLLDIR)\pp_sys.obj \
10bc17b6 1017$(DLLDIR)\reentr.obj \
e4451f11 1018$(DLLDIR)\regcomp.obj \
1019$(DLLDIR)\regexec.obj \
1020$(DLLDIR)\run.obj \
1021$(DLLDIR)\scope.obj \
1022$(DLLDIR)\sv.obj \
1023$(DLLDIR)\taint.obj \
1024$(DLLDIR)\toke.obj \
1025$(DLLDIR)\universal.obj \
1026$(DLLDIR)\utf8.obj \
1027$(DLLDIR)\util.obj \
1028$(DLLDIR)\win32thread.obj \
1029$(DLLDIR)\wince.obj \
42165d27 1030$(DLLDIR)\win32io.obj \
e4451f11 1031$(DLLDIR)\wincesck.obj \
1032$(DLLDIR)\xsutils.obj \
1033$(DLLDIR)\perllib.obj \
1034$(DLLDIR)\DynaLoader.obj
1035
1036{$(SRCDIR)}.c{$(DLLDIR)}.obj:
1037 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
1038
1039{$(SRCDIR)/wince}.c{$(DLLDIR)}.obj:
1040 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
1041
47bcb90d 1042perldll.def : $(HPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
18f68570 1043 $(HPERL) -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
1044 CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) > perldll.def
1045
e4451f11 1046$(PERLDLL) : $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
1047 $(LINK32) -dll -def:perldll.def -out:$@ \
1048 $(SUBSYS) $(LDLIBPATH) \
1049 $(LINK_FLAGS) $(LIBFILES) \
1050 $(XDLLOBJS) $(PERLDLL_RES)
1051
1052$(DLLDIR) :
1053 if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
1054
1055$(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
1056 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
1057 $(EXTDIR)\DynaLoader\DynaLoader.c
1058
1059XPERLEXEOBJS = \
1060$(MACHINE)\perlmain.obj
1061
1062$(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
e2a02c1e 1063 $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR)
1064 $(LINK32) $(SUBSYS) $(LDLIBPATH) \
e4451f11 1065 -entry:wWinMainCRTStartup \
1066 -out:$(MACHINE)\perl.exe \
1067 -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
1068 $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
1069
1070$(MACHINE)\perlmain.obj : perlmain.c
1071 $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmain.c
1072
1073iodll: $(IO_DLL)
1074socketdll: $(SOCKET_DLL)
1075dumperdll: $(DUMPER_DLL)
1076
1077dlls: socketdll iodll dumperdll
1078 -xmkdir -p $(MACHINE)/lib/auto/IO
1079 cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
1080 cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
1081 -xmkdir $(MACHINE)/lib/auto/Socket
1082 cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
1083 cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
1084 -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
1085 cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
1086 cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
1087
1088makedist: all dlls
1089 $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
1090 cp perl.txt $(MACHINE)
1091 cp registry.bat $(MACHINE)
1092 cp ../lib/Config.pm $(MACHINE)/lib
1093 cd $(MACHINE)
1094 rm -f perl-$(MACHINE).tar.gz
1095 sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib"
1096 gzip -9 perl-$(MACHINE).tar
1097 mv perl-$(MACHINE).tar.gz h:/freenet/new
1098 cd ..
1099
1100!if "$(MACHINE)" == "wince-arm-hpc-wce300"
1101install: all
18f68570 1102 $(CECOPY) pc:$(MACHINE)/perl.exe ce:$(INSTALL_ROOT)/bin
1103 $(CECOPY) pc:$(MACHINE)/perl$(PV).dll ce:$(INSTALL_ROOT)/bin
e4451f11 1104install_dlls: dlls
18f68570 1105 $(CECOPY) pc:../lib/auto/IO/io.dll ce:$(INSTALL_ROOT)/lib/auto/IO/io.dll
42165d27 1106!else
1107install: all
1108 -cemkdir "$(INSTALL_ROOT)"
1109 -cemkdir "$(INSTALL_ROOT)\bin"
1110 -cemkdir "$(INSTALL_ROOT)\lib"
1111 $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin"
18f68570 1112 $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
e2a02c1e 1113 $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib"
e4451f11 1114!endif
1115
18f68570 1116perl.ico:
1117 $(HPERL) makeico.pl
e4451f11 1118
18f68570 1119hostminiperl: ..\miniperl.exe
e4451f11 1120
18f68570 1121..\miniperl.exe:
1122 cd ../win32
1123 set PATH=$(CCHOME)\bin;$(PATH)
47bcb90d 1124 $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
18f68570 1125 cd ../wince
476a6acb 1126
47bcb90d 1127host-install:
1128 perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)"
1129 perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)"
1130 perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#"
1131 perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#"
74a9a7e5 1132 perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
1133 quotemeta($$Config{installprefixexp}) . \
1134 qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#"