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