Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

268 lines
6.5 KiB

4 years ago
  1. !IF 0
  2. Copyright (c) 1994-1996 Microsoft Corporation
  3. Module Name:
  4. mipsmk.inc
  5. Abstract:
  6. This module contains the MIPs specific build controls. It is included
  7. by makefile.def.
  8. Revision History:
  9. !ENDIF
  10. #
  11. # Mips option control
  12. #
  13. !undef USE_MAPSYM
  14. UMBASE=$(UMBASE:*=mips)
  15. UMLIBS=$(UMLIBS:*=mips)
  16. NTRES=$(NTRES:*=mips)
  17. UMRES=$(UMRES:*=mips)
  18. UMOBJS=$(UMOBJS:*=mips)
  19. LINKLIBS=$(LINKLIBS:*=mips)
  20. GDI_DRIVER_LIBS=$(GDI_DRIVER_LIBS:*=mips)
  21. DLLBASE=$(DLLBASE:*=mips)
  22. DLLDEF=$(DLLDEF:*=mips)
  23. MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS:*=mips)
  24. TARGET=$(TARGET:*=mips)
  25. DYNLINK_LIB=$(DYNLINK_LIB:*=mips)
  26. TARGETEXEFILES=$(TARGETEXEFILES:*=mips)
  27. TARGETLIBFILES=$(TARGETLIBFILES:*=mips)
  28. TARGETOBJFILES=$(TARGETOBJFILES:*=mips)
  29. UMOBJFILES=$(UMOBJFILES:*=mips)
  30. UMEXEFILES=$(UMEXEFILES:*=mips)
  31. HEADERFILE=$(HEADERFILE:*=mips)
  32. HEADEROBJNAME=$(HEADEROBJNAME:*=mips)
  33. HEADEROBJ=$(HEADEROBJ:*=mips)
  34. PRECOMPILED=$(PRECOMPILED:*=mips)
  35. PRECOMPILED_CXX=$(PRECOMPILED_CXX:*=mips)
  36. PRECOMPILED_TARGET=$(PRECOMPILED_TARGET:*=mips)
  37. MFC_STATIC_LIB=$(MFC_STATIC_LIB:*=mips)
  38. CRT_LIB_PATH=$(CRT_LIB_PATH:*=mips)
  39. SDK_LIB_PATH=$(SDK_LIB_PATH:*=mips)
  40. ORDER=$(ORDER:*=mips)
  41. !ifdef NTTARGETFILES
  42. NTTARGETFILES=$(NTTARGETFILES:*=mips)
  43. !endif
  44. !ifdef NTTARGETFILE0
  45. NTTARGETFILE0=$(NTTARGETFILE0:*=mips)
  46. !endif
  47. !ifdef NTTARGETFILE1
  48. NTTARGETFILE1=$(NTTARGETFILE1:*=mips)
  49. !endif
  50. !IF "$(GPSIZE)" != "0"
  51. !ifdef DEBUG_CRTS
  52. LIBC_LIB=$(SDK_LIB_PATH)\smalld.lib $(LIBC_LIB)
  53. !else
  54. LIBC_LIB=$(SDK_LIB_PATH)\small.lib $(LIBC_LIB)
  55. !endif
  56. LINKGPSIZE=-gpsize:$(GPSIZE)
  57. !ENDIF
  58. LINKER_FLAGS = $(LINKER_FLAGS) -merge:.xdata=.rdata
  59. MIPS_ENDIAN=MIPSEL
  60. ENTRY_SUFFIX=
  61. GDI_ENTRY_SUFFIX=
  62. !IFDEF MIPS_WARNING_LEVEL
  63. MSC_WARNING_LEVEL=$(MIPS_WARNING_LEVEL)
  64. !ENDIF
  65. !ifdef MIPS_PERFFLAGS
  66. PERFFLAGS = $(MIPS_PERFFLAGS)
  67. !endif
  68. DEFAULT_MSC_OPT = $(DEFAULT_MSC_OPT:/Oxs=/Ox)
  69. # Set MSC_OPTIMIZATION.
  70. # Order of precedence:
  71. # Platform specific override
  72. # Environment variable
  73. # System Default
  74. !if defined(MIPS_OPTIMIZATION)
  75. MSC_OPTIMIZATION=$(MIPS_OPTIMIZATION)
  76. !elseif !defined(MSC_OPTIMIZATION)
  77. MSC_OPTIMIZATION=$(DEFAULT_MSC_OPT)
  78. !endif
  79. DBGFLAGS=$(DBGFLAGS) $(MSC_OPTIMIZATION)
  80. !IFDEF MIPS_CPPFLAGS
  81. MSC_CPPFLAGS=$(MIPS_CPPFLAGS)
  82. !ENDIF
  83. #
  84. # Now a bunch of MIPS stuff
  85. #
  86. !ifndef USE_PDB_TO_COMPILE
  87. DBGFLAGS=$(DBGFLAGS:/Zi=-Z7)
  88. DBGFLAGS=$(DBGFLAGS:-Zi=-Z7)
  89. !else
  90. ! if "$(TARGETTYPE)" == "LIBRARY"
  91. DBGFLAGS=$(DBGFLAGS) /Fd$(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).pdb
  92. ! else
  93. DBGFLAGS=$(DBGFLAGS) /Fd$(MAKEDIR)\$(_OBJ_DIR)\mips^\
  94. ! endif
  95. !endif
  96. !ifdef BROWSER_INFO
  97. DBGFLAGS=$(DBGFLAGS) /FR$(MAKEDIR)\$(_OBJ_DIR)\mips^\
  98. !endif
  99. !IFDEF NTBBT
  100. DBGFLAGS=$(DBGFLAGS) /Z7
  101. LINKER_FLAGS=$(LINKER_FLAGS) -debug:full -debugtype:cv,fixup
  102. USE_PDB=1
  103. !ENDIF
  104. !IFNDEF MIPS_R3000
  105. MIPS_CPU=-DR4000 -D_M_MRX000=4000
  106. MIPS_TRAP_FILE=x4trap.obj
  107. !ELSE
  108. MIPS_CPU=-DR3000 -D_M_MRX000=3000
  109. MIPS_TRAP_FILE=x3trap.obj
  110. !ENDIF
  111. MIPS_ASM_DEFINES=$(MIPS_ASMCPP)
  112. ENV_DEFINES=$(LIBC_DEFINES) $(C_DEFINES) $(NET_C_DEFINES) $(MSC_CPPFLAGS) $(NTCPPFLAGS)
  113. STD_DEFINES=-DENABLE_RESTRICTED -DMIPS=1 -D_MIPS_=1 -D$(MIPS_ENDIAN) -DNO_EXT_KEYS -DCONDITION_HANDLING=1 $(STD_DEFINES)
  114. STDFLAGS=-c
  115. MS_MIPS=1
  116. !if 0
  117. # Enable when /GF and /cbstring are tested together
  118. ! ifdef NO_READONLY_STRINGS
  119. STRING_POOLING = /Gf
  120. ! else
  121. STRING_POOLING = /GF
  122. ! endif
  123. !else
  124. # STRING_POOLING = /Gf
  125. STRING_POOLING=
  126. !endif
  127. !ifdef USE_NATIVE_EH
  128. EH_FLAGS=/GX /GR
  129. !else
  130. EH_FLAGS=/GX- /GR-
  131. !endif
  132. !ifndef DOWNLEVEL_COMPILE
  133. DOWNLEVEL_COMPILE = 0
  134. !endif
  135. !if $(DOWNLEVEL_COMPILE)
  136. MIPS3_INSTR = -QMmips2
  137. MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS) $(SDK_LIB_PATH)\tlssup35.obj
  138. !else
  139. MIPS3_INSTR = -QMmips3 -d2QMGtlsa
  140. !endif
  141. MSC_C_COMPILER_NAME=cl -nologo
  142. CDEFINES=$(STD_DEFINES) $(MIPS_CPU) $(TARGET_DBG_DEFINES) $(ENV_DEFINES)
  143. CFLAGS=$(MIPS_FLAGS) $(NTMIPSFLAGS) $(STDFLAGS) $(DBGFLAGS) $(PERFFLAGS) $(USER_C_FLAGS)
  144. AFLAGS=-Gy $(MIPS_FLAGS) $(NTMIPSFLAGS) $(STDFLAGS) $(DBGFLAGS) $(PERFFLAGS) $(MIPS3_INSTR)
  145. MIPS_CDEFINES=$(CDEFINES)
  146. MIPS_CFLAGS=$(CFLAGS) -Zel -Zp8 -Gy $(MSC_WARNING_LEVEL) -QMOb4000 $(MIPS3_INSTR) $(CBSTRING) $(EH_FLAGS) $(STRING_POOLING) -Gt$(GPSIZE)
  147. MIPS_CFLAGS=$(MIPS_CFLAGS:-Qmips=-QM)
  148. C_PREPROCESSOR_NAME = $(MSC_C_COMPILER_NAME)
  149. C_COMPILER_NAME = $(MSC_C_COMPILER_NAME)
  150. CXX_COMPILER_NAME = $(MSC_C_COMPILER_NAME)
  151. MIPS_ASSEMBLER_NAME = $(MSC_C_COMPILER_NAME)
  152. GLOBAL_C_FLAGS = -Imips\ -I. $(INCPATH0) $(CDEFINES) $(MIPS_CFLAGS) \
  153. -DFPO=1 -D__stdcall= -D__cdecl= -D_LANGUAGE_C -DLANGUAGE_C $(MFC_FLAGS)
  154. NP_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(COMPILER_WARNINGS)
  155. C_COMPILER_FLAGS = $(NP_COMPILER_FLAGS) $(PRECOMPILED)
  156. CXX_COMPILER_FLAGS = $(NP_COMPILER_FLAGS) $(PRECOMPILED_CXX)
  157. C_PREPROCESSOR_FLAGS = $(GLOBAL_C_FLAGS) -EP -Tc
  158. C_PREPROCESSOR = $(C_PREPROCESSOR_NAME) $(C_PREPROCESSOR_FLAGS)
  159. C_COMPILER = $(C_COMPILER_NAME) $(C_COMPILER_FLAGS)
  160. CXX_COMPILER = $(CXX_COMPILER_NAME) $(CXX_COMPILER_FLAGS)
  161. ECHO_MSG=ClMips $< " $(C_COMPILER) "
  162. ECHO_CXX_MSG=ClMips $< " $(CXX_COMPILER) "
  163. ECHO_PRECOMPILED_MSG1=CpMips $(PRECOMPILED_INCLUDE) \
  164. "$(C_COMPILER_NAME) $(PRECOMPILED_FLAG) $(PRECOMPILED_SOURCEFILE) \
  165. $(C_COMPILER_FLAGS) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ)"
  166. ECHO_PRECOMPILED_MSG2=CpMips $(PRECOMPILED_INCLUDE) \
  167. "$(C_COMPILER_NAME) $(PRECOMPILED_FLAG) \
  168. $(C_COMPILER_FLAGS) /Yl$(TARGETNAME) /Yc$(?F) $(HEADERFILE) $(HEADEROBJ)"
  169. MIPS_CRFILTER=echo SHOULDN'T NEED TO CRFILTER THIS!
  170. !if $(FREEBUILD)
  171. !IFNDEF MIPS_ENABLE_DIVIDE_CHECK
  172. MIPS_CFLAGS=$(MIPS_CFLAGS) -d2aNoDivCheck
  173. !ENDIF
  174. !ENDIF
  175. #
  176. # Use Mips MCL for assembler files.
  177. #
  178. MIPS_ASSEMBLER_FLAGS = -nologo -Gt$(GPSIZE) -Ge -c $(MIPS_CPU_SWITCHES) \
  179. -Imips\ -I. $(INCPATH0) $(CDEFINES) \
  180. $(AFLAGS) -D_LANGUAGE_ASSEMBLY
  181. MIPS_ASSEMBLER = $(MIPS_ASSEMBLER_NAME) $(MIPS_ASSEMBLER_FLAGS)
  182. {..\mips\}.s{$(_OBJ_DIR)\mips\}.obj:
  183. @-erase $@ >nul 2>&1
  184. @echo AsMips $< " $(MIPS_ASSEMBLER) "
  185. @$(MIPS_ASSEMBLER_NAME) @<< -Fo$(MAKEDIR)\$@ $<
  186. $(MIPS_ASSEMBLER_FLAGS: =
  187. )
  188. <<NOKEEP
  189. {mips\}.s{$(_OBJ_DIR)\mips\}.obj:
  190. @-erase $@ >nul 2>&1
  191. @echo AsMips $< " $(MIPS_ASSEMBLER) $(MIPS_ASSEMBLER_FLAGS)"
  192. @$(MIPS_ASSEMBLER_NAME) @<< -Fo$(MAKEDIR)\$@ $<
  193. $(MIPS_ASSEMBLER_FLAGS: =
  194. )
  195. <<NOKEEP
  196. !IFDEF CAIRO_PRODUCT
  197. !IFDEF _CAIROMIPSTREE
  198. _NTTREE=$(_CAIROMIPSTREE)
  199. _NTTREE_NO_SPLIT=$(_CAIROMIPSTREE_NS)
  200. !ENDIF
  201. !ELSEIFDEF _NTMIPSTREE
  202. _NTTREE=$(_NTMIPSTREE)
  203. _NTTREE_NO_SPLIT=$(_NTMIPSTREE_NS)
  204. !ENDIF
  205. !IFDEF _NTMIPSLIBS
  206. _NTLIBS=$(_NTMIPSLIBS)
  207. !ENDIF
  208. COPYDST=$(MIPSCOPYDST)
  209. LIB_COPY=ntmipscp.cmd
  210. NTTEST_LINK_OPTIONS= -base:0x10000 -entry:KiSystemStartup