diff options
author | Daniel Dragan <bulk88@hotmail.com> | 2013-11-04 03:18:58 -0500 |
---|---|---|
committer | Tony Cook <tony@develop-help.com> | 2013-11-12 10:47:13 +1100 |
commit | d9d770874f926b7b4990948b7eecca98fde9e695 (patch) | |
tree | 73744cfe0453135bd131ce3cee6c1836eddd3a10 /win32/Makefile.ce | |
parent | 9b4bdfd44e0e6d44a447f231c281f967c7ca35c9 (diff) | |
download | perl-d9d770874f926b7b4990948b7eecca98fde9e695.tar.gz |
check existence of headers and libs for WinCE in Makefile.ce
Macro LIBC was used since day 1 of WinCE port (commit e1caacb4fd ), but
never before defined. On Desktop Win32 Perl, LIBC is msvcrt.lib, so fix
corelibc/msvcrt to be LIBC and not part of CELIBS. Then use LIBC in a
sanity check. Sanity checks will give an error message, vs running the
C compiler and geting cryptic messages about unknown .hs and random
missing symbols.
Diffstat (limited to 'win32/Makefile.ce')
-rw-r--r-- | win32/Makefile.ce | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/win32/Makefile.ce b/win32/Makefile.ce index b73e6e3baa..bd1da4c503 100644 --- a/win32/Makefile.ce +++ b/win32/Makefile.ce @@ -530,10 +530,11 @@ CELIB = celib.lib 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 -CELIBS = $(CELIBS) corelibc.lib +LIBC = corelibc.lib !else -CELIBS = $(CELIBS) msvcrt.lib +LIBC = msvcrt.lib !endif LIBBASEFILES = $(CRYPT_LIB) $(CELIBS) @@ -899,6 +900,26 @@ XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj 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)\ $< @@ -923,7 +944,7 @@ perldll.def : $(HPERL) $(CONFIGPM) ..\embed.fnc ..\makedef.pl create_perllibst_h $(HPERL) -I..\lib -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) +$(PERLDLL) : header_check lib_check $(DLLDIR) perldll.def $(XDLLOBJS) $(PERLDLL_RES) $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ \ $(SUBSYS) $(LDLIBPATH) \ $(LINK_FLAGS) $(LIBFILES) \ |