2 # perl makefile for wince
3 # During the cross-compilation, it first uses Makefile file to build
4 # miniperl on HOST and then build required platform
10 # INSTALL_ROOT specifies a path where this perl will be installed on CE device
11 INSTALL_ROOT=/netzwerk/sprache/perl
12 INST_TOP=$(INSTALL_ROOT)
15 # PERLCEDIR shoud be set to current directory
16 PERLCEDIR = $(MAKEDIR)
18 # WCEROOT is a directory where Windows CE Tools was installed
19 WCEROOT = D:\Windows CE Tools
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
24 HPERL = $(MAKEDIR)\..\miniperl.exe
26 CEPATH = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN
27 CELIBDLLDIR = h:\src\wince\celib-palm-3.0
28 CECONSOLEDIR = h:\src\wince\w32console
30 # specify following options to build perl on local machine, by MSVC
31 MSVCDIR = D:\MSVStudio\VC98
33 CCINCDIR = $(CCHOME)\include
34 CCLIBDIR = $(CCHOME)\lib
36 # cecopy program. Make shure it is in your path, as well as cemkdir, cedel
40 # Comment out next assign to disable perl's I/O subsystem and use compiler's
41 # stdio for IO - depending on your compiler vendor and run time library you may
42 # then get a number of fails from make test i.e. bugs - complain to them not us ;-).
43 # You will also be unable to take full advantage of perl5.8's support for multiple
44 # encodings and may see lower IO performance. You have been warned.
48 # set this if you wish to use perl's malloc
49 # This will make perl run few times faster
50 # WARNING: Turning this on/off WILL break binary compatibility with extensions
51 # you may have compiled with/without it.
57 # keep this untouched!
64 !if "$(MACHINE)" == ""
65 MACHINE=wince-arm-hpc-wce300
66 #MACHINE=wince-arm-hpc-wce211
67 #MACHINE=wince-sh3-hpc-wce211
68 #MACHINE=wince-mips-hpc-wce211
69 #MACHINE=wince-sh3-hpc-wce200
70 #MACHINE=wince-mips-hpc-wce200
71 #MACHINE=wince-arm-pocket-wce300
72 #MACHINE=wince-mips-pocket-wce300
73 #MACHINE=wince-sh3-pocket-wce300
74 #MACHINE=wince-x86em-pocket-wce300
75 #MACHINE=wince-mips-palm-wce211
76 #MACHINE=wince-sh3-palm-wce211
77 #MACHINE=wince-x86em-palm-wce211
78 #MACHINE=wince-x86-hpc-wce300
81 # set this to your email address
85 ##################### CHANGE THESE ONLY IF YOU MUST #####################
87 ######################################################################
90 !if "$(MACHINE)" == "wince-sh3-hpc-wce211"
98 MCFLAGS = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
100 SUBSYS = -subsystem:windowsce,2.11
101 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
102 LDLIBPATH = -libpath:$(CELIBPATH)
103 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
104 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
107 !if "$(MACHINE)" == "wince-mips-hpc-wce211"
114 PLATFORM = MS HPC Pro
115 MCFLAGS = -D _MT -D _DLL \
116 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
118 -I $(CELIBDLLDIR)\inc
119 SUBSYS = -subsystem:windowsce,2.11
120 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
121 LDLIBPATH = -libpath:$(CELIBPATH)
122 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
123 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
126 !if "$(MACHINE)" == "wince-mips-hpc-wce200"
134 # MUST USE -MD to get the right FPE stuff...
135 MCFLAGS = -D _MT -D _DLL -MD \
136 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
138 -I $(CELIBDLLDIR)\inc
139 SUBSYS = -subsystem:windowsce,2.00
140 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
141 LDLIBPATH = -libpath:$(CELIBPATH)
142 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
143 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
146 !if "$(MACHINE)" == "wince-sh3-hpc-wce200"
154 # MUST USE -MD to get the right FPE stuff...
155 MCFLAGS = -D _MT -D _DLL -MD \
156 -D SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \
158 -I $(CELIBDLLDIR)\inc
159 SUBSYS = -subsystem:windowsce,2.00
160 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
161 LDLIBPATH = -libpath:$(CELIBPATH)
162 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
163 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
166 !if "$(MACHINE)" == "wince-arm-hpc-wce211"
173 PLATFORM = MS HPC Pro
174 MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
175 -DPROCESSOR_ARM -DPALM_SIZE \
176 -I $(CELIBDLLDIR)\inc
177 SUBSYS = -subsystem:windowsce,2.11
178 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
179 LDLIBPATH = -libpath:$(CELIBPATH)
180 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
181 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
184 !if "$(MACHINE)" == "wince-arm-hpc-wce300"
192 MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
193 -DPROCESSOR_ARM -DPALM_SIZE \
194 -I $(CELIBDLLDIR)\inc
195 SUBSYS = -subsystem:windowsce,3.00
196 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
197 LDLIBPATH = -libpath:$(CELIBPATH)
198 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
199 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
202 !if "$(MACHINE)" == "wince-mips-palm-wce211"
209 PLATFORM = MS Palm Size PC
210 MCFLAGS = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \
211 -I $(CELIBDLLDIR)\inc
212 SUBSYS = -subsystem:windowsce,2.11
213 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
214 LDLIBPATH = -libpath:$(CELIBPATH)
215 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
216 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
219 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
226 PLATFORM = MS Palm Size PC
227 MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
228 -I $(CELIBDLLDIR)\inc
229 SUBSYS = -subsystem:windowsce,2.11
230 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
231 LDLIBPATH = -libpath:$(CELIBPATH)
232 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
233 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
236 !if "$(MACHINE)" == "wince-x86em-palm-wce211"
243 PLATFORM = MS Palm Size PC
244 MCFLAGS = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \
245 -D_WIN32_WCE_EMULATION -DPALM_SIZE \
246 -I $(CELIBDLLDIR)\inc
248 SUBSYS = -subsystem:windows
249 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
250 LDLIBPATH = -libpath:$(CELIBPATH)
251 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
252 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
255 !if "$(MACHINE)" == "wince-x86em-pocket-wce300"
262 PLATFORM = MS Pocket PC
263 MCFLAGS = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \
264 -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \
265 -I $(CELIBDLLDIR)\inc
267 SUBSYS = -subsystem:windows
268 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
269 LDLIBPATH = -libpath:$(CELIBPATH)
270 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
271 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
274 !if "$(MACHINE)" == "wince-mips-pocket-wce300"
281 PLATFORM = MS Pocket PC
282 MCFLAGS = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
283 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
284 -I $(CELIBDLLDIR)\inc
286 SUBSYS = -subsystem:windowsce,3.00
287 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
288 #STDLIBPATH = $(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(CPU)
289 LDLIBPATH = -libpath:$(CELIBPATH)
290 #"-libpath:$(STDLIBPATH)"
291 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
292 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
295 !if "$(MACHINE)" == "wince-sh3-pocket-wce300"
302 PLATFORM = MS Pocket PC
303 MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \
304 -DPALM_SIZE -DPOCKET_SIZE \
305 -I $(CELIBDLLDIR)\inc
307 SUBSYS = -subsystem:windowsce,3.00
308 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
309 LDLIBPATH = -libpath:$(CELIBPATH)
310 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
311 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
314 !if "$(MACHINE)" == "wince-arm-pocket-wce300"
321 PLATFORM = MS Pocket PC
322 MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
323 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
324 -I $(CELIBDLLDIR)\inc
326 SUBSYS = -subsystem:windowsce,3.00
327 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
328 LDLIBPATH = -libpath:$(CELIBPATH)
329 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
330 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
333 !if "$(MACHINE)" == "wince-x86-hpc-wce300"
340 PLATFORM = MS Pocket PC
341 MCFLAGS = -DX86 -D_X86_ -Dx86 -DPROCESSOR_X86 -D _MT -D _DLL \
342 -DPALM_SIZE -DPOCKET_SIZE -I $(CELIBDLLDIR)\inc
344 SUBSYS = -subsystem:windowsce,2.0
345 CELIBPATH = $(CELIBDLLDIR)\wince-x86-hpc-wce300-release
346 LDLIBPATH = -libpath:$(CELIBPATH)
347 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
348 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
351 ######################################################################
354 CEDEFS = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \
355 $(MCFLAGS) -D PERL -GS-
359 !if "$(CFG)" == "DEBUG"
360 CECFLAGS = $(CECFLAGS) -Zi -Od
363 !if "$(CFG)" == "RELEASE"
364 # -O2 and -Ot give internal compiler error in perl.c and lexer.
365 # Also the dll cannot be loaded by perl.exe...
366 !if "$(CPU)" == "SH3"
368 CECFLAGS = $(CECFLAGS) -O2 -Ot
373 RCDEFS = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
374 /d _WIN32_WCE=$(CEVersion)
376 PATH=$(CEPATH);$(PATH)
378 # attention, for eVC 4, these paths are not generated correctly since the
379 # WinCE SDK is organized differently from eVC 3, replace the next 2 macros
380 # with absolute paths to the correct directories on your system
381 #INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include
382 #LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH)
384 ######################################################################
387 !message Compiling for $(MACHINE)
389 !message INCLUDE=$(INCLUDE)
390 !message PATH=$(CEPATH)
393 ######################################################################
395 # Additional compiler flags can be specified here.
398 BUILDOPT = $(BUILDOPT) $(CECFLAGS) -DUSE_CROSS_COMPILE
401 !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
405 CRYPT_FLAG = -DHAVE_DES_FCRYPT
408 !IF "$(PERL_MALLOC)" == ""
412 !IF "$(USE_MULTI)" == ""
416 !IF "$(USE_ITHREADS)" == ""
420 !IF "$(USE_IMP_SYS)" == ""
424 !IF "$(USE_PERLIO)" == ""
428 !IF "$(USE_PERLCRT)" == ""
432 !IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
436 !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
440 !IF "$(USE_MULTI)" != "undef"
441 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
444 !IF "$(USE_IMP_SYS)" != "undef"
445 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS
448 !IF "$(USE_PERLIO)" == "define"
449 BUILDOPT = $(BUILDOPT) -DUSE_PERLIO
452 !IF "$(CROSS_NAME)" == ""
453 CROSS_NAME = $(MACHINE)
456 # new option - automatically defined in perl.h...
457 #BUILDOPT = $(BUILDOPT) -DUSE_ENVIRON_ARRAY
459 PROCESSOR_ARCHITECTURE = $(TARGETCPU)
460 ARCHNAME = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE)
461 ARCHDIR = ..\lib\$(ARCHNAME)
462 COREDIR = ..\lib\CORE
463 XCOREDIR = ..\xlib\$(CROSS_NAME)\CORE
464 AUTODIR = ..\lib\auto
470 EXTUTILSDIR = $(LIBDIR)\ExtUtils
473 LIB32 = $(LINK32) -lib
476 INCLUDES = -I.\include -I. -I..
477 DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
478 LOCDEFS = -DPERLDLL -DPERL_CORE
481 PERLEXE_RES = perl.res
484 !if "$(CFG)" == "RELEASE"
488 !if "$(CFG)" == "DEBUG"
492 #use ws2.lib instead of winsock.lib for WSAGetLastError
493 CELIBS = -nodefaultlib \
494 ws2.lib $(CELIB) coredll.lib
496 !if $(CEVersion) > 200
497 CELIBS = $(CELIBS) corelibc.lib
499 CELIBS = $(CELIBS) msvcrt.lib
502 LIBBASEFILES = $(CRYPT_LIB) $(CELIBS)
504 LIBFILES = $(LIBBASEFILES) $(LIBC)
506 CFLAGS = -nologo -GF -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
507 $(PCHFLAGS) $(OPTIMIZE)
509 LINK_FLAGS = -nologo -opt:ref,icf -machine:$(PROCESSOR_ARCHITECTURE)
511 !if "$(CFG)" == "DEBUG"
512 LINK_FLAGS = $(LINK_FLAGS) -debug
514 LINK_FLAGS = $(LINK_FLAGS) -release
520 CFLAGS_O = $(CFLAGS) $(BUILDOPT)
528 .SUFFIXES : .c $(o) .dll .lib .exe .rc .res
531 $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
534 $(CC) -c -I$(<D) $(CFLAGS_O) -P $(OBJOUT_FLAG)$@ $<
540 $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
541 -implib:$(*B).lib -def:$(*B).def \
542 -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
547 # This must be relative to ../lib/CORE, else the ext dll build fails...
548 PERLIMPLIB_EXP = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib
549 PERLIMPLIB = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
550 PERLDLL = $(MACHINE)\perl$(PV).dll
552 DLLDIR = $(MACHINE)\dll
553 PERLEXE = $(MACHINE)\perl.exe
555 CONFIGPM = ..\xlib\$(CROSS_NAME)\Config.pm
556 MINIMOD = ..\lib\ExtUtils\Miniperl.pm
558 # Unicode data files generated by mktables
559 FIRSTUNIFILE = ..\lib\unicore\Decomposition.pl
560 UNIDATAFILES = ..\lib\unicore\Decomposition.pl \
561 ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
562 ..\lib\unicore\Heavy.pl ..\lib\unicore\mktables.lst \
563 ..\lib\unicore\UCD.pl ..\lib\unicore\Name.pm \
564 ..\lib\unicore\TestProp.pl
566 PERLEXE_MANIFEST= .\perlexe.manifest
567 PERLEXE_ICO = .\perlexe.ico
568 PERLEXE_RES = .\perlexe.res
571 # Directories of Unicode data files generated by mktables
572 UNIDATADIR1 = ..\lib\unicore\To
573 UNIDATADIR2 = ..\lib\unicore\lib
575 # Nominate a target which causes extensions to be re-built
576 # This used to be $(PERLEXE), but at worst it is the .dll that they depend
577 # on and really only the interface - i.e. the .def file used to export symbols
579 PERLDEP = perldll.def
584 CFGSH_TMPL = config.ce
585 CFGH_TMPL = config_H.ce
587 XCOPY = xcopy /f /r /i /d /y
588 RCOPY = xcopy /f /r /i /e /d /y
632 EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
634 !IF "$(PERL_MALLOC)" == "define"
635 EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
638 EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
645 !IF "$(CRYPT_SRC)" != ""
646 WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
686 .\include\sys\errno2.h \
687 .\include\sys\socket.h \
690 DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
691 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
694 STATIC_EXT = DynaLoader
696 DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
698 ERRNO_PM = $(LIBDIR)\Errno.pm
705 "INST_TOP=$(INST_TOP)" \
706 "INST_VER=$(INST_VER)" \
707 "INST_ARCH=$(INST_ARCH)" \
708 "archname=$(ARCHNAME)" \
711 "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
712 "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
714 "cf_email=$(EMAIL)" \
716 "d_mymalloc=$(PERL_MALLOC)" \
718 "incpath=$(CCINCDIR)" \
719 "libperl=$(PERLIMPLIB_EXP)" \
720 "libpth=$(LIBPATH)" \
722 "make=$(MAKE_BARE)" \
723 "static_ext=$(STATIC_EXT)" \
724 "dynamic_ext=$(DYNAMIC_EXT)" \
725 "usethreads=$(USE_ITHREADS)" \
726 "useithreads=$(USE_ITHREADS)" \
727 "usemultiplicity=$(USE_MULTI)" \
728 "useperlio=$(USE_PERLIO)" \
729 "use64bitint=undef" \
730 "uselargefiles=undef" \
731 "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
732 "optimize=$(OPTIMIZE)" \
735 ICWD = -I..\dist\Cwd -I..\dist\Cwd\lib
736 ICWD1 = -I..\..\dist\Cwd -I..\..\dist\Cwd\lib
739 # filenames given to xsubpp must have forward slashes (since it puts
740 # full pathnames in #line strings)
741 XSUBPP = $(HPERL) -I..\..\lib $(ICWD1) -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \
749 all: hostminiperl $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) MakePPPort Extensions
751 $(DYNALOADER)$(o) : $(DYNALOADER).c xconfig.h $(EXTDIR)\DynaLoader\dlutils.c
754 configpm_targ : $(CONFIGPM)
756 $(CONFIGPM) : $(HPERL) ..\Cross\config-$(MACHINE).sh config_h.PL ..\minimod.pl
757 cd .. && $(HPERL) -Ilib configpm --cross=$(CROSS_NAME) --no-glossary
759 $(XCOPY) ..\*.h $(XCOREDIR)\*.*
760 $(XCOPY) *.h $(XCOREDIR)\*.*
761 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
762 $(RCOPY) include $(XCOREDIR)\*.*
767 -$(HPERL) -I..\lib $(ICWD) -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)" "CONFIG_H=xconfig.h"
768 $(XCOPY) xconfig.h $(XCOREDIR)\config.h
770 ..\Cross\config-$(MACHINE).sh: config.ce config_sh.PL
771 $(HPERL) -I..\lib -I. config_sh.PL $(CFG_VARS) config.ce > ..\Cross\config-$(MACHINE).sh
773 $(MINIMOD) : ..\minimod.pl
774 cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm
776 MakePPPort: $(MINIPERL) $(CONFIGPM)
777 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ..\mkppport
780 -if exist $(HPERL) $(HPERL) -I..\lib ..\mkppport --clean
782 #----------------------------------------------------------------------------------
784 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
785 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
787 !if "$(MACHINE)" == "wince-mips-palm-wce211"
788 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
791 Extensions: ..\make_ext.pl $(CONFIGPM)
792 $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --all \
793 !POSIX !Errno !Win32 !Win32API/File !Socket !Time/HiRes !Time/Piece !re $(NOT_COMPILE_EXT)
796 -if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --all --target=clean
798 #----------------------------------------------------------------------------------
800 $(PERLEXE_RES): perlexe.rc perl.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
801 rc $(RCDEFS) perlexe.rc
804 -if exist .\$(MACHINE)\dll rmdir /s /q .\$(MACHINE)\dll
805 -@$(DEL) .\$(MACHINE)\*.obj
806 -@$(DEL) .\$(MACHINE)\*.exe
807 -@$(DEL) .\$(MACHINE)\*.dll
808 -@$(DEL) .\$(MACHINE)\*.lib
809 -@$(DEL) .\$(MACHINE)\*.exp
810 -@$(DEL) .\$(MACHINE)\*.pdb
811 -@$(DEL) ..\Cross\config-$(MACHINE).sh ..\lib\Config.pm
812 -if exist ..\xlib rmdir /s /q ..\xlib
813 -@$(DEL) config.h xconfig.h perl.res
814 -@$(DEL) ..\t\test_state
822 $(DLLDIR)\globals.obj \
826 $(DLLDIR)\locale.obj \
827 $(DLLDIR)\keywords.obj \
828 $(DLLDIR)\mathoms.obj \
830 $(DLLDIR)\numeric.obj \
834 $(DLLDIR)\perlapi.obj \
835 $(DLLDIR)\perlio.obj \
836 $(DLLDIR)\perly.obj \
838 $(DLLDIR)\pp_ctl.obj \
839 $(DLLDIR)\pp_hot.obj \
840 $(DLLDIR)\pp_pack.obj \
841 $(DLLDIR)\pp_sort.obj \
842 $(DLLDIR)\pp_sys.obj \
843 $(DLLDIR)\reentr.obj \
844 $(DLLDIR)\regcomp.obj \
845 $(DLLDIR)\regexec.obj \
847 $(DLLDIR)\scope.obj \
849 $(DLLDIR)\taint.obj \
851 $(DLLDIR)\universal.obj \
854 $(DLLDIR)\win32thread.obj \
855 $(DLLDIR)\wince.obj \
856 $(DLLDIR)\win32io.obj \
857 $(DLLDIR)\wincesck.obj \
858 $(DLLDIR)\perllib.obj \
859 $(DLLDIR)\DynaLoader.obj
860 !IF "$(PERL_MALLOC)" == "define"
861 XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj
863 !IF "$(CRYPT_SRC)" != ""
864 XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj
867 {$(SRCDIR)}.c{$(DLLDIR)}.obj:
868 $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
870 # compiler explains that it will optimize toke.c if we'll give it an
871 # option -QMOb<num> with num>=4178
873 $(CC) -c $(CFLAGS_O) -QMOb9000 -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ ..\toke.c
875 {$(SRCDIR)/win32}.c{$(DLLDIR)}.obj:
876 $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
878 # -DPERL_IMPLICIT_SYS needs C++ for perllib.c
879 # This is the only file that depends on perlhost.h, vmem.h, and vdir.h
880 !IF "$(USE_IMP_SYS)" == "define"
881 $(DLLDIR)\perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h
882 $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
883 rem (frustrated) mv perllib.obj $(DLLDIR)
886 perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl .\xconfig.h
887 $(HPERL) -I..\lib -MCross create_perllibst_h.pl
888 $(HPERL) -I..\lib -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
889 CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def
891 $(PERLDLL) : $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
892 $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ \
893 $(SUBSYS) $(LDLIBPATH) \
894 $(LINK_FLAGS) $(LIBFILES) \
895 $(XDLLOBJS) $(PERLDLL_RES)
898 if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
900 $(EXTDIR)\DynaLoader\DynaLoader.c :
901 $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader
903 $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
904 $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
905 $(EXTDIR)\DynaLoader\DynaLoader.c
908 $(MACHINE)\perlmaince.obj
910 $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
911 $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR)
912 $(LINK32) $(SUBSYS) $(LDLIBPATH) \
913 -entry:wWinMainCRTStartup \
914 -out:$(MACHINE)\perl.exe \
915 -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
916 $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
918 $(MACHINE)\perlmaince.obj : perlmaince.c
919 $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmaince.c
922 socketdll: $(SOCKET_DLL)
923 dumperdll: $(DUMPER_DLL)
925 dlls: socketdll iodll dumperdll
926 -xmkdir -p $(MACHINE)/lib/auto/IO
927 cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
928 cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
929 -xmkdir $(MACHINE)/lib/auto/Socket
930 cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
931 cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
932 -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
933 cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
934 cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
937 $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
938 cp perl.txt $(MACHINE)
939 cp registry.bat $(MACHINE)
940 cp ../lib/Config.pm $(MACHINE)/lib
942 -@$(DEL) perl-$(MACHINE).tar.gz
943 sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib"
944 gzip -9 perl-$(MACHINE).tar
945 mv perl-$(MACHINE).tar.gz h:/freenet/new
949 -cemkdir "$(INSTALL_ROOT)"
950 -cemkdir "$(INSTALL_ROOT)\bin"
951 -cemkdir "$(INSTALL_ROOT)\lib"
952 $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin"
953 $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
954 $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib"
956 $(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables
957 cd ..\lib\unicore && \
958 $(HPERL) -I.. -I..\..\lib $(ICWD1) -MCross=$(CROSS_NAME) mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
961 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
964 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
965 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
968 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
970 hostminiperl: ..\miniperl.exe
973 set PATH=$(CCHOME)\bin;$(PATH)
974 $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
977 perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)"
978 perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)"
979 perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#"
980 perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#"
981 perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
982 quotemeta($$Config{installprefixexp}) . \
983 qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#"