diff options
author | Yves Orton <demerphq@gmail.com> | 2006-05-01 21:02:09 +0200 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2006-05-02 14:28:31 +0000 |
commit | f4257e4d90c288c896435eca90d56255a0334871 (patch) | |
tree | a0ffec8a5f9406d9d6e66cfce6935231960dc3e5 /win32/Makefile.ce | |
parent | f4890806d306bfeee79f1864c882eb307b4f54fd (diff) | |
download | perl-f4257e4d90c288c896435eca90d56255a0334871.tar.gz |
Re: Merge WinCE into Win32 directory and remove the the WinCE directory
Message-ID: <9b18b3110605011002m56c0db99n169ae677efb6d059@mail.gmail.com>
Plus adjustements to MANIFEST. Also, perlmain.c seemed to be missing
from the patch.
p4raw-id: //depot/perl@28061
Diffstat (limited to 'win32/Makefile.ce')
-rw-r--r-- | win32/Makefile.ce | 970 |
1 files changed, 970 insertions, 0 deletions
diff --git a/win32/Makefile.ce b/win32/Makefile.ce new file mode 100644 index 0000000000..9fe5d32334 --- /dev/null +++ b/win32/Makefile.ce @@ -0,0 +1,970 @@ +# perl makefile for wince +# +# Time-stamp: <26/10/01 15:10:06 keuchel@keuchelnt> + +SRCDIR = .. +PV = 59 +INST_VER = 5.9.4 + +# 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 + +#CEDEFS = $(CEDEFS) -DDEBUGGING_OPS + +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) + + +!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$(<D) $(CFLAGS_O) $(OBJOUT_FLAG)$@ $< + +.y.c: + $(NOOP) + +$(o).dll: + $(LINK32) -dll $(SUBSYS) $(LDLIBPATH) \ + -implib:$(*B).lib -def:$(*B).def \ + -out:$@ $(LINK_FLAGS) $(LIBFILES) $< $(LIBPERL) + +.rc.res: + $(RSC) -i.. $< + +# This must be relative to ../lib/CORE, else the ext dll build fails... +PERLIMPLIB_EXP = ..\..\..\xlib\$(CROSS_NAME)\CORE\perl$(PV).lib +PERLIMPLIB = $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib +PERLDLL = $(MACHINE)\perl$(PV).dll + +DLLDIR = $(MACHINE)\dll +PERLEXE = $(MACHINE)\perl.exe + +CONFIGPM = ..\xlib\$(CROSS_NAME)\Config.pm +MINIMOD = ..\lib\ExtUtils\Miniperl.pm + +# Unicode data files generated by mktables +UNIDATAFILES = ..\lib\unicore\Canonical.pl ..\lib\unicore\Exact.pl \ + ..\lib\unicore\Properties ..\lib\unicore\Decomposition.pl \ + ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \ + ..\lib\unicore\PVA.pl + +# Directories of Unicode data files generated by mktables +UNIDATADIR1 = ..\lib\unicore\To +UNIDATADIR2 = ..\lib\unicore\lib + +# Nominate a target which causes extensions to be re-built +# This used to be $(PERLEXE), but at worst it is the .dll that they depend +# on and really only the interface - i.e. the .def file used to export symbols +# from the .dll +PERLDEP = perldll.def + +MAKE = nmake -nologo + +CFGSH_TMPL = config.ce +CFGH_TMPL = config_H.ce + +# +# filenames given to xsubpp must have forward slashes (since it puts +# full pathnames in #line strings) +XSUBPP = $(HPERL) -I..\..\lib -MCross=$(CROSS_NAME) ..\$(EXTUTILSDIR)\xsubpp \ + -C++ -prototypes + +MICROCORE_SRC = \ + ..\av.c \ + ..\deb.c \ + ..\doio.c \ + ..\doop.c \ + ..\dump.c \ + ..\globals.c \ + ..\gv.c \ + ..\hv.c \ + ..\mg.c \ + ..\op.c \ + ..\pad.c \ + ..\perl.c \ + ..\perlapi.c \ + ..\perly.c \ + ..\pp.c \ + ..\pp_ctl.c \ + ..\pp_hot.c \ + ..\pp_pack.c \ + ..\pp_sort.c \ + ..\pp_sys.c \ + ..\reentr.c \ + ..\regcomp.c \ + ..\regexec.c \ + ..\run.c \ + ..\scope.c \ + ..\sv.c \ + ..\taint.c \ + ..\toke.c \ + ..\universal.c \ + ..\utf8.c \ + ..\util.c \ + ..\xsutils.c + +EXTRACORE_SRC = $(EXTRACORE_SRC) perllib.c + +!IF "$(PERL_MALLOC)" == "define" +EXTRACORE_SRC = $(EXTRACORE_SRC) ..\malloc.c +!ENDIF + +EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c .\win32io.c + +WIN32_SRC = \ + .\wince.c \ + .\wincesck.c \ + .\win32thread.c + +!IF "$(CRYPT_SRC)" != "" +WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC) +!ENDIF + +DLL_SRC = $(DYNALOADER).c + +CORE_NOCFG_H = \ + ..\av.h \ + ..\cop.h \ + ..\cv.h \ + ..\dosish.h \ + ..\embed.h \ + ..\form.h \ + ..\gv.h \ + ..\handy.h \ + ..\hv.h \ + ..\iperlsys.h \ + ..\mg.h \ + ..\nostdio.h \ + ..\op.h \ + ..\opcode.h \ + ..\perl.h \ + ..\perlapi.h \ + ..\perlsdio.h \ + ..\perlsfio.h \ + ..\perly.h \ + ..\pp.h \ + ..\proto.h \ + ..\regexp.h \ + ..\scope.h \ + ..\sv.h \ + ..\thread.h \ + ..\unixish.h \ + ..\utf8.h \ + ..\util.h \ + ..\warnings.h \ + ..\XSUB.h \ + ..\EXTERN.h \ + ..\perlvars.h \ + ..\intrpvar.h \ + ..\thrdvar.h \ + .\include\dirent.h \ + .\include\netdb.h \ + .\include\sys\socket.h \ + .\win32.h + +CORE_H = $(CORE_NOCFG_H) .\config.h + +MICROCORE_OBJ = $(MICROCORE_SRC:.c=.obj) +CORE_OBJ = $(MICROCORE_OBJ) $(EXTRACORE_SRC:.c=.obj) +WIN32_OBJ = $(WIN32_SRC:.c=.obj) +#WIN32_OBJ = $(WIN32_OBJ:.\=.\$(DLLDIR)\) +MINICORE_OBJ = $(MICROCORE_OBJ:..\=.\$(DLLDIR)\) \ + $(MINIDIR)\miniperlmain$(o) \ + $(MINIDIR)\perlio$(o) +MINIWIN32_OBJ = $(WIN32_OBJ:.\=.\$(DLLDIR)\) +MINI_OBJ = $(MINICORE_OBJ) $(MINIWIN32_OBJ) +DLL_OBJ = $(DLL_SRC:.c=.obj) +X2P_OBJ = $(X2P_SRC:.c=.obj) + +PERLDLL_OBJ = $(CORE_OBJ) +PERLEXE_OBJ = perlmain$(o) + +PERLDLL_OBJ = $(PERLDLL_OBJ) $(WIN32_OBJ) $(DLL_OBJ) +#PERLEXE_OBJ = $(PERLEXE_OBJ) $(WIN32_OBJ) $(DLL_OBJ) + +!IF "$(USE_SETARGV)" != "" +SETARGV_OBJ = setargv$(o) +!ENDIF + +DYNAMIC_EXT = Socket IO Fcntl Opcode SDBM_File POSIX attrs Thread B re \ + Data/Dumper Devel/Peek ByteLoader Devel/DProf File/Glob \ + Sys/Hostname + +STATIC_EXT = DynaLoader + +DYNALOADER = $(EXTDIR)\DynaLoader\DynaLoader + +ERRNO_PM = $(LIBDIR)\Errno.pm + + +EXTENSION_PM = \ + $(ERRNO_PM) + +POD2HTML = $(PODDIR)\pod2html +POD2MAN = $(PODDIR)\pod2man +POD2LATEX = $(PODDIR)\pod2latex +POD2TEXT = $(PODDIR)\pod2text + +CFG_VARS = \ + "INST_DRV=$(INST_DRV)" \ + "INST_TOP=$(INST_TOP)" \ + "INST_VER=$(INST_VER)" \ + "INST_ARCH=$(INST_ARCH)" \ + "archname=$(ARCHNAME)" \ + "CC=$(CC)" \ + "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \ + "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \ + "cf_by=vkon" \ + "cf_email=$(EMAIL)" \ + "d_crypt=$(D_CRYPT)" \ + "d_mymalloc=$(PERL_MALLOC)" \ + "libs=$(LIBFILES)" \ + "incpath=$(CCINCDIR)" \ + "libperl=$(PERLIMPLIB_EXP)" \ + "libpth=$(LIBPATH)" \ + "libc=$(LIBC)" \ + "make=nmake" \ + "static_ext=$(STATIC_EXT)" \ + "dynamic_ext=$(DYNAMIC_EXT)" \ + "useithreads=$(USE_ITHREADS)" \ + "usemultiplicity=$(USE_MULTI)" \ + "useperlio=$(USE_PERLIO)" \ + "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \ + "optimize=$(OPTIMIZE)" + +# +# Top targets +# + +all: hostminiperl $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) Extensions + +$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c + +$(CONFIGPM): .\xconfig.h ..\config.sh ..\minimod.pl + cd .. && $(HPERL) configpm --cross=$(CROSS_NAME) --no-glossary + -mkdir $(XCOREDIR) + $(XCOPY) ..\*.h $(XCOREDIR)\*.* + $(XCOPY) ..\*.inc $(XCOREDIR)\*.* + $(XCOPY) *.h $(XCOREDIR)\*.* + $(XCOPY) xconfig.h $(XCOREDIR)\config.h + $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* + $(RCOPY) include $(XCOREDIR)\*.* + $(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)" "CONFIG_H=xconfig.h" + +.\xconfig.h: + -del /f xconfig.h + copy config_H.ce xconfig.h + +..\config.sh: config.ce config_sh.PL + $(HPERL) -I..\lib -I. config_sh.PL $(CFG_VARS) config.ce > ..\config.sh + +$(MINIMOD) : ..\minimod.pl + cd .. && $(HPERL) minimod.pl > lib\ExtUtils\Miniperl.pm + +perlmain.c : runperl.c + $(COPY) runperl.c perlmain.c + +$(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 ..\..\win + $(XCOPY) $(EXTDIR)\$(*B)\$(*B).pm $(LIBDIR)\$(NULL) + $(XCOPY) $(EXTDIR)\$(*B)\XSLoader.pm $(LIBDIR)\$(NULL) + cd $(EXTDIR)\$(*B) + $(XSUBPP) dl_win32.xs > $(*B).c + cd ..\..\win + +$(EXTDIR)\DynaLoader\dl_win32.xs: dl_win32.xs + $(COPY) dl_win32.xs $(EXTDIR)\DynaLoader\dl_win32.xs + +#---------------------------------------------------------------------------------- +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: .\buildext.pl $(PERLDEP) $(CONFIGPM) + $(HPERL) -I..\lib -I. -MCross=$(CROSS_NAME) .\buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) \ + !POSIX $(NOT_COMPILE_EXT) + +Extensions_clean: + -if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) 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 perl.res + +XDLLOBJS = \ +$(DLLDIR)\av.obj \ +$(DLLDIR)\deb.obj \ +$(DLLDIR)\doio.obj \ +$(DLLDIR)\doop.obj \ +$(DLLDIR)\dump.obj \ +$(DLLDIR)\globals.obj \ +$(DLLDIR)\gv.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)\xsutils.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<num> with num>=4178 +$(DLLDIR)\toke.obj: + $(CC) -c $(CFLAGS_O) -QMOb9000 -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ ..\toke.c + +{$(SRCDIR)/win}.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) ..\global.sym ..\pp.sym ..\makedef.pl + $(HPERL) -MCross -I..\lib buildext.pl --create-perllibst-h + $(HPERL) -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \ + CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) > 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)\perlmain.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)\perlmain.obj : perlmain.c + $(CC) $(CFLAGS_O) -UPERLDLL -Fo$(MACHINE)\ -c perlmain.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 + +dist: all + $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) + +zipdist: all + $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) + $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip + +zip: + $(HPERL) -I..\lib -MCross=$(CROSS_NAME) makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip + +perl.ico: + $(HPERL) makeico.pl perl.ico + +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#" |