SRCDIR = ..
PV = 59
-INST_VER = 5.9.0
+INST_VER = 5.9.4
# INSTALL_ROOT specifies a path where this perl will be installed on CE device
INSTALL_ROOT=/netzwerk/sprache/perl
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
LIB32 = $(LINK32) -lib
RSC = rc
-INCLUDES = -I.\include -I. -I..
+INCLUDES = -I.\include -I..\win32\include -I. -I..
DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG) $(CECFLAGS)
LOCDEFS = -DPERLDLL -DPERL_CORE
-CXX_FLAG = -TP -GX
+CXX_FLAG = -TP
PERLEXE_RES = perl.res
PERLDLL_RES =
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
"archname=$(ARCHNAME)" \
"CC=$(CC)" \
"ccflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
- "cf_by=Rainer Keuchel" \
+ "cppflags=$(OPTIMIZE) $(DEFINES) $(BUILDOPT)" \
+ "cf_by=vkon" \
"cf_email=$(EMAIL)" \
"d_crypt=$(D_CRYPT)" \
"d_mymalloc=$(PERL_MALLOC)" \
# Top targets
#
-all: hostminiperl $(MINIMOD) $(CONFIGPM) $(PERLEXE) Extensions
+all: hostminiperl $(MINIMOD) $(CONFIGPM) $(UNIDATAFILES) $(PERLEXE) Extensions
$(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c
cd .. && $(HPERL) configpm --cross=$(CROSS_NAME) --no-glossary
-mkdir $(XCOREDIR)
$(XCOPY) ..\*.h $(XCOREDIR)\*.*
+ $(XCOPY) ..\*.inc $(XCOREDIR)\*.*
$(XCOPY) *.h $(XCOREDIR)\*.*
$(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)"
- if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
+ $(XCOPY) ..\win32\include $(XCOREDIR)\*.*
+ $(HPERL) -I..\lib -MCross=$(CROSS_NAME) config_h.PL "INST_VER=$(INST_VER)" "CORE_DIR=$(XCOREDIR)"
.\config.h:
-del /f config.h
$(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: ..\win32\buildext.pl $(PERLDEP) $(CONFIGPM)
$(HPERL) -I..\lib -I..\win32 -MCross=$(CROSS_NAME) ..\win32\buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) \
- !POSIX !Time/HiRes !XS/Typemap
+ !POSIX $(NOT_COMPILE_EXT)
Extensions_clean:
-if exist $(MINIPERL) $(MINIPERL) -I..\lib buildext.pl $(MAKE) $(PERLDEP) $(EXTDIR) clean
$(DLLDIR)\gv.obj \
$(DLLDIR)\hv.obj \
$(DLLDIR)\locale.obj \
+$(DLLDIR)\mathoms.obj \
$(DLLDIR)\mg.obj \
$(DLLDIR)\numeric.obj \
$(DLLDIR)\op.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) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
+ $(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)/wince}.c{$(DLLDIR)}.obj:
- $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $<
+ $(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) -w ..\makedef.pl PLATFORM=wince $(OPTIMIZE) $(DEFINES) $(BUILDOPT) \
if not exist "$(DLLDIR)" mkdir "$(DLLDIR)"
$(DLLDIR)\DynaLoader.obj: $(EXTDIR)\DynaLoader\DynaLoader.c
- $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
+ $(CC) -c $(CFLAGS_O) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ \
$(EXTDIR)\DynaLoader\DynaLoader.c
XPERLEXEOBJS = \
mv perl-$(MACHINE).tar.gz h:/freenet/new
cd ..
-!if "$(MACHINE)" == "wince-arm-hpc-wce300"
-install: all
- $(CECOPY) pc:$(MACHINE)/perl.exe ce:$(INSTALL_ROOT)/bin
- $(CECOPY) pc:$(MACHINE)/perl$(PV).dll ce:$(INSTALL_ROOT)/bin
-install_dlls: dlls
- $(CECOPY) pc:../lib/auto/IO/io.dll ce:$(INSTALL_ROOT)/lib/auto/IO/io.dll
-!else
install: all
-cemkdir "$(INSTALL_ROOT)"
-cemkdir "$(INSTALL_ROOT)\bin"
$(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"
-!endif
+
+$(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)