summaryrefslogtreecommitdiff
path: root/win32/Makefile.ce
diff options
context:
space:
mode:
authorYves Orton <demerphq@gmail.com>2006-05-01 21:02:09 +0200
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2006-05-02 14:28:31 +0000
commitf4257e4d90c288c896435eca90d56255a0334871 (patch)
treea0ffec8a5f9406d9d6e66cfce6935231960dc3e5 /win32/Makefile.ce
parentf4890806d306bfeee79f1864c882eb307b4f54fd (diff)
downloadperl-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.ce970
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#"