269 lines
6.5 KiB
PHP
269 lines
6.5 KiB
PHP
!IF 0
|
|
|
|
Copyright (c) 1994-1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
mipsmk.inc
|
|
|
|
Abstract:
|
|
|
|
This module contains the MIPs specific build controls. It is included
|
|
by makefile.def.
|
|
|
|
Revision History:
|
|
|
|
!ENDIF
|
|
|
|
#
|
|
# Mips option control
|
|
#
|
|
|
|
!undef USE_MAPSYM
|
|
|
|
UMBASE=$(UMBASE:*=mips)
|
|
UMLIBS=$(UMLIBS:*=mips)
|
|
NTRES=$(NTRES:*=mips)
|
|
UMRES=$(UMRES:*=mips)
|
|
UMOBJS=$(UMOBJS:*=mips)
|
|
LINKLIBS=$(LINKLIBS:*=mips)
|
|
GDI_DRIVER_LIBS=$(GDI_DRIVER_LIBS:*=mips)
|
|
DLLBASE=$(DLLBASE:*=mips)
|
|
DLLDEF=$(DLLDEF:*=mips)
|
|
MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS:*=mips)
|
|
TARGET=$(TARGET:*=mips)
|
|
DYNLINK_LIB=$(DYNLINK_LIB:*=mips)
|
|
TARGETEXEFILES=$(TARGETEXEFILES:*=mips)
|
|
TARGETLIBFILES=$(TARGETLIBFILES:*=mips)
|
|
TARGETOBJFILES=$(TARGETOBJFILES:*=mips)
|
|
UMOBJFILES=$(UMOBJFILES:*=mips)
|
|
UMEXEFILES=$(UMEXEFILES:*=mips)
|
|
HEADERFILE=$(HEADERFILE:*=mips)
|
|
HEADEROBJNAME=$(HEADEROBJNAME:*=mips)
|
|
HEADEROBJ=$(HEADEROBJ:*=mips)
|
|
PRECOMPILED=$(PRECOMPILED:*=mips)
|
|
PRECOMPILED_CXX=$(PRECOMPILED_CXX:*=mips)
|
|
PRECOMPILED_TARGET=$(PRECOMPILED_TARGET:*=mips)
|
|
MFC_STATIC_LIB=$(MFC_STATIC_LIB:*=mips)
|
|
CRT_LIB_PATH=$(CRT_LIB_PATH:*=mips)
|
|
SDK_LIB_PATH=$(SDK_LIB_PATH:*=mips)
|
|
ORDER=$(ORDER:*=mips)
|
|
|
|
!ifdef NTTARGETFILES
|
|
NTTARGETFILES=$(NTTARGETFILES:*=mips)
|
|
!endif
|
|
!ifdef NTTARGETFILE0
|
|
NTTARGETFILE0=$(NTTARGETFILE0:*=mips)
|
|
!endif
|
|
!ifdef NTTARGETFILE1
|
|
NTTARGETFILE1=$(NTTARGETFILE1:*=mips)
|
|
!endif
|
|
|
|
!IF "$(GPSIZE)" != "0"
|
|
|
|
!ifdef DEBUG_CRTS
|
|
LIBC_LIB=$(SDK_LIB_PATH)\smalld.lib $(LIBC_LIB)
|
|
!else
|
|
LIBC_LIB=$(SDK_LIB_PATH)\small.lib $(LIBC_LIB)
|
|
!endif
|
|
|
|
LINKGPSIZE=-gpsize:$(GPSIZE)
|
|
|
|
!ENDIF
|
|
|
|
LINKER_FLAGS = $(LINKER_FLAGS) -merge:.xdata=.rdata
|
|
|
|
MIPS_ENDIAN=MIPSEL
|
|
|
|
ENTRY_SUFFIX=
|
|
GDI_ENTRY_SUFFIX=
|
|
|
|
!IFDEF MIPS_WARNING_LEVEL
|
|
MSC_WARNING_LEVEL=$(MIPS_WARNING_LEVEL)
|
|
!ENDIF
|
|
|
|
!ifdef MIPS_PERFFLAGS
|
|
PERFFLAGS = $(MIPS_PERFFLAGS)
|
|
!endif
|
|
|
|
DEFAULT_MSC_OPT = $(DEFAULT_MSC_OPT:/Oxs=/Ox)
|
|
|
|
# Set MSC_OPTIMIZATION.
|
|
# Order of precedence:
|
|
# Platform specific override
|
|
# Environment variable
|
|
# System Default
|
|
|
|
!if defined(MIPS_OPTIMIZATION)
|
|
MSC_OPTIMIZATION=$(MIPS_OPTIMIZATION)
|
|
!elseif !defined(MSC_OPTIMIZATION)
|
|
MSC_OPTIMIZATION=$(DEFAULT_MSC_OPT)
|
|
!endif
|
|
|
|
DBGFLAGS=$(DBGFLAGS) $(MSC_OPTIMIZATION)
|
|
|
|
!IFDEF MIPS_CPPFLAGS
|
|
MSC_CPPFLAGS=$(MIPS_CPPFLAGS)
|
|
!ENDIF
|
|
|
|
#
|
|
# Now a bunch of MIPS stuff
|
|
#
|
|
|
|
!ifndef USE_PDB_TO_COMPILE
|
|
DBGFLAGS=$(DBGFLAGS:/Zi=-Z7)
|
|
DBGFLAGS=$(DBGFLAGS:-Zi=-Z7)
|
|
!else
|
|
! if "$(TARGETTYPE)" == "LIBRARY"
|
|
DBGFLAGS=$(DBGFLAGS) /Fd$(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).pdb
|
|
! else
|
|
DBGFLAGS=$(DBGFLAGS) /Fd$(MAKEDIR)\$(_OBJ_DIR)\mips^\
|
|
! endif
|
|
!endif
|
|
|
|
!ifdef BROWSER_INFO
|
|
DBGFLAGS=$(DBGFLAGS) /FR$(MAKEDIR)\$(_OBJ_DIR)\mips^\
|
|
!endif
|
|
|
|
!IFDEF NTBBT
|
|
DBGFLAGS=$(DBGFLAGS) /Z7
|
|
LINKER_FLAGS=$(LINKER_FLAGS) -debug:full -debugtype:cv,fixup
|
|
USE_PDB=1
|
|
!ENDIF
|
|
|
|
!IFNDEF MIPS_R3000
|
|
MIPS_CPU=-DR4000 -D_M_MRX000=4000
|
|
MIPS_TRAP_FILE=x4trap.obj
|
|
!ELSE
|
|
MIPS_CPU=-DR3000 -D_M_MRX000=3000
|
|
MIPS_TRAP_FILE=x3trap.obj
|
|
!ENDIF
|
|
|
|
MIPS_ASM_DEFINES=$(MIPS_ASMCPP)
|
|
ENV_DEFINES=$(LIBC_DEFINES) $(C_DEFINES) $(NET_C_DEFINES) $(MSC_CPPFLAGS) $(NTCPPFLAGS)
|
|
|
|
STD_DEFINES=-DENABLE_RESTRICTED -DMIPS=1 -D_MIPS_=1 -D$(MIPS_ENDIAN) -DNO_EXT_KEYS -DCONDITION_HANDLING=1 $(STD_DEFINES)
|
|
|
|
STDFLAGS=-c
|
|
MS_MIPS=1
|
|
|
|
!if 0
|
|
# Enable when /GF and /cbstring are tested together
|
|
! ifdef NO_READONLY_STRINGS
|
|
STRING_POOLING = /Gf
|
|
! else
|
|
STRING_POOLING = /GF
|
|
! endif
|
|
!else
|
|
# STRING_POOLING = /Gf
|
|
STRING_POOLING=
|
|
!endif
|
|
|
|
!ifdef USE_NATIVE_EH
|
|
EH_FLAGS=/GX /GR
|
|
!else
|
|
EH_FLAGS=/GX- /GR-
|
|
!endif
|
|
|
|
!ifndef DOWNLEVEL_COMPILE
|
|
DOWNLEVEL_COMPILE = 0
|
|
!endif
|
|
!if $(DOWNLEVEL_COMPILE)
|
|
MIPS3_INSTR = -QMmips2
|
|
MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS) $(SDK_LIB_PATH)\tlssup35.obj
|
|
!else
|
|
MIPS3_INSTR = -QMmips3 -d2QMGtlsa
|
|
!endif
|
|
|
|
MSC_C_COMPILER_NAME=cl -nologo
|
|
|
|
CDEFINES=$(STD_DEFINES) $(MIPS_CPU) $(TARGET_DBG_DEFINES) $(ENV_DEFINES)
|
|
CFLAGS=$(MIPS_FLAGS) $(NTMIPSFLAGS) $(STDFLAGS) $(DBGFLAGS) $(PERFFLAGS) $(USER_C_FLAGS)
|
|
AFLAGS=-Gy $(MIPS_FLAGS) $(NTMIPSFLAGS) $(STDFLAGS) $(DBGFLAGS) $(PERFFLAGS) $(MIPS3_INSTR)
|
|
|
|
MIPS_CDEFINES=$(CDEFINES)
|
|
MIPS_CFLAGS=$(CFLAGS) -Zel -Zp8 -Gy $(MSC_WARNING_LEVEL) -QMOb4000 $(MIPS3_INSTR) $(CBSTRING) $(EH_FLAGS) $(STRING_POOLING) -Gt$(GPSIZE)
|
|
MIPS_CFLAGS=$(MIPS_CFLAGS:-Qmips=-QM)
|
|
|
|
C_PREPROCESSOR_NAME = $(MSC_C_COMPILER_NAME)
|
|
C_COMPILER_NAME = $(MSC_C_COMPILER_NAME)
|
|
CXX_COMPILER_NAME = $(MSC_C_COMPILER_NAME)
|
|
MIPS_ASSEMBLER_NAME = $(MSC_C_COMPILER_NAME)
|
|
|
|
GLOBAL_C_FLAGS = -Imips\ -I. $(INCPATH0) $(CDEFINES) $(MIPS_CFLAGS) \
|
|
-DFPO=1 -D__stdcall= -D__cdecl= -D_LANGUAGE_C -DLANGUAGE_C $(MFC_FLAGS)
|
|
|
|
NP_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(COMPILER_WARNINGS)
|
|
|
|
C_COMPILER_FLAGS = $(NP_COMPILER_FLAGS) $(PRECOMPILED)
|
|
CXX_COMPILER_FLAGS = $(NP_COMPILER_FLAGS) $(PRECOMPILED_CXX)
|
|
C_PREPROCESSOR_FLAGS = $(GLOBAL_C_FLAGS) -EP -Tc
|
|
|
|
C_PREPROCESSOR = $(C_PREPROCESSOR_NAME) $(C_PREPROCESSOR_FLAGS)
|
|
C_COMPILER = $(C_COMPILER_NAME) $(C_COMPILER_FLAGS)
|
|
CXX_COMPILER = $(CXX_COMPILER_NAME) $(CXX_COMPILER_FLAGS)
|
|
|
|
ECHO_MSG=ClMips $< " $(C_COMPILER) "
|
|
ECHO_CXX_MSG=ClMips $< " $(CXX_COMPILER) "
|
|
|
|
ECHO_PRECOMPILED_MSG1=CpMips $(PRECOMPILED_INCLUDE) \
|
|
"$(C_COMPILER_NAME) $(PRECOMPILED_FLAG) $(PRECOMPILED_SOURCEFILE) \
|
|
$(C_COMPILER_FLAGS) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ)"
|
|
|
|
ECHO_PRECOMPILED_MSG2=CpMips $(PRECOMPILED_INCLUDE) \
|
|
"$(C_COMPILER_NAME) $(PRECOMPILED_FLAG) \
|
|
$(C_COMPILER_FLAGS) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ)"
|
|
|
|
MIPS_CRFILTER=echo SHOULDN'T NEED TO CRFILTER THIS!
|
|
|
|
!if $(FREEBUILD)
|
|
!IFNDEF MIPS_ENABLE_DIVIDE_CHECK
|
|
MIPS_CFLAGS=$(MIPS_CFLAGS) -d2aNoDivCheck
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
#
|
|
# Use Mips MCL for assembler files.
|
|
#
|
|
|
|
MIPS_ASSEMBLER_FLAGS = -nologo -Gt$(GPSIZE) -Ge -c $(MIPS_CPU_SWITCHES) \
|
|
-Imips\ -I. $(INCPATH0) $(CDEFINES) \
|
|
$(AFLAGS) -D_LANGUAGE_ASSEMBLY
|
|
|
|
MIPS_ASSEMBLER = $(MIPS_ASSEMBLER_NAME) $(MIPS_ASSEMBLER_FLAGS)
|
|
|
|
{..\mips\}.s{$(_OBJ_DIR)\mips\}.obj:
|
|
@-erase $@ >nul 2>&1
|
|
@echo AsMips $< " $(MIPS_ASSEMBLER) "
|
|
@$(MIPS_ASSEMBLER_NAME) @<< -Fo$(MAKEDIR)\$@ $<
|
|
$(MIPS_ASSEMBLER_FLAGS: =
|
|
)
|
|
<<NOKEEP
|
|
|
|
{mips\}.s{$(_OBJ_DIR)\mips\}.obj:
|
|
@-erase $@ >nul 2>&1
|
|
@echo AsMips $< " $(MIPS_ASSEMBLER) $(MIPS_ASSEMBLER_FLAGS)"
|
|
@$(MIPS_ASSEMBLER_NAME) @<< -Fo$(MAKEDIR)\$@ $<
|
|
$(MIPS_ASSEMBLER_FLAGS: =
|
|
)
|
|
<<NOKEEP
|
|
|
|
!IFDEF CAIRO_PRODUCT
|
|
!IFDEF _CAIROMIPSTREE
|
|
_NTTREE=$(_CAIROMIPSTREE)
|
|
_NTTREE_NO_SPLIT=$(_CAIROMIPSTREE_NS)
|
|
!ENDIF
|
|
!ELSEIFDEF _NTMIPSTREE
|
|
_NTTREE=$(_NTMIPSTREE)
|
|
_NTTREE_NO_SPLIT=$(_NTMIPSTREE_NS)
|
|
!ENDIF
|
|
|
|
!IFDEF _NTMIPSLIBS
|
|
_NTLIBS=$(_NTMIPSLIBS)
|
|
!ENDIF
|
|
|
|
COPYDST=$(MIPSCOPYDST)
|
|
LIB_COPY=ntmipscp.cmd
|
|
|
|
NTTEST_LINK_OPTIONS= -base:0x10000 -entry:KiSystemStartup
|