[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/cp/ps/build/frame/compiler/msvc.mk b/cp/ps/build/frame/compiler/msvc.mk
new file mode 100644
index 0000000..bd41bf6
--- /dev/null
+++ b/cp/ps/build/frame/compiler/msvc.mk
@@ -0,0 +1,412 @@
+# ------------------------------------------------------------------------ #

+# Compiler makefile for Microsoft Visual C++ 6.0                           #

+# ------------------------------------------------------------------------ #

+.PHONY :

+

+# ------------------------------------------------------------------------ #

+# Compiler tools

+# ------------------------------------------------------------------------ #

+CC            = cl.exe

+CPP           = cl.exe

+THUMBCC       = cl.exe

+THUMBCPP      = cl.exe

+ASM           =

+LINK          = link.exe

+CONV          =

+AR            = lib.exe

+

+

+

+# ---------------------------------------------------------------------------

+# Apply Rational Realtime when CODECOVERAGE=YES                              

+# ---------------------------------------------------------------------------

+# todo: for backward compatibility, should be removed later

+ifeq '$(DEBUGINFO)' ''

+	ifeq '$(BUILDMODE)' 'DEBUG'

+			DEBUGINFO=YES

+	endif

+endif

+

+ifeq '${CODECOVERAGE}' 'YES'

+ifeq '${TESTENVIRONMENT}' 'URRCM'

+ifneq '$(findstring ${BUILD_LIB},urrc urrcbp urrcdc urrcm)' ''

+CC            = attolcc -proc=ret -call -block=logical -cond=modified -count --atl_multi_treads=1 -- cl.exe

+endif # ifneq '$(findstring ${BUILD_LIB},urrc urrcbp urrcdc urrcm)' ''

+endif # ifeq '${TESTENVIRONMENT}' 'URRCM'

+

+ifeq '${TESTENVIRONMENT}' 'UPDCP'

+ifneq '$(findstring ${BUILD_LIB},urabmupdcp sif)' ''

+CC            = attolcc -proc=ret -call -block=logical -cond=modified -count --atl_multi_treads=1 -- cl.exe

+endif # ifneq '$(findstring ${BUILD_LIB},urabmupdcp sif)' ''

+endif # ifeq '${TESTENVIRONMENT}' 'UPDCP'

+

+ifeq '${TESTENVIRONMENT}' 'URLC'

+ifneq '$(findstring ${BUILD_LIB},urlcc urlcdl urlcul)' ''

+CC            = attolcc -proc=ret -call -block=logical -cond=modified -count --atl_multi_treads=1 -- cl.exe

+endif # ifneq '$(findstring ${BUILD_LIB},urlcc urlcdl urlcul)' ''

+endif # ifeq '${TESTENVIRONMENT}' 'URLC'

+

+ifeq '${TESTENVIRONMENT}' 'UMAC'

+ifneq '$(findstring ${BUILD_LIB},umac security ugdci)' ''

+CC            = attolcc -proc=ret -call -block=logical -cond=modified -count --atl_multi_treads=1 -- cl.exe

+endif # ifneq '$(findstring ${BUILD_LIB},umac security ugdci)' ''

+endif # ifeq '${TESTENVIRONMENT}' 'UMAC'

+

+ifeq '${TESTENVIRONMENT}' 'USIM'

+ifneq '$(findstring ${BUILD_LIB},usim)' ''

+CC            = attolcc -proc=ret -call -block=logical -cond=modified -count --atl_multi_treads=1 -- cl.exe

+endif # ifneq '$(findstring ${BUILD_LIB},usim)' ''

+endif # ifeq '${TESTENVIRONMENT}' 'USIM'

+

+endif # ifeq '${CODECOVERAGE}' 'YES'

+

+# ------------------------------------------------------------------------ #

+# Extensions for standard files

+# ------------------------------------------------------------------------ #

+OBJFILEEXT    = obj

+DEPFILEEXT    = dep

+OUTPUTFILEEXT = exe

+SRCFILEEXT    = src

+MAPFILEEXT    = map

+LIBFILEEXT    = lib

+ERRFILEEXT    = err

+SBRFILEEXT    = sbr

+PDBFILEEXT    = pdb

+

+CC_DEFPREFIX = -D

+CC_INCPREFIX = -I

+

+export COMPILER_VERSION := $(shell $(CC) 2>&1 | $(SED) -n "s/.*Version  *\([0-9]*\).*/\1/p")

+

+msvc_version : 

+	-@$(ECHO) "COMPILER VERSION: $(COMPILER_VERSION)"

+

+

+# ======================================================================== #

+# Common compiler switches for C and C++ compiler

+# ======================================================================== #

+CC_CPP_OPTIONS      = /nologo                   # no logo and info messages

+

+ifeq '$(WARNINGS)' 'YES'

+    CC_CPP_OPTIONS     += /W3                   # Warning level 3 - recommended for production purposes

+else

+ifeq '$(WARNINGS)' 'NO'

+    CC_CPP_OPTIONS     += /W0                   # Warning level 0 - disable all warnings

+else

+    CC_CPP_OPTIONS     += /W3                   # Warning level 3 - default

+endif

+endif

+

+CC_CPP_OPTIONS     += /c                        # compile without linking

+CC_CPP_OPTIONS     += /Od                       # no optimization, speed compilation, debugging

+CC_CPP_OPTIONS     += ${CC_DEFPREFIX}_MBCS      # default define:

+CC_CPP_OPTIONS     += ${CC_DEFPREFIX}_MSC       # default define:

+CC_CPP_OPTIONS     += ${CC_DEFPREFIX}_CONSOLE   # default define:

+CC_CPP_OPTIONS     += ${CC_DEFPREFIX}_LIB       # default define:

+CC_CPP_OPTIONS     += ${CC_DEFPREFIX}_Windows       # default define:

+CC_CPP_OPTIONS     += ${CC_DEFPREFIX}MSVCWIN       # default define:

+CC_CPP_OPTIONS     += ${CC_DEFPREFIX}_WIN32       # default define:

+

+ifeq '$(DEBUGINFO)' 'YES'                   # --- debug info

+    CC_CPP_OPTIONS += ${CC_DEFPREFIX}_DEBUG

+    CC_CPP_OPTIONS += /MTd                  # multithread debug

+    ifeq '$(COMPILER_VERSION)' '14'

+        CC_CPP_OPTIONS += /RTC1             # catch release build errors

+    else

+        CC_CPP_OPTIONS += /GZ               # catch release build errors

+    endif

+    CC_CPP_OPTIONS += /Zi                   # create additional debug library

+    CC_CPP_OPTIONS += /Fd${LIBDIR}/$(basename ${BUILD_LIB}).${PDBFILEEXT} # location of PDB library

+else                                        # --- release mode

+    CC_CPP_OPTIONS += /MT                   # multithread

+    CC_CPP_OPTIONS += /Gi-                  # dissable incremental compilation

+endif

+

+ifneq '$(TESTENVIRONMENT)' ''

+    CC_CPP_OPTIONS += /D__thumb             # compile test build like target build

+    CC_CPP_OPTIONS += /DUNITEST             # define UniTest build

+    CC_CPP_OPTIONS += /DSID_DEFINED	    # 

+    CC_CPP_OPTIONS += /DWIN32_LEAN_AND_MEAN # don't include unwanted Microsoft specific header files

+    CC_CPP_OPTIONS += /DNOGDI               # ditto

+    CC_CPP_OPTIONS += /DNOCRYPT             # ditto

+endif

+

+# --- add compiler and library specific compile switches

+CC_CPP_OPTIONS += ${MSVC_OPTIONS} $(MSVC_CC_CPP_OPTIONS_$(BUILD_LIB))

+

+# --- assembler files - not used yet

+ifneq '$(ASMCODEGEN)' ''

+endif

+

+# --- the *_CMD variable contains options that may not go into via-file

+CC_CPP_OPTIONS_CMD += /Fo${OBJDIR}/${BUILD_LIB}/$(@F) # specifiy obj name

+CC_CPP_OPTIONS_CMD += $(subst \,/,$<)                 # source file

+ifneq '$(TESTENVIRONMENT)' ''

+    CC_CPP_OPTIONS_CMD += /FR${SBRDIR}/${BUILD_LIB}/$(basename ${@F}).${SBRFILEEXT} # create browse info file

+endif

+ifeq '${ERRORLOG}' 'YES'

+    CC_CPP_OPTIONS_CMD += 2>&1 > ${ERRDIR}/${BUILD_LIB}/$(basename ${@F}).${ERRFILEEXT}

+endif

+

+

+# ======================================================================== #

+# C and C++ specific compiler switches

+# ======================================================================== #

+CC_INCL  = $(strip $(addprefix ${CC_INCPREFIX},  \

+                                               ${CC_INCLUDE} \

+                                               ${${BUILD_LIB}_INC} \

+            )       )

+CC_DEF   = $(strip $(addprefix ${CC_DEFPREFIX},$(SYSTEM_DEFS) \

+                                               ${L1_DEFS} \

+                                               ${CC_DEFS}  \

+                                               ${CCC_DEFS_PLATFORM} ) )

+CPP_INCL = $(strip $(addprefix ${CC_INCPREFIX}, \

+                                               ${CPP_INCLUDE} \

+                                               ${${BUILD_LIB}_INC}\

+            )       )

+CPP_DEF  = $(strip $(addprefix ${CC_DEFPREFIX},${SYSTEM_DEFS} \

+                                               ${L1_DEFS} \

+                                               ${CPP_DEFS} \

+                                               ${CPP_DEFS_PLATFORM} ) )

+

+CC_OPTIONS  = ${CC_INCL} ${CC_DEF} ${MSVC_CC_OPTIONS} $(MSVC_CC_OPTIONS_$(BUILD_LIB))

+CPP_OPTIONS = ${CPP_INCL} ${CPP_DEF} ${MSVC_CPP_OPTIONS} $(MSVC_CPP_OPTIONS_$(BUILD_LIB))

+CPP_OPTIONS+= -we4150 # turn warning C4150 into error since it's to serious

+

+# precompiled header are only supported for cpp

+ifeq '$(findstring hpp,${PCH_FILE})' 'hpp'

+    PCH_FILENAME      = ${OBJDIR}/$(BUILD_LIB)/$(basename $(PCH_BUILD_FILE)).pch

+    # add pch-options to source-options

+    PCH_USE_OPTIONS    += /Yu${PCH_FILE} /Fp${PCH_FILENAME}

+    # build specific pch-options

+    PCH_CREATE_OPTIONS += /Yc${PCH_FILE} /Fp${PCH_FILENAME}

+endif

+

+

+# ======================================================================== #

+# combining, via files

+# ======================================================================== #

+CC_COMPLETE_TMP  = ${CC_CPP_OPTIONS} ${CC_OPTIONS}

+CPP_COMPLETE_TMP = ${CC_CPP_OPTIONS}              ${CPP_OPTIONS} ${PCH_USE_OPTIONS}

+PCH_COMPLETE_TMP = ${CC_CPP_OPTIONS}              ${CPP_OPTIONS} ${PCH_CREATE_OPTIONS}

+

+ifeq '${VIAFILE}' 'YES'

+    VIA_CC_COMPLETE  = ${CC_COMPLETE_TMP}

+    VIA_CPP_COMPLETE = ${CPP_COMPLETE_TMP}

+    VIA_PCH_COMPLETE = ${PCH_COMPLETE_TMP}

+    CC_COMPLETE  = @${OBJDIR}/${BUILD_LIB}/cc.via

+    CPP_COMPLETE = @${OBJDIR}/${BUILD_LIB}/cpp.via

+    PCH_COMPLETE = @${OBJDIR}/${BUILD_LIB}/pch.via

+else

+    CC_COMPLETE  = ${CC_COMPLETE_TMP}

+    CPP_COMPLETE = ${CPP_COMPLETE_TMP}

+    PCH_COMPLETE = ${PCH_COMPLETE_TMP}

+endif # VIAFILE

+

+

+# ======================================================================== #

+# command lines

+# ======================================================================== #

+ASM_CMDLINE = # we're not using an assembler on win32

+ifeq '$(ERRORLOG)' 'YES'

+    CMDLINE_ERROR_POSTPROC=|| ( $(CAT) ${ERRDIR}/${BUILD_LIB}/$(basename ${@F}).${ERRFILEEXT} && exit 3)

+endif 

+

+ASM_CMDLINE = # we're not using an assembler on win32

+CC_CMDLINE  = $(strip ${CC}  ${CC_COMPLETE}  ${CC_CPP_OPTIONS_CMD} ) $(CMDLINE_ERROR_POSTPROC)

+CPP_CMDLINE = $(strip ${CPP} ${CPP_COMPLETE} ${CC_CPP_OPTIONS_CMD} ) $(CMDLINE_ERROR_POSTPROC)

+PCH_CMDLINE = $(strip ${CPP} ${PCH_COMPLETE} ${CC_CPP_OPTIONS_CMD} ) $(CMDLINE_ERROR_POSTPROC)

+

+

+

+# no specific THUMB-stuff!

+THUMBCC_CMDLINE  = ${CC_CMDLINE}

+THUMBCPP_CMDLINE = ${CPP_CMDLINE}

+

+

+# ------------------------------------------------------------------------ #

+# Howto make dependencies per file

+# ------------------------------------------------------------------------ #

+# jwo: dep/file deactivated as we build dep-file on a per-lib base

+ifeq '0' '1'

+CC_MAKEDEP_CMDLINE       = ${MKDEP} \

+                               $(addprefix /I ,$(subst /,\,${${BUILD_LIB}_INC})) \

+                               /T "" \

+                               /X \

+                               /o $(subst /,\,${DEPDIR}/${BUILD_LIB}/${BUILD_LIB}.${DEPFILEEXT}) \

+                               $(subst /,\,$^)

+THUMBCC_MAKEDEP_CMDLINE  = ${CC_MAKEDEP_CMDLINE}

+CPP_MAKEDEP_CMDLINE      = ${CC_MAKEDEP_CMDLINE}

+THUMBCPP_MAKEDEP_CMDLINE = ${CC_MAKEDEP_CMDLINE}

+endif

+

+# ------------------------------------------------------------------------ #

+# How to run the SDL code generation

+# ------------------------------------------------------------------------ #

+runsdlcmd:

+	$(SDL_MAKE_CMD)

+

+

+# ------------------------------------------------------------------------ #

+# Target rule for 'all'

+# ------------------------------------------------------------------------ #

+ifeq '${SDLCODEGEN}' 'YES'

+  all: runsdlcmd runsdlscr config createdirs ${MAKEDIR}/${PROJECTNAME}.${OUTPUTFILEEXT}

+else # SDLCODEGEN

+  ifeq '${SDLSCR}' 'YES'

+    all: runsdlscr config createdirs ${MAKEDIR}/${PROJECTNAME}.${OUTPUTFILEEXT}

+  else # SDLSCR

+    all: config createdirs ${MAKEDIR}/${PROJECTNAME}.${OUTPUTFILEEXT}

+  endif # SDL source code reduction

+endif # SDLCODEGEN

+

+

+# ------------------------------------------------------------------------ #

+# creating the .lib

+# ------------------------------------------------------------------------ #

+L_OPTIONS = /nologo

+LINKER_CMDLINE=${AR}

+FILTEROUTFILE = $(notdir $(LIB_DEPFILE)) # jwo probably using $^ instead of ^F would be smarter

+ifeq '${VIAFILE}' 'YES'

+    LINKER_CMDLINE += @${OBJDIR}/${BUILD_LIB}/lib.via

+    VIA_LIB_COMPLETE = \

+               ${L_OPTIONS} \

+               /MACHINE:IX86 \

+               /out:${LIBDIR}/${BUILD_LIB}.${LIBFILEEXT} \

+               $(addprefix ${OBJDIR}/${BUILD_LIB}/,$(filter-out ${FILTEROUTFILE},$(^F))) \

+               ${OBJSTOLINK}

+else

+    LINKER_CMDLINE += \

+               ${L_OPTIONS} \

+               /MACHINE:IX86 \

+               /out:${LIBDIR}/${BUILD_LIB}.${LIBFILEEXT} \

+               $(addprefix ${OBJDIR}/${BUILD_LIB}/,$(filter-out ${FILTEROUTFILE},$(^F))) \

+               ${OBJSTOLINK}

+endif

+

+

+# ------------------------------------------------------------------------ #

+# Linker

+# ------------------------------------------------------------------------ #

+L_FLAGS   = /subsystem:console

+L_FLAGS  += /machine:I386

+L_FLAGS  += /pdbtype:sept

+L_FLAGS  += /verbose:lib

+L_FLAGS  += /nodefaultlib:libc.lib

+L_FLAGS  += /nodefaultlib:libcd.lib

+L_FLAGS  += /nodefaultlib:libcmt.lib

+L_FLAGS  += /nodefaultlib:libcmtd.lib

+

+L_STANDARDLIBS  = # init

+ifeq '$(DEBUGINFO)' 'YES'

+   L_STANDARDLIBS += libcmtd.lib

+else

+   L_STANDARDLIBS += libcmt.lib

+endif

+L_STANDARDLIBS += kernel32.lib

+L_STANDARDLIBS += user32.lib

+L_STANDARDLIBS += ws2_32.lib

+L_STANDARDLIBS += netapi32.lib

+L_STANDARDLIBS += comctl32.lib

+L_STANDARDLIBS += gdi32.lib

+L_STANDARDLIBS += comdlg32.lib

+L_STANDARDLIBS += advapi32.lib

+L_STANDARDLIBS += winmm.lib

+L_STANDARDLIBS += imagehlp.lib

+L_STANDARDLIBS += shell32.lib

+

+# todo: check & fix this, why do apoxi need DEBUG always?

+ifeq '$(findstring APOXI,${APPLICATIONS})' 'APOXI'

+  L_FLAGS += /DEBUG

+else # APOXI

+  ifeq '$(DEBUGINFO)' 'YES'

+    L_FLAGS += /DEBUG

+  else

+    ifeq '$(findstring ${BUILD_LIB},${DEBUGLIBS})' '${BUILD_LIB}'

+      L_FLAGS += /DEBUG

+    endif # DEBUGMODE

+  endif # DEBUGMODE

+endif # APOXI

+

+

+# ------------------------------------------------------------------------ #

+# Target rule for 'link'ing executable

+# ------------------------------------------------------------------------ #

+ARC_CMDLINE  = ${LINK} ${L_FLAGS}

+ARC_CMDLINE += /out:${MAKEDIR}/${PROJECTNAME}.${OUTPUTFILEEXT}

+ifeq '$(DEBUGINFO)' 'YES'

+  ARC_CMDLINE += /pdb:${MAKEDIR}/${PROJECTNAME}.pdb

+endif

+ARC_CMDLINE += /libpath:${LIBDIR}

+ARC_CMDLINE += /libpath:${GLOBALPATH}/stack-interface/sdl/msvc50

+ARC_CMDLINE += ${L_STANDARDLIBS}

+ARC_CMDLINE += ${LIBSTOBUILD} ${LIBSTOLINK}

+

+link: ${MAKEDIR}/sys_version.c

+	$(ECHO) Creating executable $(MAKEDIR)/$(PROJECTNAME).${OUTPUTFILEEXT} ...

+	${ARC_CMDLINE}

+ifneq '${CMDPEREXE}' ''

+	${CMDPEREXE}

+endif # CMDPEREXE

+

+

+# ------------------------------------------------------------------------ #

+# Rule to build the executable

+# ------------------------------------------------------------------------ #

+${MAKEDIR}/${PROJECTNAME}.${OUTPUTFILEEXT} : ${LIBSTOBUILD}

+	$(MAKE) link

+

+

+

+# ------------------------------------------------------------------------

+# create a dependency file per lib

+# msvc doesn't provide dep-generation so mkdep.exe (comneon-made, not to be

+# mixed up with gnu's mkdep) is used

+# there is one dependency file per library <lib>.dep

+# ------------------------------------------------------------------------

+#

+ifneq '$(DEPENDENCIES)' 'NO'

+  LIB_DEPFILE=${DEPDIR}/${BUILD_LIB}/${BUILD_LIB}.$(DEPFILEEXT)

+endif

+

+# adapt pathes to cygwin

+ifeq '${BUILDPCOS}' 'WIN32'

+PATH_DELIM=\\

+else

+PATH_DELIM=/

+endif

+

+# adapt path of executable

+MKDEP := $(subst \,${PATH_DELIM},${MKDEP})

+

+# this is tricky, but mkdep expects INCLUDE_DEP to contain a ";" separated list of directories

+# add a ":" before and after each token, then we replace ": :" with ";" and remove single ":" (start & end)

+NULL:=

+SPACE:= $(NULL) # this is a space

+# we don't modify INCLUDE as this is used by compilers; muc uses "include" (lowercase)

+export INCLUDE_DEP=$(strip $(INCLUDE))$(strip $(include))

+INCLUDE_DEP +=$(strip $(subst :,,$(subst : :,;,$(addprefix :,$(addsuffix :,${${BUILD_LIB}_INC})))))

+INCLUDE_DEP:=$(subst ;$(SPACE),;,$(INCLUDE_DEP))

+

+${DEPDIR}/${BUILD_LIB}/${BUILD_LIB}.$(DEPFILEEXT) : \

+                                        ${${BUILD_LIB}_THUMB_FILES} \

+                                        ${${BUILD_LIB}_FILES}

+	-@$(ECHO) --- generating dependency file $@ ---

+    # this command get's too long most of the time so we create a viafile anyway

+	$(shell echo $(wordlist 1,1,$($^)) > ${DEPDIR}/${BUILD_LIB}/${BUILD_LIB}.via )

+	$(foreach str, $^, $(shell echo ${str} >> ${DEPDIR}/${BUILD_LIB}/${BUILD_LIB}.via) )

+	${MKDEP}  \

+                               /T "$(OBJ_DIR)" \

+                               /X \

+                               /E INCLUDE_DEP \

+                               /o $(subst /,${PATH_DELIM},${DEPDIR}/${BUILD_LIB}/${BUILD_LIB}.${DEPFILEEXT}) \

+                               @$(subst /,${PATH_DELIM},${DEPDIR}/${BUILD_LIB}/${BUILD_LIB}.via)

+# /T <dir> obj file directory <dir>

+# /X enable unix style ("/") support

+# /o write output to file <file>

+# /v verbose output

+# /S<c> file separator (\ by default)

+# /i<c> inc path seperator (; by default)

+# /x o generate dependencies with .o files (.obj is default)

+#                               $(addprefix /I ,$(subst /,\,${${BUILD_LIB}_INC}))

+