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 = H:\src\wince\perl\win32
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
39 XCOPY = xcopy $(YES) /f /r /i /d
40 RCOPY = xcopy $(YES) /f /r /i /e /d
42 # cecopy program. Make shure it is in your path, as well as cemkdir, cedel
46 # Comment out next assign to disable perl's I/O subsystem and use compiler's
47 # stdio for IO - depending on your compiler vendor and run time library you may
48 # then get a number of fails from make test i.e. bugs - complain to them not us ;-).
49 # You will also be unable to take full advantage of perl5.8's support for multiple
50 # encodings and may see lower IO performance. You have been warned.
54 # set this if you wish to use perl's malloc
55 # This will make perl run few times faster
56 # WARNING: Turning this on/off WILL break binary compatibility with extensions
57 # you may have compiled with/without it.
63 # keep this untouched!
70 !if "$(MACHINE)" == ""
71 MACHINE=wince-arm-hpc-wce300
72 #MACHINE=wince-arm-hpc-wce211
73 #MACHINE=wince-sh3-hpc-wce211
74 #MACHINE=wince-mips-hpc-wce211
75 #MACHINE=wince-sh3-hpc-wce200
76 #MACHINE=wince-mips-hpc-wce200
77 #MACHINE=wince-arm-pocket-wce300
78 #MACHINE=wince-mips-pocket-wce300
79 #MACHINE=wince-sh3-pocket-wce300
80 #MACHINE=wince-x86em-pocket-wce300
81 #MACHINE=wince-mips-palm-wce211
82 #MACHINE=wince-sh3-palm-wce211
83 #MACHINE=wince-x86em-palm-wce211
86 # set this to your email address
90 ##################### CHANGE THESE ONLY IF YOU MUST #####################
92 ######################################################################
95 !if "$(MACHINE)" == "wince-sh3-hpc-wce211"
102 PLATFORM = MS HPC Pro
103 MCFLAGS = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
104 -I $(CELIBDLLDIR)\inc
105 SUBSYS = -subsystem:windowsce,2.11
106 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
107 LDLIBPATH = -libpath:$(CELIBPATH)
108 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
109 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
112 !if "$(MACHINE)" == "wince-mips-hpc-wce211"
119 PLATFORM = MS HPC Pro
120 MCFLAGS = -D _MT -D _DLL \
121 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
123 -I $(CELIBDLLDIR)\inc
124 SUBSYS = -subsystem:windowsce,2.11
125 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
126 LDLIBPATH = -libpath:$(CELIBPATH)
127 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
128 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
131 !if "$(MACHINE)" == "wince-mips-hpc-wce200"
139 # MUST USE -MD to get the right FPE stuff...
140 MCFLAGS = -D _MT -D _DLL -MD \
141 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
143 -I $(CELIBDLLDIR)\inc
144 SUBSYS = -subsystem:windowsce,2.00
145 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
146 LDLIBPATH = -libpath:$(CELIBPATH)
147 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
148 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
151 !if "$(MACHINE)" == "wince-sh3-hpc-wce200"
159 # MUST USE -MD to get the right FPE stuff...
160 MCFLAGS = -D _MT -D _DLL -MD \
161 -D SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \
163 -I $(CELIBDLLDIR)\inc
164 SUBSYS = -subsystem:windowsce,2.00
165 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
166 LDLIBPATH = -libpath:$(CELIBPATH)
167 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
168 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
171 !if "$(MACHINE)" == "wince-arm-hpc-wce211"
178 PLATFORM = MS HPC Pro
179 MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
180 -DPROCESSOR_ARM -DPALM_SIZE \
181 -I $(CELIBDLLDIR)\inc
182 SUBSYS = -subsystem:windowsce,2.11
183 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
184 LDLIBPATH = -libpath:$(CELIBPATH)
185 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
186 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
189 !if "$(MACHINE)" == "wince-arm-hpc-wce300"
197 MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
198 -DPROCESSOR_ARM -DPALM_SIZE \
199 -I $(CELIBDLLDIR)\inc
200 SUBSYS = -subsystem:windowsce,3.00
201 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
202 LDLIBPATH = -libpath:$(CELIBPATH)
203 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
204 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
207 !if "$(MACHINE)" == "wince-mips-palm-wce211"
214 PLATFORM = MS Palm Size PC
215 MCFLAGS = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \
216 -I $(CELIBDLLDIR)\inc
217 SUBSYS = -subsystem:windowsce,2.11
218 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
219 LDLIBPATH = -libpath:$(CELIBPATH)
220 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
221 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
224 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
231 PLATFORM = MS Palm Size PC
232 MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
233 -I $(CELIBDLLDIR)\inc
234 SUBSYS = -subsystem:windowsce,2.11
235 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
236 LDLIBPATH = -libpath:$(CELIBPATH)
237 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
238 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
241 !if "$(MACHINE)" == "wince-x86em-palm-wce211"
248 PLATFORM = MS Palm Size PC
249 MCFLAGS = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \
250 -D_WIN32_WCE_EMULATION -DPALM_SIZE \
251 -I $(CELIBDLLDIR)\inc
253 SUBSYS = -subsystem:windows
254 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
255 LDLIBPATH = -libpath:$(CELIBPATH)
256 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
257 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
260 !if "$(MACHINE)" == "wince-x86em-pocket-wce300"
267 PLATFORM = MS Pocket PC
268 MCFLAGS = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \
269 -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \
270 -I $(CELIBDLLDIR)\inc
272 SUBSYS = -subsystem:windows
273 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
274 LDLIBPATH = -libpath:$(CELIBPATH)
275 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
276 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
279 !if "$(MACHINE)" == "wince-mips-pocket-wce300"
286 PLATFORM = MS Pocket PC
287 MCFLAGS = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
288 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
289 -I $(CELIBDLLDIR)\inc
291 SUBSYS = -subsystem:windowsce,3.00
292 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
293 #STDLIBPATH = $(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(CPU)
294 LDLIBPATH = -libpath:$(CELIBPATH)
295 #"-libpath:$(STDLIBPATH)"
296 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
297 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
300 !if "$(MACHINE)" == "wince-sh3-pocket-wce300"
307 PLATFORM = MS Pocket PC
308 MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \
309 -DPALM_SIZE -DPOCKET_SIZE \
310 -I $(CELIBDLLDIR)\inc
312 SUBSYS = -subsystem:windowsce,3.00
313 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
314 LDLIBPATH = -libpath:$(CELIBPATH)
315 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
316 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
319 !if "$(MACHINE)" == "wince-arm-pocket-wce300"
326 PLATFORM = MS Pocket PC
327 MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
328 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
329 -I $(CELIBDLLDIR)\inc
331 SUBSYS = -subsystem:windowsce,3.00
332 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
333 LDLIBPATH = -libpath:$(CELIBPATH)
334 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
335 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
338 ######################################################################
341 CEDEFS = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \
346 !if "$(CFG)" == "DEBUG"
347 CECFLAGS = $(CECFLAGS) -Zi -Od
350 !if "$(CFG)" == "RELEASE"
351 # -O2 and -Ot give internal compiler error in perl.c and lexer.
352 # Also the dll cannot be loaded by perl.exe...
353 !if "$(CPU)" == "SH3"
355 CECFLAGS = $(CECFLAGS) -O2 -Ot
360 RCDEFS = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
361 /d _WIN32_WCE=$(CEVersion)
363 PATH=$(CEPATH);$(PATH)
365 INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include
366 LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH)
368 ######################################################################
371 !message Compiling for $(MACHINE)
373 !message INCLUDE=$(INCLUDE)
374 !message PATH=$(CEPATH)
377 ######################################################################
379 # Additional compiler flags can be specified here.
382 BUILDOPT = $(BUILDOPT) $(CECFLAGS) -DUSE_CROSS_COMPILE
385 !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
389 CRYPT_FLAG = -DHAVE_DES_FCRYPT
392 !IF "$(PERL_MALLOC)" == ""
396 !IF "$(USE_MULTI)" == ""
400 !IF "$(USE_ITHREADS)" == ""
404 !IF "$(USE_IMP_SYS)" == ""
408 !IF "$(USE_PERLIO)" == ""
412 !IF "$(USE_PERLCRT)" == ""
416 !IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
420 !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
424 !IF "$(USE_MULTI)" != "undef"
425 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
428 !IF "$(USE_IMP_SYS)" != "undef"
429 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS
432 !IF "$(USE_PERLIO)" == "define"
433 BUILDOPT = $(BUILDOPT) -DUSE_PERLIO
436 !IF "$(CROSS_NAME)" == ""
437 CROSS_NAME = $(MACHINE)
440 # new option - automatically defined in perl.h...
441 #BUILDOPT = $(BUILDOPT) -DUSE_ENVIRON_ARRAY
443 PROCESSOR_ARCHITECTURE = $(TARGETCPU)
444 ARCHNAME = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE)
445 ARCHDIR = ..\lib\$(ARCHNAME)
446 COREDIR = ..\lib\CORE
447 XCOREDIR = ..\xlib\$(CROSS_NAME)\CORE
448 AUTODIR = ..\lib\auto
452 EXTUTILSDIR = $(LIBDIR)\ExtUtils
455 LIB32 = $(LINK32) -lib
458 INCLUDES = -I.\include -I. -I..
459 DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
460 LOCDEFS = -DPERLDLL -DPERL_CORE
463 PERLEXE_RES = perl.res
466 !if "$(CFG)" == "RELEASE"
470 !if "$(CFG)" == "DEBUG"
474 CELIBS = -nodefaultlib \
475 winsock.lib $(CELIB) coredll.lib
477 !if $(CEVersion) > 200
478 CELIBS = $(CELIBS) corelibc.lib
480 CELIBS = $(CELIBS) msvcrt.lib
483 LIBBASEFILES = $(CRYPT_LIB) $(CELIBS)
485 LIBFILES = $(LIBBASEFILES) $(LIBC)
487 CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
488 $(PCHFLAGS) $(OPTIMIZE)
490 LINK_FLAGS = -nologo -machine:$(PROCESSOR_ARCHITECTURE)
492 !if "$(CFG)" == "DEBUG"
493 LINK_FLAGS = $(LINK_FLAGS) -debug:full -pdb:none
495 LINK_FLAGS = $(LINK_FLAGS) -release
501 CFLAGS_O = $(CFLAGS) $(BUILDOPT)
509 .SUFFIXES : .c $(o) .dll .lib .exe .rc .res
512 $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
518 $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
519 -implib:$(*B).lib -def:$(*B).def \
520 -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
525 # This must be relative to ../lib/CORE, else the ext dll build fails...
526 PERLIMPLIB_EXP = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib
527 PERLIMPLIB = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
528 PERLDLL = $(MACHINE)\perl$(PV).dll
530 DLLDIR = $(MACHINE)\dll
531 PERLEXE = $(MACHINE)\perl.exe
533 CONFIGPM = ..\xlib\$(CROSS_NAME)\Config.pm
534 MINIMOD = ..\lib\ExtUtils\Miniperl.pm
536 # Unicode data files generated by mktables
537 FIRSTUNIFILE = ..\lib\unicore\Decomposition.pl
538 UNIDATAFILES = ..\lib\unicore\Decomposition.pl \
539 ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
540 ..\lib\unicore\Heavy.pl ..\lib\unicore\mktables.lst \
541 ..\lib\unicore\UCD.pl ..\lib\unicore\Name.pm \
542 ..\lib\unicore\TestProp.pl
544 PERLEXE_MANIFEST= .\perlexe.manifest
545 PERLEXE_ICO = .\perlexe.ico
546 PERLEXE_RES = .\perlexe.res
549 # Directories of Unicode data files generated by mktables
550 UNIDATADIR1 = ..\lib\unicore\To
551 UNIDATADIR2 = ..\lib\unicore\lib
553 # Nominate a target which causes extensions to be re-built
554 # This used to be $(PERLEXE), but at worst it is the .dll that they depend
555 # on and really only the interface - i.e. the .def file used to export symbols
557 PERLDEP = perldll.def
561 CFGSH_TMPL = config.ce
562 CFGH_TMPL = config_H.ce
599 EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
601 !IF "$(PERL_MALLOC)" == "define"
602 EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
605 EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
612 !IF "$(CRYPT_SRC)" != ""
613 WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
616 DLL_SRC = $(DYNALOADER).c
654 .\include\sys\socket.h \
657 DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attributes B re \
658 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
661 STATIC_EXT = DynaLoader
663 DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
665 ERRNO_PM = $(LIBDIR)\Errno.pm
672 "INST_TOP=$(INST_TOP)" \
673 "INST_VER=$(INST_VER)" \
674 "INST_ARCH=$(INST_ARCH)" \
675 "archname=$(ARCHNAME)" \
677 "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
678 "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
680 "cf_email=$(EMAIL)" \
681 "d_crypt=$(D_CRYPT)" \
682 "d_mymalloc=$(PERL_MALLOC)" \
684 "incpath=$(CCINCDIR)" \
685 "libperl=$(PERLIMPLIB_EXP)" \
686 "libpth=$(LIBPATH)" \
689 "static_ext=$(STATIC_EXT)" \
690 "dynamic_ext=$(DYNAMIC_EXT)" \
691 "useithreads=$(USE_ITHREADS)" \
692 "usemultiplicity=$(USE_MULTI)" \
693 "useperlio=$(USE_PERLIO)" \
694 "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
695 "optimize=$(OPTIMIZE)"
697 ICWD = -I..\dist\Cwd -I..\dist\Cwd\lib
698 ICWD1 = -I..\..\dist\Cwd -I..\..\dist\Cwd\lib
701 # filenames given to xsubpp must have forward slashes (since it puts
702 # full pathnames in #line strings)
703 XSUBPP = $(HPERL) -I..\..\lib $(ICWD1) -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \
711 all: hostminiperl $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) MakePPPort Extensions
713 $(DYNALOADER)$(o) : $(DYNALOADER).c xconfig.h $(EXTDIR)\DynaLoader\dlutils.c
715 $(CONFIGPM) : $(HPERL) ..\config.sh config_h.PL ..\minimod.pl
716 cd .. && $(HPERL) -Ilib configpm --cross=$(CROSS_NAME) --no-glossary
718 $(XCOPY) ..\*.h $(XCOREDIR)\*.*
719 $(XCOPY) ..\*.inc $(XCOREDIR)\*.*
720 $(XCOPY) *.h $(XCOREDIR)\*.*
721 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
722 $(RCOPY) include $(XCOREDIR)\*.*
727 -$(HPERL) -I..\lib $(ICWD) -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)" "CONFIG_H=xconfig.h"
728 $(XCOPY) xconfig.h $(XCOREDIR)\config.h
730 ..\config.sh: config.ce config_sh.PL
731 $(HPERL) -I..\lib -I. config_sh.PL $(CFG_VARS) config.ce > ..\config.sh
733 $(MINIMOD) : ..\minimod.pl
734 cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm
736 $(DYNALOADER).c: $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
737 if not exist $(AUTODIR) mkdir $(AUTODIR)
739 $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) $(*B)_pm.PL
741 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
743 $(XSUBPP) dl_win32.xs > $(*B).c
746 $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
747 $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
749 MakePPPort: $(MINIPERL) $(CONFIGPM)
750 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ..\mkppport
753 -if exist $(HPERL) $(HPERL) -I..\lib ..\mkppport --clean
755 #----------------------------------------------------------------------------------
757 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
758 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
760 !if "$(MACHINE)" == "wince-mips-palm-wce211"
761 NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap
764 Extensions: ..\make_ext.pl $(PERLDEP) $(CONFIGPM)
765 $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --all \
766 !POSIX $(NOT_COMPILE_EXT)
769 -if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --all --target=clean
771 #----------------------------------------------------------------------------------
773 $(PERLEXE_RES): perlexe.rc perl.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
774 rc $(RCDEFS) perlexe.rc
777 -rm -f $(MACHINE)/dll/*
778 -rm -f $(MACHINE)/*.obj
779 -rm -f $(MACHINE)/*.exe
780 -rm -f $(MACHINE)/*.dll
781 -rm -f $(MACHINE)/*.lib
782 -rm -f ../config.sh ../lib/Config.pm
783 -rm -f config.h xconfig.h perl.res
784 -rm -f ../t/test_state
792 $(DLLDIR)\globals.obj \
796 $(DLLDIR)\locale.obj \
797 $(DLLDIR)\keywords.obj \
798 $(DLLDIR)\mathoms.obj \
800 $(DLLDIR)\numeric.obj \
804 $(DLLDIR)\perlapi.obj \
805 $(DLLDIR)\perlio.obj \
806 $(DLLDIR)\perly.obj \
808 $(DLLDIR)\pp_ctl.obj \
809 $(DLLDIR)\pp_hot.obj \
810 $(DLLDIR)\pp_pack.obj \
811 $(DLLDIR)\pp_sort.obj \
812 $(DLLDIR)\pp_sys.obj \
813 $(DLLDIR)\reentr.obj \
814 $(DLLDIR)\regcomp.obj \
815 $(DLLDIR)\regexec.obj \
817 $(DLLDIR)\scope.obj \
819 $(DLLDIR)\taint.obj \
821 $(DLLDIR)\universal.obj \
824 $(DLLDIR)\win32thread.obj \
825 $(DLLDIR)\wince.obj \
826 $(DLLDIR)\win32io.obj \
827 $(DLLDIR)\wincesck.obj \
828 $(DLLDIR)\perllib.obj \
829 $(DLLDIR)\DynaLoader.obj
830 !IF "$(PERL_MALLOC)" == "define"
831 XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj
833 !IF "$(CRYPT_SRC)" != ""
834 XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj
837 {$(SRCDIR)}.c{$(DLLDIR)}.obj:
838 $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
840 # compiler explains that it will optimize toke.c if we'll give it an
841 # option -QMOb<num> with num>=4178
843 $(CC) -c $(CFLAGS_O) -QMOb9000 -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ ..\toke.c
845 {$(SRCDIR)/win32}.c{$(DLLDIR)}.obj:
846 $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
848 # -DPERL_IMPLICIT_SYS needs C++ for perllib.c
849 # This is the only file that depends on perlhost.h, vmem.h, and vdir.h
850 !IF "$(USE_IMP_SYS)" == "define"
851 $(DLLDIR)\perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h
852 $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
853 rem (frustrated) mv perllib.obj $(DLLDIR)
856 perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl
857 $(HPERL) -I..\lib -MCross create_perllibst_h.pl
858 $(HPERL) -I..\lib -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
859 CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def
861 $(PERLDLL) : $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
862 $(LINK32) -dll -def:perldll.def -out:$@ \
863 $(SUBSYS) $(LDLIBPATH) \
864 $(LINK_FLAGS) $(LIBFILES) \
865 $(XDLLOBJS) $(PERLDLL_RES)
868 if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
870 $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
871 $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
872 $(EXTDIR)\DynaLoader\DynaLoader.c
875 $(MACHINE)\perlmaince.obj
877 $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
878 $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR)
879 $(LINK32) $(SUBSYS) $(LDLIBPATH) \
880 -entry:wWinMainCRTStartup \
881 -out:$(MACHINE)\perl.exe \
882 -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
883 $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
885 $(MACHINE)\perlmaince.obj : perlmaince.c
886 $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmaince.c
889 socketdll: $(SOCKET_DLL)
890 dumperdll: $(DUMPER_DLL)
892 dlls: socketdll iodll dumperdll
893 -xmkdir -p $(MACHINE)/lib/auto/IO
894 cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
895 cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
896 -xmkdir $(MACHINE)/lib/auto/Socket
897 cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
898 cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
899 -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
900 cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
901 cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
904 $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
905 cp perl.txt $(MACHINE)
906 cp registry.bat $(MACHINE)
907 cp ../lib/Config.pm $(MACHINE)/lib
909 rm -f perl-$(MACHINE).tar.gz
910 sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib"
911 gzip -9 perl-$(MACHINE).tar
912 mv perl-$(MACHINE).tar.gz h:/freenet/new
916 -cemkdir "$(INSTALL_ROOT)"
917 -cemkdir "$(INSTALL_ROOT)\bin"
918 -cemkdir "$(INSTALL_ROOT)\lib"
919 $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin"
920 $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
921 $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib"
923 $(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables
924 cd ..\lib\unicore && \
925 $(HPERL) -I.. -I..\..\lib $(ICWD1) -MCross=$(CROSS_NAME) mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
928 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
931 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
932 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
935 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
937 hostminiperl: ..\miniperl.exe
940 set PATH=$(CCHOME)\bin;$(PATH)
941 $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
944 perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)"
945 perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)"
946 perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#"
947 perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#"
948 perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
949 quotemeta($$Config{installprefixexp}) . \
950 qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#"