1 # perl makefile for wince
3 # Time-stamp: <26/10/01 15:10:06 keuchel@keuchelnt>
9 # INSTALL_ROOT specifies a path where this perl will be installed on CE device
10 INSTALL_ROOT=/netzwerk/sprache/perl
11 INST_TOP=$(INSTALL_ROOT)
14 # PERLCEDIR shoud be set to current directory
15 PERLCEDIR = H:\src\wince\perl\wince
17 # WCEROOT is a directory where Windows CE Tools was installed
18 WCEROOT = D:\Windows CE Tools
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
23 HPERL = $(MAKEDIR)\..\miniperl.exe
25 CEPATH = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN
26 CELIBDLLDIR = h:\src\wince\celib-palm-3.0
27 CECONSOLEDIR = h:\src\wince\w32console
29 # specify following options to build perl on local machine, by MSVC
30 MSVCDIR = D:\MSVStudio\VC98
32 CCINCDIR = $(CCHOME)\include
33 CCLIBDIR = $(CCHOME)\lib
38 XCOPY = xcopy $(YES) /f /r /i /d
39 RCOPY = xcopy $(YES) /f /r /i /e /d
41 # cecopy program. Make shure it is in your path, as well as cemkdir, cedel
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.
53 # set this if you wish to use perl's malloc
54 # This will make perl run few times faster
55 # WARNING: Turning this on/off WILL break binary compatibility with extensions
56 # you may have compiled with/without it.
62 # keep this untouched!
69 !if "$(MACHINE)" == ""
70 MACHINE=wince-arm-hpc-wce300
71 #MACHINE=wince-arm-hpc-wce211
72 #MACHINE=wince-sh3-hpc-wce211
73 #MACHINE=wince-mips-hpc-wce211
74 #MACHINE=wince-sh3-hpc-wce200
75 #MACHINE=wince-mips-hpc-wce200
76 #MACHINE=wince-arm-pocket-wce300
77 #MACHINE=wince-mips-pocket-wce300
78 #MACHINE=wince-sh3-pocket-wce300
79 #MACHINE=wince-x86em-pocket-wce300
80 #MACHINE=wince-mips-palm-wce211
81 #MACHINE=wince-sh3-palm-wce211
82 #MACHINE=wince-x86em-palm-wce211
85 # set this to your email address
89 ##################### CHANGE THESE ONLY IF YOU MUST #####################
91 ######################################################################
94 !if "$(MACHINE)" == "wince-sh3-hpc-wce211"
101 PLATFORM = MS HPC Pro
102 MCFLAGS = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
103 -I $(CELIBDLLDIR)\inc
104 SUBSYS = -subsystem:windowsce,2.11
105 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
106 LDLIBPATH = -libpath:$(CELIBPATH)
107 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
108 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
111 !if "$(MACHINE)" == "wince-mips-hpc-wce211"
118 PLATFORM = MS HPC Pro
119 MCFLAGS = -D _MT -D _DLL \
120 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
122 -I $(CELIBDLLDIR)\inc
123 SUBSYS = -subsystem:windowsce,2.11
124 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
125 LDLIBPATH = -libpath:$(CELIBPATH)
126 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
127 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
130 !if "$(MACHINE)" == "wince-mips-hpc-wce200"
138 # MUST USE -MD to get the right FPE stuff...
139 MCFLAGS = -D _MT -D _DLL -MD \
140 -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
142 -I $(CELIBDLLDIR)\inc
143 SUBSYS = -subsystem:windowsce,2.00
144 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
145 LDLIBPATH = -libpath:$(CELIBPATH)
146 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
147 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
150 !if "$(MACHINE)" == "wince-sh3-hpc-wce200"
158 # MUST USE -MD to get the right FPE stuff...
159 MCFLAGS = -D _MT -D _DLL -MD \
160 -D SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \
162 -I $(CELIBDLLDIR)\inc
163 SUBSYS = -subsystem:windowsce,2.00
164 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
165 LDLIBPATH = -libpath:$(CELIBPATH)
166 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
167 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
170 !if "$(MACHINE)" == "wince-arm-hpc-wce211"
177 PLATFORM = MS HPC Pro
178 MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
179 -DPROCESSOR_ARM -DPALM_SIZE \
180 -I $(CELIBDLLDIR)\inc
181 SUBSYS = -subsystem:windowsce,2.11
182 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
183 LDLIBPATH = -libpath:$(CELIBPATH)
184 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
185 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
188 !if "$(MACHINE)" == "wince-arm-hpc-wce300"
196 MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \
197 -DPROCESSOR_ARM -DPALM_SIZE \
198 -I $(CELIBDLLDIR)\inc
199 SUBSYS = -subsystem:windowsce,3.00
200 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
201 LDLIBPATH = -libpath:$(CELIBPATH)
202 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
203 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
206 !if "$(MACHINE)" == "wince-mips-palm-wce211"
213 PLATFORM = MS Palm Size PC
214 MCFLAGS = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \
215 -I $(CELIBDLLDIR)\inc
216 SUBSYS = -subsystem:windowsce,2.11
217 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
218 LDLIBPATH = -libpath:$(CELIBPATH)
219 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
220 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
223 !if "$(MACHINE)" == "wince-sh3-palm-wce211"
230 PLATFORM = MS Palm Size PC
231 MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \
232 -I $(CELIBDLLDIR)\inc
233 SUBSYS = -subsystem:windowsce,2.11
234 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
235 LDLIBPATH = -libpath:$(CELIBPATH)
236 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
237 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
240 !if "$(MACHINE)" == "wince-x86em-palm-wce211"
247 PLATFORM = MS Palm Size PC
248 MCFLAGS = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \
249 -D_WIN32_WCE_EMULATION -DPALM_SIZE \
250 -I $(CELIBDLLDIR)\inc
252 SUBSYS = -subsystem:windows
253 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
254 LDLIBPATH = -libpath:$(CELIBPATH)
255 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
256 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
259 !if "$(MACHINE)" == "wince-x86em-pocket-wce300"
266 PLATFORM = MS Pocket PC
267 MCFLAGS = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \
268 -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \
269 -I $(CELIBDLLDIR)\inc
271 SUBSYS = -subsystem:windows
272 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
273 LDLIBPATH = -libpath:$(CELIBPATH)
274 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
275 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
278 !if "$(MACHINE)" == "wince-mips-pocket-wce300"
285 PLATFORM = MS Pocket PC
286 MCFLAGS = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \
287 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
288 -I $(CELIBDLLDIR)\inc
290 SUBSYS = -subsystem:windowsce,3.00
291 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
292 LDLIBPATH = -libpath:$(CELIBPATH)
293 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
294 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
297 !if "$(MACHINE)" == "wince-sh3-pocket-wce300"
304 PLATFORM = MS Pocket PC
305 MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \
306 -DPALM_SIZE -DPOCKET_SIZE \
307 -I $(CELIBDLLDIR)\inc
309 SUBSYS = -subsystem:windowsce,3.00
310 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
311 LDLIBPATH = -libpath:$(CELIBPATH)
312 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
313 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
316 !if "$(MACHINE)" == "wince-arm-pocket-wce300"
323 PLATFORM = MS Pocket PC
324 MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \
325 -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \
326 -I $(CELIBDLLDIR)\inc
328 SUBSYS = -subsystem:windowsce,3.00
329 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release
330 LDLIBPATH = -libpath:$(CELIBPATH)
331 STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
332 $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
335 ######################################################################
338 CEDEFS = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \
341 #CEDEFS = $(CEDEFS) -DDEBUGGING_OPS
345 !if "$(CFG)" == "DEBUG"
346 CECFLAGS = $(CECFLAGS) -Zi -Od
349 !if "$(CFG)" == "RELEASE"
350 # -O2 and -Ot give internal compiler error in perl.c and lexer.
351 # Also the dll cannot be loaded by perl.exe...
352 !if "$(CPU)" == "SH3"
354 CECFLAGS = $(CECFLAGS) -O2 -Ot
359 RCDEFS = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
360 /d _WIN32_WCE=$(CEVersion)
362 PATH=$(CEPATH);$(PATH)
364 INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include
365 LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH)
367 ######################################################################
370 !message Compiling for $(MACHINE)
372 !message INCLUDE=$(INCLUDE)
373 !message PATH=$(CEPATH)
376 ######################################################################
378 # Additional compiler flags can be specified here.
381 BUILDOPT = $(BUILDOPT) $(CECFLAGS)
384 !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
388 CRYPT_FLAG = -DHAVE_DES_FCRYPT
391 !IF "$(PERL_MALLOC)" == ""
395 !IF "$(USE_MULTI)" == ""
399 !IF "$(USE_ITHREADS)" == ""
403 !IF "$(USE_IMP_SYS)" == ""
407 !IF "$(USE_PERLIO)" == ""
411 !IF "$(USE_PERLCRT)" == ""
415 !IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef"
419 !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
423 !IF "$(USE_MULTI)" != "undef"
424 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
427 !IF "$(USE_IMP_SYS)" != "undef"
428 BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS
431 !IF "$(USE_PERLIO)" == "define"
432 BUILDOPT = $(BUILDOPT) -DUSE_PERLIO
435 !IF "$(CROSS_NAME)" == ""
436 CROSS_NAME = $(MACHINE)
439 # new option - automatically defined in perl.h...
440 #BUILDOPT = $(BUILDOPT) -DUSE_ENVIRON_ARRAY
442 PROCESSOR_ARCHITECTURE = $(TARGETCPU)
443 ARCHNAME = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE)
444 ARCHDIR = ..\lib\$(ARCHNAME)
445 COREDIR = ..\lib\CORE
446 XCOREDIR = ..\xlib\$(CROSS_NAME)\CORE
447 AUTODIR = ..\lib\auto
451 EXTUTILSDIR = $(LIBDIR)\ExtUtils
454 LIB32 = $(LINK32) -lib
457 INCLUDES = -I.\include -I. -I..
458 DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
459 LOCDEFS = -DPERLDLL -DPERL_CORE
462 PERLEXE_RES = perl.res
465 !if "$(CFG)" == "RELEASE"
469 !if "$(CFG)" == "DEBUG"
473 CELIBS = -nodefaultlib \
474 winsock.lib $(CELIB) coredll.lib
476 !if $(CEVersion) > 200
477 CELIBS = $(CELIBS) corelibc.lib
479 CELIBS = $(CELIBS) msvcrt.lib
482 LIBBASEFILES = $(CRYPT_LIB) $(CELIBS)
484 LIBFILES = $(LIBBASEFILES) $(LIBC)
486 CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
487 $(PCHFLAGS) $(OPTIMIZE)
489 LINK_FLAGS = -nologo -machine:$(PROCESSOR_ARCHITECTURE)
491 !if "$(CFG)" == "DEBUG"
492 LINK_FLAGS = $(LINK_FLAGS) -debug:full -pdb:none
494 LINK_FLAGS = $(LINK_FLAGS) -release
500 CFLAGS_O = $(CFLAGS) $(BUILDOPT)
508 .SUFFIXES : .c $(o) .dll .lib .exe .rc .res
511 $(CC) -c -I$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $<
517 $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \
518 -implib:$(*B).lib -def:$(*B).def \
519 -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL)
524 # This must be relative to ../lib/CORE, else the ext dll build fails...
525 PERLIMPLIB_EXP = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib
526 PERLIMPLIB = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
527 PERLDLL = $(MACHINE)\perl$(PV).dll
529 DLLDIR = $(MACHINE)\dll
530 PERLEXE = $(MACHINE)\perl.exe
532 CONFIGPM = ..\xlib\$(CROSS_NAME)\Config.pm
533 MINIMOD = ..\lib\ExtUtils\Miniperl.pm
535 # Nominate a target which causes extensions to be re-built
536 # This used to be $(PERLEXE), but at worst it is the .dll that they depend
537 # on and really only the interface - i.e. the .def file used to export symbols
539 PERLDEP = perldll.def
543 CFGSH_TMPL = config.ce
544 CFGH_TMPL = config_H.ce
547 # filenames given to xsubpp must have forward slashes (since it puts
548 # full pathnames in #line strings)
549 XSUBPP = $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \
586 EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c
588 !IF "$(PERL_MALLOC)" == "define"
589 EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c
592 EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c
599 !IF "$(CRYPT_SRC)" != ""
600 WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
603 DLL_SRC = $(DYNALOADER).c
642 .\include\sys\socket.h \
645 CORE_H = $(CORE_NOCFG_H) .\config.h
647 MICROCORE_OBJ = $(MICROCORE_SRC:.c=.obj)
648 CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:.c=.obj)
649 WIN32_OBJ = $(WIN32_SRC:.c=.obj)
650 #WIN32_OBJ = $(WIN32_OBJ:.\=.\$(DLLDIR)\)
651 MINICORE_OBJ = $(MICROCORE_OBJ:..\=.\$(DLLDIR)\) \
652 $(MINIDIR)\miniperlmain$(o) \
653 $(MINIDIR)\perlio$(o)
654 MINIWIN32_OBJ = $(WIN32_OBJ:.\=.\$(DLLDIR)\)
655 MINI_OBJ = $(MINICORE_OBJ) $(MINIWIN32_OBJ)
656 DLL_OBJ = $(DLL_SRC:.c=.obj)
657 X2P_OBJ = $(X2P_SRC:.c=.obj)
659 PERLDLL_OBJ = $(CORE_OBJ)
660 PERLEXE_OBJ = perlmain$(o)
662 PERLDLL_OBJ = $(PERLDLL_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
663 #PERLEXE_OBJ = $(PERLEXE_OBJ) $(WIN32_OBJ) $(DLL_OBJ)
665 !IF "$(USE_SETARGV)" != ""
666 SETARGV_OBJ = setargv$(o)
669 DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \
670 Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \
673 STATIC_EXT = DynaLoader
675 DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader
677 ERRNO_PM = $(LIBDIR)\Errno.pm
683 POD2HTML = $(PODDIR)\pod2html
684 POD2MAN = $(PODDIR)\pod2man
685 POD2LATEX = $(PODDIR)\pod2latex
686 POD2TEXT = $(PODDIR)\pod2text
689 "INST_DRV=$(INST_DRV)" \
690 "INST_TOP=$(INST_TOP)" \
691 "INST_VER=$(INST_VER)" \
692 "INST_ARCH=$(INST_ARCH)" \
693 "archname=$(ARCHNAME)" \
695 "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
696 "cf_by=Rainer Keuchel" \
697 "cf_email=$(EMAIL)" \
698 "d_crypt=$(D_CRYPT)" \
699 "d_mymalloc=$(PERL_MALLOC)" \
701 "incpath=$(CCINCDIR)" \
702 "libperl=$(PERLIMPLIB_EXP)" \
703 "libpth=$(LIBPATH)" \
706 "static_ext=$(STATIC_EXT)" \
707 "dynamic_ext=$(DYNAMIC_EXT)" \
708 "useithreads=$(USE_ITHREADS)" \
709 "usemultiplicity=$(USE_MULTI)" \
710 "useperlio=$(USE_PERLIO)" \
711 "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
712 "optimize=$(OPTIMIZE)"
718 all: hostminiperl $(MINIMOD) $(CONFIGPM) $(PERLEXE) Extensions
720 $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
722 $(CONFIGPM): .\config.h ..\config.sh ..\minimod.pl
723 cd .. && $(HPERL) configpm --cross=$(CROSS_NAME) --no-glossary
725 $(XCOPY) ..\*.h $(XCOREDIR)\*.*
726 $(XCOPY) *.h $(XCOREDIR)\*.*
727 $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
728 $(RCOPY) include $(XCOREDIR)\*.*
729 -$(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)"
730 if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
734 copy config_H.ce config.h
736 ..\config.sh: config.ce config_sh.PL
737 $(HPERL) -I..\lib -I..\win32 config_sh.PL $(CFG_VARS) config.ce > ..\config.sh
739 $(MINIMOD) : ..\minimod.pl
740 cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm
742 perlmain.c : runperl.c
743 $(COPY) runperl.c perlmain.c
745 $(DYNALOADER).c: $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM)
746 if not exist $(AUTODIR) mkdir $(AUTODIR)
748 $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) $(*B)_pm.PL
749 $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) XSLoader_pm.PL
751 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL)
752 $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL)
754 $(XSUBPP) dl_win32.xs > $(*B).c
757 $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs
758 $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs
760 #----------------------------------------------------------------------------------
761 Extensions: ..\win32\buildext.pl $(PERLDEP) $(CONFIGPM)
762 $(HPERL) -I..\lib -I..\win32 -MCross=$(CROSS_NAME) ..\win32\buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) \
763 !POSIX !Time/HiRes !XS/Typemap
766 -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
768 #----------------------------------------------------------------------------------
770 $(PERLEXE_RES): perl.rc perl.ico
774 -rm -f $(MACHINE)/dll/*
775 -rm -f $(MACHINE)/*.obj
776 -rm -f $(MACHINE)/*.exe
777 -rm -f $(MACHINE)/*.dll
778 -rm -f $(MACHINE)/*.lib
779 -rm -f ../config.sh ../lib/Config.pm
780 -rm -f config.h perl.res
788 $(DLLDIR)\globals.obj \
791 $(DLLDIR)\locale.obj \
793 $(DLLDIR)\numeric.obj \
797 $(DLLDIR)\perlapi.obj \
798 $(DLLDIR)\perlio.obj \
799 $(DLLDIR)\perly.obj \
801 $(DLLDIR)\pp_ctl.obj \
802 $(DLLDIR)\pp_hot.obj \
803 $(DLLDIR)\pp_pack.obj \
804 $(DLLDIR)\pp_sort.obj \
805 $(DLLDIR)\pp_sys.obj \
806 $(DLLDIR)\reentr.obj \
807 $(DLLDIR)\regcomp.obj \
808 $(DLLDIR)\regexec.obj \
810 $(DLLDIR)\scope.obj \
812 $(DLLDIR)\taint.obj \
814 $(DLLDIR)\universal.obj \
817 $(DLLDIR)\win32thread.obj \
818 $(DLLDIR)\wince.obj \
819 $(DLLDIR)\win32io.obj \
820 $(DLLDIR)\wincesck.obj \
821 $(DLLDIR)\xsutils.obj \
822 $(DLLDIR)\perllib.obj \
823 $(DLLDIR)\DynaLoader.obj
824 !IF "$(PERL_MALLOC)" == "define"
825 XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj
828 {$(SRCDIR)}.c{$(DLLDIR)}.obj:
829 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
831 {$(SRCDIR)/wince}.c{$(DLLDIR)}.obj:
832 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
834 perldll.def : $(HPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
835 $(HPERL) -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
836 CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) > perldll.def
838 $(PERLDLL) : $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
839 $(LINK32) -dll -def:perldll.def -out:$@ \
840 $(SUBSYS) $(LDLIBPATH) \
841 $(LINK_FLAGS) $(LIBFILES) \
842 $(XDLLOBJS) $(PERLDLL_RES)
845 if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
847 $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
848 $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
849 $(EXTDIR)\DynaLoader\DynaLoader.c
852 $(MACHINE)\perlmain.obj
854 $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
855 $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR)
856 $(LINK32) $(SUBSYS) $(LDLIBPATH) \
857 -entry:wWinMainCRTStartup \
858 -out:$(MACHINE)\perl.exe \
859 -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \
860 $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES)
862 $(MACHINE)\perlmain.obj : perlmain.c
863 $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmain.c
866 socketdll: $(SOCKET_DLL)
867 dumperdll: $(DUMPER_DLL)
869 dlls: socketdll iodll dumperdll
870 -xmkdir -p $(MACHINE)/lib/auto/IO
871 cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
872 cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
873 -xmkdir $(MACHINE)/lib/auto/Socket
874 cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
875 cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
876 -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
877 cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
878 cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
881 $(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
882 cp perl.txt $(MACHINE)
883 cp registry.bat $(MACHINE)
884 cp ../lib/Config.pm $(MACHINE)/lib
886 rm -f perl-$(MACHINE).tar.gz
887 sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib"
888 gzip -9 perl-$(MACHINE).tar
889 mv perl-$(MACHINE).tar.gz h:/freenet/new
892 !if "$(MACHINE)" == "wince-arm-hpc-wce300"
894 $(CECOPY) pc:$(MACHINE)/perl.exe ce:$(INSTALL_ROOT)/bin
895 $(CECOPY) pc:$(MACHINE)/perl$(PV).dll ce:$(INSTALL_ROOT)/bin
897 $(CECOPY) pc:../lib/auto/IO/io.dll ce:$(INSTALL_ROOT)/lib/auto/IO/io.dll
900 -cemkdir "$(INSTALL_ROOT)"
901 -cemkdir "$(INSTALL_ROOT)\bin"
902 -cemkdir "$(INSTALL_ROOT)\lib"
903 $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin"
904 $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin"
905 $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib"
909 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
912 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
913 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
916 $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
921 hostminiperl: ..\miniperl.exe
925 set PATH=$(CCHOME)\bin;$(PATH)
926 $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe
930 perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)"
931 perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)"
932 perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#"
933 perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#"
934 perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
935 quotemeta($$Config{installprefixexp}) . \
936 qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#"