diff perl-5.22.2/win32/Makefile.ce @ 8045:a16537d2fe07

<xfix> tar xf perl-5.22.2.tar.gz # Ah, whatever, I\'m doing it anyway
author HackBot
date Sat, 14 May 2016 14:54:38 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/perl-5.22.2/win32/Makefile.ce	Sat May 14 14:54:38 2016 +0000
@@ -0,0 +1,1054 @@
+#
+# 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         = 522
+
+# 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  = $(MAKEDIR)
+
+# 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
+
+# cecopy program. Make shure it is in your path, as well as cemkdir, cedel
+CECOPY     = cecopy
+
+#
+# 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	   =
+
+#
+# uncomment exactly one of the following
+#
+# Embedded Visual C++ 4 and older
+CCTYPE		= MSVC60
+# Smart Devices for Visual C++ 2005 (aka Visual C++ 8.x) (full version)
+#CCTYPE		= MSVC80
+# Smart Devices for Visual C++ 2008 (aka Visual C++ 9.x) (full version)
+#CCTYPE		= MSVC90
+
+#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
+#MACHINE=wince-x86-hpc-wce300
+#MACHINE=wince-arm-pocket-wce400
+!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
+
+!if "$(MACHINE)" == "wince-x86-hpc-wce300"
+CC         = cl.exe
+ARCH       = X86EM
+CPU        = X86
+TARGETCPU  = X86
+CEVersion  = 400
+OSVERSION  = WCE400
+PLATFORM   = MS Pocket PC
+MCFLAGS    = -DX86 -D_X86_ -Dx86 -DPROCESSOR_X86 -D _MT -D _DLL \
+             -DPALM_SIZE -DPOCKET_SIZE -I $(CELIBDLLDIR)\inc
+MACH       = -machine:IX86
+SUBSYS     = -subsystem:windowsce,2.0
+CELIBPATH  = $(CELIBDLLDIR)\wince-x86-hpc-wce300-release
+LDLIBPATH  = -libpath:$(CELIBPATH)
+STARTOBJS  = $(CECONSOLEDIR)/$(MACHINE)/wmain.obj \
+             $(CECONSOLEDIR)/$(MACHINE)/w32console.obj
+!endif
+
+!if "$(MACHINE)" == "wince-arm-pocket-wce400"
+#CC         = clarm.exe #set in WCEARMV4.BAT
+ARCH       = ARM
+CPU        = ARM
+TARGETCPU  = ARM
+CEVersion  = 400
+#OSVERSION  = WCE300 #set in WCEARMV4.BAT
+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,4.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) -Zi
+
+!if "$(CFG)" == "DEBUG"
+CECFLAGS  = $(CECFLAGS) -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) -O1
+!endif
+!  IF "$(CCTYPE)" != "MSVC60"
+#turn on LTCG optimization for CCs that have it
+CECFLAGS	= $(CECFLAGS) -GL
+!  ENDIF
+!  IF "$(CCTYPE)" == "MSVC80" || "$(CCTYPE)" == "MSVC90"
+#no stack security cookie for CCs where its on by default
+CECFLAGS	= $(CECFLAGS) -GS-
+!  ENDIF
+!endif
+
+RCDEFS    = /l 0x407 /r /d "UNICODE" /d UNDER_CE=$(CEVersion) \
+            /d _WIN32_WCE=$(CEVersion)
+
+#PATH=$(CEPATH);$(PATH)
+
+# attention, for eVC 4, these paths are not generated correctly since the
+# WinCE SDK is organized differently from eVC 3, replace the next 2 macros
+# with absolute paths to the correct directories on your system
+#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_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 "$(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
+AUTODIR		= ..\lib\auto
+LIBDIR		= ..\lib
+EXTDIR		= ..\ext
+DISTDIR		= ..\dist
+CPANDIR		= ..\cpan
+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
+
+#use ws2.lib instead of winsock.lib for WSAGetLastError
+CELIBS          = -nodefaultlib \
+                  ws2.lib $(CELIB) coredll.lib
+
+#this libc's purpose is WinCE entrypoint to main wrapper, not a real C std lib
+!if $(CEVersion) > 200
+LIBC          = corelibc.lib
+!else
+LIBC          = msvcrt.lib
+!endif
+
+LIBBASEFILES	= $(CRYPT_LIB) $(CELIBS)
+
+LIBFILES	= $(LIBBASEFILES) $(LIBC)
+
+CFLAGS		= -nologo -GF -W3 $(INCLUDES) $(DEFINES) $(LOCDEFS) \
+		$(PCHFLAGS) $(OPTIMIZE)
+
+LINK_FLAGS	= -nologo -debug -opt:ref,icf -machine:$(PROCESSOR_ARCHITECTURE)
+
+!if "$(CFG)" == "RELEASE" && "$(CCTYPE)" != "MSVC60"
+#see matching flag in CECFLAGS
+LINK_FLAGS	= $(LINK_FLAGS) -ltcg
+!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)$@ $<
+
+.c.i:
+	$(CC) -c -I$(<D) $(CFLAGS_O) -P $(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	= perl$(PV).lib
+PERLIMPLIB	= $(PERLCEDIR)\$(MACHINE)\perl$(PV).lib
+PERLDLL		= $(MACHINE)\perl$(PV).dll
+
+DLLDIR          = $(MACHINE)\dll
+PERLEXE		= $(MACHINE)\perl.exe
+
+CONFIGPM	= ..\lib\Config.pm ..\lib\Config_heavy.pl
+GENUUDMAP	= ..\generate_uudmap.exe
+
+UUDMAP_H	= ..\uudmap.h
+BITCOUNT_H	= ..\bitcount.h
+MG_DATA_H	= ..\mg_data.h
+GENERATED_HEADERS = $(UUDMAP_H) $(BITCOUNT_H) $(MG_DATA_H)
+
+# Unicode data files generated by mktables
+FIRSTUNIFILE     = ..\lib\unicore\Decomposition.pl
+UNIDATAFILES	 = ..\lib\unicore\Decomposition.pl \
+		   ..\lib\unicore\CombiningClass.pl ..\lib\unicore\Name.pl \
+		   ..\lib\unicore\Heavy.pl ..\lib\unicore\mktables.lst \
+		   ..\lib\unicore\UCD.pl ..\lib\unicore\Name.pm \
+		   ..\lib\unicore\TestProp.pl
+
+PERLEXE_MANIFEST= .\perlexe.manifest
+PERLEXE_ICO	= .\perlexe.ico
+PERLEXE_RES	= .\perlexe.res
+PERLDLL_RES	=
+
+# 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
+MAKE_BARE	= nmake
+
+CFGSH_TMPL	= config.ce
+CFGH_TMPL	= config_H.ce
+
+XCOPY		= xcopy /f /r /i /d /y
+RCOPY		= xcopy /f /r /i /e /d /y
+NOOP		= @rem
+NULL		=
+
+DEL		= del
+
+MICROCORE_SRC	=		\
+		..\av.c		\
+		..\caretx.c	\
+		..\deb.c	\
+		..\doio.c	\
+		..\doop.c	\
+		..\dump.c	\
+		..\globals.c	\
+		..\gv.c		\
+		..\mro_core.c	\
+		..\hv.c		\
+		..\locale.c	\
+		..\keywords.c	\
+		..\mathoms.c    \
+		..\mg.c		\
+		..\numeric.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
+
+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
+
+CORE_NOCFG_H	=		\
+		..\av.h		\
+		..\cop.h	\
+		..\cv.h		\
+		..\dosish.h	\
+		..\embed.h	\
+		..\form.h	\
+		..\gv.h		\
+		..\handy.h	\
+		..\hv.h		\
+		..\hv_func.h	\
+		..\iperlsys.h	\
+		..\mg.h		\
+		..\nostdio.h	\
+		..\op.h		\
+		..\opcode.h	\
+		..\perl.h	\
+		..\perlapi.h	\
+		..\perlsdio.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	\
+		.\include\dirent.h	\
+		.\include\netdb.h	\
+		.\include\sys\errno2.h	\
+		.\include\sys\socket.h	\
+		.\win32.h
+
+DYNAMIC_EXT	= Socket IO Fcntl Opcode SDBM_File POSIX attributes 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)
+
+CFG_VARS = \
+ "INST_TOP=$(INST_TOP)" \
+ "INST_VER=$(INST_VER)" \
+ "INST_ARCH=$(INST_ARCH)" \
+ "archname=$(ARCHNAME)" \
+ "cc=$(CC)" \
+ "ld=$(LINK32)"	 \
+ "ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
+ "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
+ "cf_by=vkon" \
+ "cf_email=$(EMAIL)" \
+#9cef8306
+ "d_mymalloc=$(PERL_MALLOC)" \
+ "libs=$(LIBFILES)" \
+ "incpath=$(CCINCDIR)" \
+ "libperl=$(PERLIMPLIB_EXP)" \
+ "libpth=$(LIBPATH)" \
+ "libc=$(LIBC)" \
+ "make=$(MAKE_BARE)" \
+ "static_ext=$(STATIC_EXT)" \
+ "dynamic_ext=$(DYNAMIC_EXT)" \
+ "usethreads=$(USE_ITHREADS)" \
+ "useithreads=$(USE_ITHREADS)" \
+ "usemultiplicity=$(USE_MULTI)" \
+ "use64bitint=undef" \
+ "uselargefiles=undef" \
+ "LINK_FLAGS=$(LDLIBPATH) $(LINK_FLAGS) $(SUBSYS)" \
+ "optimize=$(OPTIMIZE)" \
+ "WIN64=$(WIN64)"
+
+#
+# filenames given to xsubpp must have forward slashes (since it puts
+# full pathnames in #line strings)
+XSUBPP		= $(HPERL) -I..\..\lib ..\$(EXTUTILSDIR)\xsubpp \
+		-C++ -prototypes
+
+
+#
+# Top targets
+#
+
+all: hostminiperl force_config_h ..\lib\buildcustomize.pl .\config.h ..\git_version.h $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) MakePPPort Extensions
+
+$(DYNALOADER)$(o) : $(DYNALOADER).c config.h $(EXTDIR)\DynaLoader\dlutils.c
+
+#convenience target
+configpm_targ : $(CONFIGPM)
+
+force_config_h:
+	-@$(DEL) /f config.h
+	-@$(DEL) /f config.sh
+	-@$(DEL) /f ..\config.h
+	-@$(DEL) /f ..\config.sh
+	-@$(DEL) $(PERLEXE_RES)
+	-@mkdir ..\host
+	-@copy $(HPERL) ..\host\miniperl.exe
+	-@copy $(GENUUDMAP) ..\host\generate_uudmap.exe
+	-@$(MAKE) -f Makefile distclean
+	-@copy ..\host\miniperl.exe $(HPERL)
+	-@copy ..\host\generate_uudmap.exe $(GENUUDMAP)
+	$(GENUUDMAP) $(GENERATED_HEADERS)
+	type NUL > force_config_h
+
+$(UUDMAP_H) $(MG_DATA_H) : $(BITCOUNT_H)
+
+$(BITCOUNT_H) :
+	$(GENUUDMAP) $(GENERATED_HEADERS)
+
+$(CONFIGPM) : $(HPERL) ..\config.sh config_h.PL ..\git_version.h
+	cd .. && $(HPERL) -Ilib configpm --no-glossary
+	if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
+	$(XCOPY) ..\*.h $(COREDIR)\*.*
+	$(XCOPY) *.h $(COREDIR)\*.*
+	$(RCOPY) include $(COREDIR)\*.*
+	if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
+
+.\config.h: $(CONFIGPM) ..\config.sh
+	-@$(DEL) /f config.h
+	-$(HPERL) -I..\lib config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(COREDIR)" "CONFIG_H=config.h"
+	copy config.h ..\config.h
+
+..\config.sh : config.ce config_sh.PL FindExt.pm
+	-@$(DEL) /f config.sh
+	$(HPERL) -I..\lib -I. config_sh.PL $(CFG_VARS) config.ce > ..\config.sh
+
+..\git_version.h : ..\make_patchnum.pl
+	cd .. && $(HPERL) -Ilib make_patchnum.pl && cd win32
+
+# make sure that we recompile perl.c if the git version changes
+$(DLLDIR)\perl.obj : ..\git_version.h
+
+MakePPPort: $(HPERL) $(CONFIGPM) Extensions_nonxs
+	$(HPERL) -I..\lib ..\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 $(CONFIGPM)
+	$(HPERL) -I..\lib -I. ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR)  --all \
+	!POSIX !Win32 !Win32API/File !Time/HiRes !Time/Piece !re !SDBM_File $(NOT_COMPILE_EXT)
+
+
+Extensions_nonxs: ..\make_ext.pl ..\lib\buildcustomize.pl $(CONFIGPM) ..\pod\perlfunc.pod
+	$(XCOPY) ..\*.h $(COREDIR)\*.*
+	$(HPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs
+
+Extensions_clean:
+	-if exist $(HPERL) $(HPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR)  --all --target=clean 
+
+#----------------------------------------------------------------------------------
+
+$(PERLEXE_RES): perlexe.rc perl.rc $(PERLEXE_MANIFEST) $(PERLEXE_ICO)
+	rc $(RCDEFS) perlexe.rc
+
+clean: Extensions_clean
+        -if exist .\$(MACHINE)\dll rmdir /s /q .\$(MACHINE)\dll
+  -@$(DEL) .\$(MACHINE)\*.obj
+  -@$(DEL) .\$(MACHINE)\*.exe
+  -@$(DEL) .\$(MACHINE)\*.dll
+  -@$(DEL) .\$(MACHINE)\*.lib
+        -@$(DEL) .\$(MACHINE)\*.exp
+        -@$(DEL) .\$(MACHINE)\*.pdb
+	-@$(DEL) ..\git_version.h
+  -@$(DEL) config.h perl.res
+  -@$(DEL) ..\t\test_state
+
+XDLLOBJS = \
+$(DLLDIR)\av.obj \
+$(DLLDIR)\caretx.obj \
+$(DLLDIR)\deb.obj \
+$(DLLDIR)\doio.obj \
+$(DLLDIR)\doop.obj \
+$(DLLDIR)\dump.obj \
+$(DLLDIR)\globals.obj \
+$(DLLDIR)\gv.obj \
+$(DLLDIR)\mro_core.obj \
+$(DLLDIR)\hv.obj \
+$(DLLDIR)\locale.obj \
+$(DLLDIR)\keywords.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
+
+#sanity checks to make sure all our external files (celib, w32console, and
+#MS CE SDK) are locatable
+lib_check :
+    @if not exist $(CECONSOLEDIR)\$(MACHINE)\w32console.obj cmd /k \
+        "echo w32console.obj doesn't seem to exist, check your w32console directory \
+        & exit 1"
+    @if not exist $(CELIBDLLDIR)\$(MACHINE)-release\celib.lib cmd /k \
+        "echo celib.lib doesn't seem to exist, check your celib directory \
+        & exit 1"
+    @for %X in ( $(LIBC) ) do @if exist %~^$LIB:X ( exit 0 ) \
+        else ( echo $(LIBC) doesn't seem to exist, check your build enviroment & exit 1 )
+
+#specific header files to check picked at random
+header_check  :
+    @if not exist $(CELIBDLLDIR)\inc\cewin32.h  cmd /k \
+        "echo cewin32.h doesn't seem to exist, check your celib directory \
+        & exit 1"
+    @for %X in (ceconfig.h) do @if exist %~^$INCLUDE:X ( exit 0 ) \
+        else ( echo ceconfig.h doesn't seem to exist, check your build enviroment & exit 1 )
+
+{$(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)/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 .\config.h
+	$(HPERL) -I..\lib create_perllibst_h.pl
+	$(HPERL) -I..\lib -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
+	    CCTYPE=$(CCTYPE) -DPERL_DLL=$(PERLDLL) TARG_DIR=..\ > perldll.def
+
+$(PERLDLL) : header_check lib_check $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES)
+	$(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ \
+                  $(SUBSYS) $(LDLIBPATH) \
+		  $(LINK_FLAGS) $(LIBFILES) \
+		  $(XDLLOBJS) $(PERLDLL_RES)
+
+$(DLLDIR) :
+	if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
+
+$(EXTDIR)\DynaLoader\DynaLoader.c :
+	$(HPERL) -I..\lib -I. ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader
+
+$(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
+    $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
+          $(EXTDIR)\DynaLoader\DynaLoader.c
+
+XPERLEXEOBJS = \
+$(MACHINE)\perlmaince.obj
+
+..\lib\buildcustomize.pl :
+	$(HPERL) -I..\lib -f ..\write_buildcustomize.pl ..
+
+$(PERLEXE) : $(PERLDLL) $(CONFIGPM) $(XPERLEXEOBJS) $(PERLEXE_RES) $(STARTOBJS)
+	$(XCOPY) $(MACHINE)\*.lib $(COREDIR)
+	$(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
+	copy ../lib/auto/IO/IO.bs $(MACHINE)/lib/auto/IO
+	copy ../lib/auto/IO/IO.dll $(MACHINE)/lib/auto/IO
+	-xmkdir $(MACHINE)/lib/auto/Socket
+	copy ../lib/auto/Socket/Socket.bs $(MACHINE)/lib/auto/Socket
+	copy ../lib/auto/Socket/Socket.dll $(MACHINE)/lib/auto/Socket
+	-xmkdir -p $(MACHINE)/lib/auto/Data/Dumper
+	copy ../lib/auto/Data/Dumper/Dumper.bs $(MACHINE)/lib/auto/Data/Dumper
+	copy ../lib/auto/Data/Dumper/Dumper.dll $(MACHINE)/lib/auto/Data/Dumper
+
+makedist: all dlls
+	$(COPY) $(CELIBPATH)\celib.dll $(MACHINE)
+	copy perl.txt $(MACHINE)
+	copy registry.bat $(MACHINE)
+	copy ../lib/Config.pm $(MACHINE)/lib
+	cd $(MACHINE)
+	-@$(DEL) 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:../lib/Config.pm" "ce:$(INSTALL_ROOT)/lib"
+
+$(UNIDATAFILES) : $(HPERL) $(CONFIGPM) ..\lib\unicore\mktables MakePPPort
+	cd ..\lib\unicore && \
+	$(HPERL) -I.. -I..\..\lib mktables -P ..\..\pod -maketest -makelist -p -check $@ $(FIRSTUNIFILE)
+
+dist: all
+	$(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
+
+zipdist: all
+	$(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME)
+	$(HPERL) -I..\lib ce-helpers\makedist.pl --distdir=dist-$(CROSS_NAME) --cross-name=$(CROSS_NAME) --zip
+
+zip:
+	$(HPERL) -I..\lib 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}/lib/CORE#},1)"
+	perl -MConfig -MExtUtils::Install -we "install({'../lib', qq#$$Config{installprefixexp}/lib#},1)"
+	perl -MConfig -MFile::Copy -we "copy qq#./$(MACHINE)/perl$(PV).lib#, qq#$$Config{installprefixexp}/lib/CORE#"
+	perl -MConfig -we "system qq#perl -pi.bak -we \"s{((arch^|priv)libexp)='.*'}{\$$1='# . \
+	 quotemeta($$Config{installprefixexp}) . \
+	 qq#/lib'}\" $$Config{installprefixexp}/lib/Config.pm#"