# # perl makefile for wince # During the cross-compilation, it first uses Makefile file to build # miniperl on HOST and then build required platform # SRCDIR = .. PV = 59 INST_VER = 5.15.5 # INSTALL_ROOT specifies a path where this perl will be installed on CE device INSTALL_ROOT=/netzwerk/sprache/perl INST_TOP=$(INSTALL_ROOT) INST_VER= # PERLCEDIR shoud be set to current directory PERLCEDIR = H:\src\wince\perl\win32 # WCEROOT is a directory where Windows CE Tools was installed WCEROOT = D:\Windows CE Tools # HPERL stands for host perl, which is perl on local desktop machine # which is usually ..\miniperl.exe #HPERL = N:\Programme\perl\bin\perl.exe HPERL = $(MAKEDIR)\..\miniperl.exe CEPATH = D:\Programme\Microsoft eMbedded Tools\EVC\WCE211\BIN CELIBDLLDIR = h:\src\wince\celib-palm-3.0 CECONSOLEDIR = h:\src\wince\w32console # specify following options to build perl on local machine, by MSVC MSVCDIR = D:\MSVStudio\VC98 CCHOME = $(MSVCDIR) CCINCDIR = $(CCHOME)\include CCLIBDIR = $(CCHOME)\lib # Only for WIN2000 #YES = /y COPY = copy $(YES) XCOPY = xcopy $(YES) /f /r /i /d RCOPY = xcopy $(YES) /f /r /i /e /d # cecopy program. Make shure it is in your path, as well as cemkdir, cedel CECOPY = cecopy # # Comment out next assign to disable perl's I/O subsystem and use compiler's # stdio for IO - depending on your compiler vendor and run time library you may # then get a number of fails from make test i.e. bugs - complain to them not us ;-). # You will also be unable to take full advantage of perl5.8's support for multiple # encodings and may see lower IO performance. You have been warned. USE_PERLIO = define # # set this if you wish to use perl's malloc # This will make perl run few times faster # WARNING: Turning this on/off WILL break binary compatibility with extensions # you may have compiled with/without it. # PERL_MALLOC = define NOOP = @echo # keep this untouched! NULL = #CFG=DEBUG CFG=RELEASE !if "$(MACHINE)" == "" MACHINE=wince-arm-hpc-wce300 #MACHINE=wince-arm-hpc-wce211 #MACHINE=wince-sh3-hpc-wce211 #MACHINE=wince-mips-hpc-wce211 #MACHINE=wince-sh3-hpc-wce200 #MACHINE=wince-mips-hpc-wce200 #MACHINE=wince-arm-pocket-wce300 #MACHINE=wince-mips-pocket-wce300 #MACHINE=wince-sh3-pocket-wce300 #MACHINE=wince-x86em-pocket-wce300 #MACHINE=wince-mips-palm-wce211 #MACHINE=wince-sh3-palm-wce211 #MACHINE=wince-x86em-palm-wce211 !endif # set this to your email address # #EMAIL = ##################### CHANGE THESE ONLY IF YOU MUST ##################### ###################################################################### # machines !if "$(MACHINE)" == "wince-sh3-hpc-wce211" CC = shcl.exe ARCH = SH3 CPU = SH3 TARGETCPU = SH3 CEVersion = 211 OSVERSION = WCE211 PLATFORM = MS HPC Pro MCFLAGS = -MDd -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,2.11 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-mips-hpc-wce211" CC = clmips.exe ARCH = MIPS CPU = MIPS TARGETCPU = MIPS CEVersion = 211 OSVERSION = WCE211 PLATFORM = MS HPC Pro MCFLAGS = -D _MT -D _DLL \ -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \ -D PALM_SIZE \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,2.11 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-mips-hpc-wce200" CC = clmips.exe ARCH = MIPS CPU = MIPS TARGETCPU = MIPS CEVersion = 200 OSVERSION = WCE200 PLATFORM = MS HPC # MUST USE -MD to get the right FPE stuff... MCFLAGS = -D _MT -D _DLL -MD \ -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \ -D PALM_SIZE \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,2.00 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-sh3-hpc-wce200" CC = shcl.exe ARCH = SH3 CPU = SH3 TARGETCPU = SH3 CEVersion = 200 OSVERSION = WCE200 PLATFORM = MS HPC # MUST USE -MD to get the right FPE stuff... MCFLAGS = -D _MT -D _DLL -MD \ -D SH3 -D sh3 -D _SH3_ -D _sh3_ -D SHx -DPROCESSOR_SH3 \ -D PALM_SIZE \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,2.00 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-arm-hpc-wce211" CC = clarm.exe ARCH = ARM CPU = ARM TARGETCPU = ARM CEVersion = 211 OSVERSION = WCE211 PLATFORM = MS HPC Pro MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \ -DPROCESSOR_ARM -DPALM_SIZE \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,2.11 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-arm-hpc-wce300" CC = clarm.exe ARCH = ARM CPU = ARM TARGETCPU = ARM CEVersion = 300 OSVERSION = WCE300 #PLATFORM = HPC2000 MCFLAGS = -D _MT -D _DLL -D ARM -D arm -D _arm_ -D _ARM_ \ -DPROCESSOR_ARM -DPALM_SIZE \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,3.00 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-mips-palm-wce211" CC = clmips.exe ARCH = MIPS CPU = MIPS TARGETCPU = MIPS CEVersion = 211 OSVERSION = WCE211 PLATFORM = MS Palm Size PC MCFLAGS = -DMIPS -D_MIPS_ -DPROCESSOR_MIPS -D PALM_SIZE -D _DLL -D _MT \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,2.11 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-sh3-palm-wce211" CC = shcl.exe ARCH = SH3 CPU = SH3 TARGETCPU = SH3 CEVersion = 211 OSVERSION = WCE211 PLATFORM = MS Palm Size PC MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 -DPALM_SIZE \ -I $(CELIBDLLDIR)\inc SUBSYS = -subsystem:windowsce,2.11 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-x86em-palm-wce211" CC = cl.exe ARCH = X86EM CPU = X86 TARGETCPU = X86 CEVersion = 211 OSVERSION = WCE211 PLATFORM = MS Palm Size PC MCFLAGS = -MDd -DX86 -D_X86_ -DPROCESSOR_X86 \ -D_WIN32_WCE_EMULATION -DPALM_SIZE \ -I $(CELIBDLLDIR)\inc MACH = -machine:x86 SUBSYS = -subsystem:windows CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-x86em-pocket-wce300" CC = cl.exe ARCH = X86EM CPU = X86 TARGETCPU = X86 CEVersion = 300 OSVERSION = WCE300 PLATFORM = MS Pocket PC MCFLAGS = -DX86 -D_X86_ -DPROCESSOR_X86 -D _MT -D _DLL \ -D_WIN32_WCE_EMULATION -DPALM_SIZE -DPOCKET_SIZE \ -I $(CELIBDLLDIR)\inc MACH = -machine:x86 SUBSYS = -subsystem:windows CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-mips-pocket-wce300" CC = clmips.exe ARCH = MIPS CPU = MIPS TARGETCPU = MIPS CEVersion = 300 OSVERSION = WCE300 PLATFORM = MS Pocket PC MCFLAGS = -D MIPS -D mips -D _MIPS_ -D _mips_ -DPROCESSOR_MIPS \ -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \ -I $(CELIBDLLDIR)\inc MACH = -machine:mips SUBSYS = -subsystem:windowsce,3.00 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release #STDLIBPATH = $(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(CPU) LDLIBPATH = -libpath:$(CELIBPATH) #"-libpath:$(STDLIBPATH)" STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-sh3-pocket-wce300" CC = shcl.exe ARCH = SH3 CPU = SH3 TARGETCPU = SH3 CEVersion = 300 OSVERSION = WCE300 PLATFORM = MS Pocket PC MCFLAGS = -D _MT -D _DLL -DSH3 -D_SH3_ -DSHx -DPROCESSOR_SH3 \ -DPALM_SIZE -DPOCKET_SIZE \ -I $(CELIBDLLDIR)\inc MACH = -machine:sh3 SUBSYS = -subsystem:windowsce,3.00 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif !if "$(MACHINE)" == "wince-arm-pocket-wce300" CC = clarm.exe ARCH = ARM CPU = ARM TARGETCPU = ARM CEVersion = 300 OSVERSION = WCE300 PLATFORM = MS Pocket PC MCFLAGS = -D ARM -D arm -D _ARM_ -D _arm_ -DPROCESSOR_ARM \ -D _MT -D _DLL -DPALM_SIZE -DPOCKET_SIZE \ -I $(CELIBDLLDIR)\inc MACH = -machine:arm SUBSYS = -subsystem:windowsce,3.00 CELIBPATH = $(CELIBDLLDIR)\$(MACHINE)-release LDLIBPATH = -libpath:$(CELIBPATH) STARTOBJS = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \ $(CECONSOLEDIR)/$(MACHINE)/w32console.obj !endif ###################################################################### # common section CEDEFS = -D_WINDOWS -D_WIN32_WCE=$(CEVersion) -DUNDER_CE=$(CEVersion) \ $(MCFLAGS) -D PERL CECFLAGS = $(CEDEFS) !if "$(CFG)" == "DEBUG" CECFLAGS = $(CECFLAGS) -Zi -Od !endif !if "$(CFG)" == "RELEASE" # -O2 and -Ot give internal compiler error in perl.c and lexer. # Also the dll cannot be loaded by perl.exe... !if "$(CPU)" == "SH3" !else CECFLAGS = $(CECFLAGS) -O2 -Ot !endif !endif RCDEFS = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \ /d _WIN32_WCE=$(CEVersion) PATH=$(CEPATH);$(PATH) INCLUDE=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\include LIB=$(WCEROOT)\$(OSVERSION)\$(PLATFORM)\lib\$(ARCH) ###################################################################### !message !message Compiling for $(MACHINE) !message LIB=$(LIB) !message INCLUDE=$(INCLUDE) !message PATH=$(CEPATH) !message ###################################################################### # # Additional compiler flags can be specified here. # BUILDOPT = $(BUILDOPT) $(CECFLAGS) -DUSE_CROSS_COMPILE !IF "$(CRYPT_SRC)$(CRYPT_LIB)" == "" D_CRYPT = undef !ELSE D_CRYPT = define CRYPT_FLAG = -DHAVE_DES_FCRYPT !ENDIF !IF "$(PERL_MALLOC)" == "" PERL_MALLOC = undef !ENDIF !IF "$(USE_MULTI)" == "" USE_MULTI = undef !ENDIF !IF "$(USE_ITHREADS)" == "" USE_ITHREADS = undef !ENDIF !IF "$(USE_IMP_SYS)" == "" USE_IMP_SYS = undef !ENDIF !IF "$(USE_PERLIO)" == "" USE_PERLIO = undef !ENDIF !IF "$(USE_PERLCRT)" == "" USE_PERLCRT = undef !ENDIF !IF "$(USE_IMP_SYS)$(USE_MULTI)" == "defineundef" USE_MULTI = define !ENDIF !IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef" USE_MULTI = define !ENDIF !IF "$(USE_MULTI)" != "undef" BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT !ENDIF !IF "$(USE_IMP_SYS)" != "undef" BUILDOPT = $(BUILDOPT) -DPERL_IMPLICIT_SYS !ENDIF !IF "$(USE_PERLIO)" == "define" BUILDOPT = $(BUILDOPT) -DUSE_PERLIO !ENDIF !IF "$(CROSS_NAME)" == "" CROSS_NAME = $(MACHINE) !ENDIF # new option - automatically defined in perl.h... #BUILDOPT = $(BUILDOPT) -DUSE_ENVIRON_ARRAY PROCESSOR_ARCHITECTURE = $(TARGETCPU) ARCHNAME = $(PLATFORM)-$(OSVERSION)-$(PROCESSOR_ARCHITECTURE) ARCHDIR = ..\lib\$(ARCHNAME) COREDIR = ..\lib\CORE XCOREDIR = ..\xlib\$(CROSS_NAME)\CORE AUTODIR = ..\lib\auto LIBDIR = ..\lib EXTDIR = ..\ext PODDIR = ..\pod EXTUTILSDIR = $(LIBDIR)\ExtUtils LINK32 = link LIB32 = $(LINK32) -lib RSC = rc INCLUDES = -I.\include -I. -I.. DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS) LOCDEFS = -DPERLDLL -DPERL_CORE CXX_FLAG = -TP PERLEXE_RES = perl.res PERLDLL_RES = !if "$(CFG)" == "RELEASE" CELIB = celib.lib !endif !if "$(CFG)" == "DEBUG" CELIB = celib.lib !endif CELIBS = -nodefaultlib \ winsock.lib $(CELIB) coredll.lib !if $(CEVersion) > 200 CELIBS = $(CELIBS) corelibc.lib !else CELIBS = $(CELIBS) msvcrt.lib !endif LIBBASEFILES = $(CRYPT_LIB) $(CELIBS) LIBFILES = $(LIBBASEFILES) $(LIBC) CFLAGS = -nologo -Gf -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \ $(PCHFLAGS) $(OPTIMIZE) LINK_FLAGS = -nologo -machine:$(PROCESSOR_ARCHITECTURE) !if "$(CFG)" == "DEBUG" LINK_FLAGS = $(LINK_FLAGS) -debug:full -pdb:none !else LINK_FLAGS = $(LINK_FLAGS) -release !endif OBJOUT_FLAG = -Fo EXEOUT_FLAG = -Fe CFLAGS_O = $(CFLAGS) $(BUILDOPT) o = .obj # # Rules # .SUFFIXES : .c $(o) .dll .lib .exe .rc .res .c$(o): $(CC) -c -I$( ..\config.sh $(MINIMOD) : ..\minimod.pl cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm $(DYNALOADER).c: $(EXTDIR)\DynaLoader\dl_win32.xs $(CONFIGPM) if not exist $(AUTODIR) mkdir $(AUTODIR) cd $(EXTDIR)\$(*B) $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) $(*B)_pm.PL $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) XSLoader_pm.PL cd ..\..\win32 $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL) $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL) cd $(EXTDIR)\$(*B) $(XSUBPP) dl_win32.xs > $(*B).c cd ..\..\win32 $(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs MakePPPort: $(MINIPERL) $(CONFIGPM) $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ..\mkppport MakePPPort_clean: -if exist $(HPERL) $(HPERL) -I..\lib ..\mkppport --clean #---------------------------------------------------------------------------------- NOT_COMPILE_EXT = !if "$(MACHINE)" == "wince-sh3-palm-wce211" NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap !endif !if "$(MACHINE)" == "wince-mips-palm-wce211" NOT_COMPILE_EXT = $(NOT_COMPILE_EXT) !XS/Typemap !endif Extensions: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --all \ !POSIX $(NOT_COMPILE_EXT) Extensions_clean: -if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --all --target=clean #---------------------------------------------------------------------------------- $(PERLEXE_RES): perl.rc perl.ico rc $(RCDEFS) perl.rc clean: -rm -f $(MACHINE)/dll/* -rm -f $(MACHINE)/*.obj -rm -f $(MACHINE)/*.exe -rm -f $(MACHINE)/*.dll -rm -f $(MACHINE)/*.lib -rm -f ../config.sh ../lib/Config.pm -rm -f config.h xconfig.h perl.res -rm -f ../t/test_state XDLLOBJS = \ $(DLLDIR)\av.obj \ $(DLLDIR)\deb.obj \ $(DLLDIR)\doio.obj \ $(DLLDIR)\doop.obj \ $(DLLDIR)\dump.obj \ $(DLLDIR)\globals.obj \ $(DLLDIR)\gv.obj \ $(DLLDIR)\mro.obj \ $(DLLDIR)\hv.obj \ $(DLLDIR)\locale.obj \ $(DLLDIR)\mathoms.obj \ $(DLLDIR)\mg.obj \ $(DLLDIR)\numeric.obj \ $(DLLDIR)\op.obj \ $(DLLDIR)\pad.obj \ $(DLLDIR)\perl.obj \ $(DLLDIR)\perlapi.obj \ $(DLLDIR)\perlio.obj \ $(DLLDIR)\perly.obj \ $(DLLDIR)\pp.obj \ $(DLLDIR)\pp_ctl.obj \ $(DLLDIR)\pp_hot.obj \ $(DLLDIR)\pp_pack.obj \ $(DLLDIR)\pp_sort.obj \ $(DLLDIR)\pp_sys.obj \ $(DLLDIR)\reentr.obj \ $(DLLDIR)\regcomp.obj \ $(DLLDIR)\regexec.obj \ $(DLLDIR)\run.obj \ $(DLLDIR)\scope.obj \ $(DLLDIR)\sv.obj \ $(DLLDIR)\taint.obj \ $(DLLDIR)\toke.obj \ $(DLLDIR)\universal.obj \ $(DLLDIR)\utf8.obj \ $(DLLDIR)\util.obj \ $(DLLDIR)\win32thread.obj \ $(DLLDIR)\wince.obj \ $(DLLDIR)\win32io.obj \ $(DLLDIR)\wincesck.obj \ $(DLLDIR)\perllib.obj \ $(DLLDIR)\DynaLoader.obj !IF "$(PERL_MALLOC)" == "define" XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj !ENDIF !IF "$(CRYPT_SRC)" != "" XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj !ENDIF {$(SRCDIR)}.c{$(DLLDIR)}.obj: $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $< # compiler explains that it will optimize toke.c if we'll give it an # option -QMOb with num>=4178 $(DLLDIR)\toke.obj: $(CC) -c $(CFLAGS_O) -QMOb9000 -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ ..\toke.c {$(SRCDIR)/win32}.c{$(DLLDIR)}.obj: $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $< # -DPERL_IMPLICIT_SYS needs C++ for perllib.c # This is the only file that depends on perlhost.h, vmem.h, and vdir.h !IF "$(USE_IMP_SYS)" == "define" $(DLLDIR)\perllib$(o) : perllib.c .\perlhost.h .\vdir.h .\vmem.h $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c rem (frustrated) mv perllib.obj $(DLLDIR) !ENDIF perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h.pl $(HPERL) -MCross -I..\lib create_perllibst_h.pl $(HPERL) -MCross -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \ CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def $(PERLDLL) : $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES) $(LINK32) -dll -def:perldll.def -out:$@ \ $(SUBSYS) $(LDLIBPATH) \ $(LINK_FLAGS) $(LIBFILES) \ $(XDLLOBJS) $(PERLDLL_RES) $(DLLDIR) : if not exist "$(DLLDIR)" mkdir "$(DLLDIR)" $(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \ $(EXTDIR)\DynaLoader\DynaLoader.c XPERLEXEOBJS = \ $(MACHINE)\perlmaince.obj $(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS) $(XCOPY) $(MACHINE)\*.lib $(XCOREDIR) $(LINK32) $(SUBSYS) $(LDLIBPATH) \ -entry:wWinMainCRTStartup \ -out:$(MACHINE)\perl.exe \ -stack:0x100000 $(LINK_FLAGS) $(STARTOBJS) $(XPERLEXEOBJS) \ $(PERLIMPLIB) $(PERLEXE_RES) $(LIBFILES) $(MACHINE)\perlmaince.obj : perlmaince.c $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmaince.c iodll: $(IO_DLL) socketdll: $(SOCKET_DLL) dumperdll: $(DUMPER_DLL) dlls: socketdll iodll dumperdll -xmkdir -p $(MACHINE)/lib/auto/IO cp ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO cp ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO -xmkdir $(MACHINE)/lib/auto/Socket cp ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket cp ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket -xmkdir -p $(MACHINE)/lib/auto/Data/Dumper cp ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper cp ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper makedist: all dlls $(COPY) $(CELIBPATH)\celib.dll $(MACHINE) cp perl.txt $(MACHINE) cp registry.bat $(MACHINE) cp ../lib/Config.pm $(MACHINE)/lib cd $(MACHINE) rm -f perl-$(MACHINE).tar.gz sh -c "tar cf perl-$(MACHINE).tar *.exe *.dll *.txt *.bat lib" gzip -9 perl-$(MACHINE).tar mv perl-$(MACHINE).tar.gz h:/freenet/new cd .. install: all -cemkdir "$(INSTALL_ROOT)" -cemkdir "$(INSTALL_ROOT)\bin" -cemkdir "$(INSTALL_ROOT)\lib" $(CECOPY) "pc:$(MACHINE)/perl.exe" "ce:$(INSTALL_ROOT)/bin" $(CECOPY) "pc:$(MACHINE)/perl$(PV).dll" "ce:$(INSTALL_ROOT)/bin" $(CECOPY) "pc:../xlib/$(CROSS_NAME)/Config.pm" "ce:$(INSTALL_ROOT)/lib" $(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables cd ..\lib\unicore && \ $(HPERL) -I.. mktables -P ..\..\pod -maketest -makelist -p dist: all $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) zipdist: all $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip zip: $(HPERL) -I..\lib -MCross=$(CROSS_NAME) ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip hostminiperl: ..\miniperl.exe ..\miniperl.exe: set PATH=$(CCHOME)\bin;$(PATH) $(MAKE) -f Makefile "CCHOME=$(MSVCDIR)" "CCINCDIR=$(CCHOME)\include" "CCLIBDIR=$(CCHOME)\lib" "INCLUDE=$(CCHOME)\include" "LIB=$(CCHOME)\lib" "LINK_FLAGS=" .\config.h ..\miniperl.exe host-install: perl -MConfig -MExtUtils::Install -we "install({'../lib/CORE', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#},1)" perl -MConfig -MExtUtils::Install -we "install({'../xlib/$(CROSS_NAME)', qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)#},1)" perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/xlib/$(CROSS_NAME)/CORE#" perl -MConfig -MFile::Copy -we "copy qq#../lib/Cross.pm#, qq#$$Config{installprefixexp}/lib#" perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \ quotemeta($$Config{installprefixexp}) . \ qq#/xlib/$(CROSS_NAME)'}\" $$Config{installprefixexp}/xlib/$(CROSS_NAME)/Config.pm#"