# Microsoft Embedded Visual C++ set-as-singleton SDKROOT OSVERSION PLATFORM TARGETCPU TARGET_BASEDIR STLPORT_ROOT ; SDKROOT ?= $(SDKROOT) ; OSVERSION ?= $(OSVERSION) ; PLATFORM ?= $(PLATFORM) ; TARGETCPU ?= $(TARGETCPU) ; TARGET_BASEDIR ?= "$(SDKROOT)$(SLASH)$(OSVERSION)$(SLASH)$(PLATFORM)" ; # WCEROOT ?= $(WCEROOT) ; # platform-specific parts # DEFINES: macros to identify the architecture # VC_COMPILER: name of the compiler to use (cl, clmips, clarm...) # TODO: LINKFLAGS: linker also needs to know about the target platform # TODO: using native should be an error or target the Emulator flags msevc4-stlport DEFINES native : x86 _X86_ _i386_ ; flags msevc4-stlport VC_COMPILER native : "cl.exe" ; flags msevc4-stlport LINKFLAGS native : ccrtrtti.lib /MACHINE:IX86 ; flags msevc4-stlport DEFINES mips2 : MIPS _MIPS_ MIPSII R4000 ; flags msevc4-stlport VC_COMPILER mips2 : "clmips.exe" ; flags msevc4-stlport LINKFLAGS mips2 : /MACHINE:MIPSII ; flags msevc4-stlport DEFINES debug : _DEBUG DEBUG ; flags msevc4-stlport CFLAGS debug : /MDd ; flags msevc4-stlport DEFINES release : NDEBUG ; flags msevc4-stlport CFLAGS release : /MD ; flags msevc4-stlport LINKFLAGS on : /DEBUG ; # The linker disables the default optimizations when using /DEBUG. Whe have # to enable them manually for release builds with debug symbols. flags msevc4-stlport LINKFLAGS on/release : /OPT:REF,ICF ; flags msevc4-stlport CFLAGS ; flags msevc4-stlport DEFINES $(SHARED_TYPES) : _USRDLL ; flags msevc4-stlport C++FLAGS ; flags msevc4-stlport DEFINES ; flags msevc4-stlport UNDEFS ; flags msevc4-stlport HDRS ; flags msevc4-stlport SYSHDRS ; flags msevc4-stlport LINKFLAGS ; flags msevc4-stlport ARFLAGS ; #flags msevc4-stlport STDHDRS : "$(TARGET_BASEDIR)$(SLASH)include$(SLASH)$(TARGETCPU)" "$(TARGET_BASEDIR)$(SLASH)MFC$(SLASH)include" "$(TARGET_BASEDIR)$(SLASH)ATL$(SLASH)include" ; #flags msevc4-stlport STDLIBPATH : "$(TARGET_BASEDIR)$(SLASH)lib$(SLASH)$(TARGETCPU)" "$(TARGET_BASEDIR)$(SLASH)MFC$(SLASH)lib$(SLASH)$(TARGETCPU)" "$(TARGET_BASEDIR)$(SLASH)ATL$(SLASH)lib$(SLASH)$(TARGETCPU)" ; flags msevc4-stlport LIBPATH ; flags msevc4-stlport NEEDLIBS ; flags msevc4-stlport FINDLIBS ; flags msevc4-stlport LINKFLAGS $(SHARED_TYPES) : /DLL ; LIBPATH += "$(STLPORT_ROOT)/lib/evc4-$(TARGETCPU)" ; #flags msevc4-stlport LINKFLAGS console : /subsystem:console ; #flags msevc4-stlport LINKFLAGS gui : /subsystem:windows ; #flags msevc4-stlport LINKFLAGS wince : /base:0x00100000 /stack:0x10000,0x1000 /entry:_DllMainCRTStartup /subsystem:windowsce,4.20 coredll.lib corelibc.lib ccrtrtti.lib /nodefaultlib:OLDNAMES.lib /nodefaultlib:libc.lib /nodefaultlib:libcd.lib /nodefaultlib:libcmt.lib /nodefaultlib:libcmtd.lib /nodefaultlib:msvcrt.lib /nodefaultlib:msvcrtd.lib ; #flags msevc4-stlport LINKFLAGS native : /subsystem:native ; #flags msevc4-stlport LINKFLAGS auto : /subsystem:posix ; LINKFLAGS += /INCREMENTAL:NO /base:0x00100000 /stack:0x10000,0x1000 /entry:_DllMainCRTStartup /subsystem:windowsce,4.20 ; LINKFLAGS += coredll.lib corelibc.lib /pdb:none /nodefaultlib:OLDNAMES.lib /nodefaultlib:libc.lib /nodefaultlib:libcd.lib /nodefaultlib:libcmt.lib /nodefaultlib:libcmtd.lib /nodefaultlib:msvcrt.lib /nodefaultlib:msvcrtd.lib ; DEFINES += _UNICODE UNICODE _STLP_USE_AUTO_LINK "UNDER_CE=420" "_WIN32_WCE=420" "WIN32_PLATFORM_PSPC=400" ; CFLAGS += /W3 /Zi /Od /Gs8192 /GF ; C++FLAGS += /GR /GX ; HDRS += "$(STLPORT_ROOT)/stlport" ; #### Cc ##### rule Cc-action { vce4-stlport-Cc $(<) : $(>) ; } actions vce4-stlport-Cc { echo on echo vce4-stlport-Cc echo CFLAGS= $(CFLAGS) echo $(VC_COMPILER) /c $(CFLAGS) /U$(UNDEFS) /D$(DEFINES) /I"$(HDRS)" /I"$(STDHDRS)" /I"$(SYSHDRS)" /Fo"$(<)" /Tc"$(>)" $(VC_COMPILER) /c $(CFLAGS) /U$(UNDEFS) /D$(DEFINES) /I"$(HDRS)" /I"$(STDHDRS)" /I"$(SYSHDRS)" /Fo"$(<)" /Tc"$(>)" } #### C++ #### rule C++-action { vce4-stlport-C++ $(<) : $(>) ; } actions vce4-stlport-C++ { echo on echo vce4-stlport-C++ echo C++FLAGS= $(C++FLAGS) echo CFLAGS= $(CFLAGS) echo $(VC_COMPILER) /c $(C++FLAGS) $(CFLAGS) /U$(UNDEFS) /D$(DEFINES) /I"$(HDRS)" /I"$(STDHDRS)" /I"$(SYSHDRS)" /Fo"$(<)" /Tp"$(>)" $(VC_COMPILER) /c $(C++FLAGS) $(CFLAGS) /U$(UNDEFS) /D$(DEFINES) /I"$(HDRS)" /I"$(STDHDRS)" /I"$(SYSHDRS)" /Fo"$(<)" /Tp"$(>)" } #### Archive #### rule Archive-action { with-command-file vce4-stlport-Archive $(<) : $(>) ; } # with-command-file vc-Archive $(<) : $(>) ; actions vce4-stlport-Archive { echo on echo vce4-stlport-Archive echo ARFLAGS = $(ARFLAGS) if exist "$(<[1])" DEL "$(<)" link /lib $(ARFLAGS) /out:"$(<)" @"$(>)" } #### Link #### rule Link-action ( target implib ? : sources + : target-type ? ) { with-command-file vce4-stlport-Link $(<) : $(sources) $(NEEDLIBS) ; } actions together vce4-stlport-Link { echo on echo vce4-stlport-Link echo LINKFLAGS = $(LINKFLAGS) if exist "$(<[1])" DEL "$(<)" echo link $(LINKFLAGS) /out:"$(<[1])" /IMPLIB:"$(<[2])" /LIBPATH:"$(LIBPATH)" /LIBPATH:"$(STDLIBPATH)" "$(FINDLIBS:S=.lib)" @"$(>)" link $(LINKFLAGS) /out:"$(<[1])" /IMPLIB:"$(<[2])" /LIBPATH:"$(LIBPATH)" /LIBPATH:"$(STDLIBPATH)" "$(FINDLIBS:S=.lib)" @"$(>)" }