Source code of Windows XP (NT5)
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.

216 lines
6.1 KiB

  1. # The CRT can't be built with link-time code generation because of
  2. # LNK1237: "code gen introduced reference to non-native symbol" for intrinsics.
  3. FORCENATIVEOBJECT = 1
  4. TARGETPATH=obj
  5. SOURCES =
  6. LINKER_FLAGS=-ignore:4006
  7. LIBRARIAN_FLAGS=-ignore:4006
  8. !if 0
  9. !if $(FREEBUILD)
  10. D=
  11. !else
  12. D=d
  13. !endif
  14. !endif
  15. RTDLLNAME=msvcrt$(D)
  16. SYNCHRONIZE_DRAIN=1
  17. !IF "$(CRTLIBTYPE)" == "DLL"
  18. TARGETNAME=$(RTDLLNAME)
  19. TARGETTYPE=DYNLINK
  20. TARGETPATHLIB=obj
  21. LIBRARIAN_FLAGS=$(LIBRARIAN_FLAGS) -ignore:4102
  22. DLLBASE=0x10100000
  23. DLLENTRY=_CRTDLL_INIT
  24. UMTYPE=windows
  25. USE_NOLIBS=1
  26. C_DEFINES = "-DDLLNAME="$(RTDLLNAME).dll"" -DNT_BUILD
  27. DLLDEF = $(O)\ntcrt.def
  28. CONVERT_OBJS = ..\..\..\crtw32\convert\dll\$O\convert.lib
  29. DIRECT_OBJS = ..\..\..\crtw32\direct\dll\$O\direct.lib
  30. DLLSTUFF_OBJS = ..\..\..\crtw32\dllstuff\dll\$O\dllstuff.lib
  31. DOS_OBJS = ..\..\..\crtw32\dos\dll\$O\dos.lib
  32. EH_OBJS = ..\..\..\crtw32\eh\dll\$O\eh.lib
  33. EXEC_OBJS = ..\..\..\crtw32\exec\dll\$O\exec.lib
  34. HEAP_OBJS = ..\..\..\crtw32\heap\dll\$O\heap.lib
  35. HELPER_OBJS = ..\..\..\crtw32\helper\dll\$O\helper.lib
  36. LOWIO_OBJS = ..\..\..\crtw32\lowio\dll\$O\lowio.lib
  37. MBSTRING_OBJS = ..\..\..\crtw32\mbstring\dll\$O\mbstring.lib
  38. MISC_OBJS = ..\..\..\crtw32\misc\dll\$O\misc.lib
  39. STARTUP_OBJS = ..\..\..\crtw32\startup\dll\$O\startup.lib
  40. STDIO_OBJS = ..\..\..\crtw32\stdio\dll\$O\stdio.lib
  41. STRING_OBJS = ..\..\..\crtw32\string\dll\$O\string.lib
  42. TIME_OBJS = ..\..\..\crtw32\time\dll\$O\time.lib
  43. LINKLIBS = \
  44. $(CONVERT_OBJS) \
  45. $(DIRECT_OBJS) \
  46. $(DLLSTUFF_OBJS) \
  47. $(DOS_OBJS) \
  48. $(EH_OBJS) \
  49. $(EXEC_OBJS) \
  50. $(HEAP_OBJS) \
  51. $(HELPER_OBJS) \
  52. $(LOWIO_OBJS) \
  53. $(MBSTRING_OBJS) \
  54. $(MISC_OBJS) \
  55. $(STARTUP_OBJS) \
  56. $(STDIO_OBJS) \
  57. $(STRING_OBJS) \
  58. $(TIME_OBJS) \
  59. ..\..\..\fpw32\conv\dll\$O\conv.lib \
  60. ..\..\..\fpw32\tran\dll\$O\tran.lib
  61. TARGETLIBS = \
  62. $(SDK_LIB_PATH)\kernel32.lib \
  63. $(SDK_LIB_PATH)\ntdll.lib
  64. !ELSEIF "$(CRTLIBTYPE)" == "DLLLIB"
  65. TARGETNAME=$(RTDLLNAME)
  66. TARGETTYPE=LIBRARY
  67. OBJLIBFILES = \
  68. ..\..\..\crtw32\dllstuff\dlllib\$O\dllstuff.lib \
  69. ..\..\..\crtw32\eh\dlllib\$O\eh.lib \
  70. ..\..\..\crtw32\helper\dlllib\$O\helper.lib \
  71. ..\..\..\crtw32\lowio\dlllib\$O\lowio.lib \
  72. ..\..\..\crtw32\misc\dlllib\$O\misc.lib \
  73. ..\..\..\crtw32\startup\dlllib\$O\startup.lib \
  74. ..\..\..\crtw32\stdio\dlllib\$O\stdio.lib \
  75. !if $(IA64)
  76. ..\..\..\crtw32\string\dll\$(O)\_memmove.obj \
  77. ..\..\..\crtw32\string\dll\$(O)\_memset.obj \
  78. ..\..\..\crtw32\string\dll\$(O)\_memcpy.obj \
  79. !endif
  80. ..\..\..\crtw32\heap\dlllib\$O\heap.lib \
  81. ..\dll\$O\$(RTDLLNAME).lib
  82. !ELSEIF "$(CRTLIBTYPE)" == "MT"
  83. TARGETNAME=libcmt$D
  84. TARGETTYPE=LIBRARY
  85. OBJLIBFILES = \
  86. ..\..\..\crtw32\convert\mt\$O\convert.lib \
  87. ..\..\..\crtw32\direct\mt\$O\direct.lib \
  88. ..\..\..\crtw32\dos\mt\$O\dos.lib \
  89. ..\..\..\crtw32\eh\mt\$O\eh.lib \
  90. ..\..\..\crtw32\exec\mt\$O\exec.lib \
  91. ..\..\..\crtw32\helper\mt\$O\helper.lib \
  92. ..\..\..\crtw32\lowio\mt\$O\lowio.lib \
  93. ..\..\..\crtw32\mbstring\mt\$O\mbstring.lib \
  94. ..\..\..\crtw32\misc\mt\$O\misc.lib \
  95. ..\..\..\crtw32\startup\mt\$O\startup.lib \
  96. ..\..\..\crtw32\stdio\mt\$O\stdio.lib \
  97. ..\..\..\crtw32\string\mt\$O\string.lib \
  98. ..\..\..\crtw32\time\mt\$O\time.lib \
  99. ..\..\..\crtw32\heap\mt\$O\heap.lib \
  100. ..\..\..\fpw32\conv\mt\$O\conv.lib \
  101. ..\..\..\fpw32\tran\mt\$O\tran.lib
  102. !ELSEIF "$(CRTLIBTYPE)" == "ST"
  103. TARGETNAME=libc$D
  104. TARGETTYPE=LIBRARY
  105. OBJLIBFILES = \
  106. ..\..\..\crtw32\convert\st\$O\convert.lib \
  107. ..\..\..\crtw32\direct\st\$O\direct.lib \
  108. ..\..\..\crtw32\dos\st\$O\dos.lib \
  109. ..\..\..\crtw32\eh\st\$O\eh.lib \
  110. ..\..\..\crtw32\exec\st\$O\exec.lib \
  111. ..\..\..\crtw32\helper\st\$O\helper.lib \
  112. ..\..\..\crtw32\lowio\st\$O\lowio.lib \
  113. ..\..\..\crtw32\mbstring\st\$O\mbstring.lib \
  114. ..\..\..\crtw32\misc\st\$O\misc.lib \
  115. ..\..\..\crtw32\startup\st\$O\startup.lib \
  116. ..\..\..\crtw32\stdio\st\$O\stdio.lib \
  117. ..\..\..\crtw32\string\st\$O\string.lib \
  118. ..\..\..\crtw32\time\st\$O\time.lib \
  119. ..\..\..\crtw32\heap\st\$O\heap.lib \
  120. ..\..\..\fpw32\conv\st\$O\conv.lib \
  121. ..\..\..\fpw32\tran\st\$O\tran.lib
  122. !ELSEIF "$(CRTLIBTYPE)" == "STP"
  123. TARGETNAME=libcp$D
  124. TARGETTYPE=LIBRARY
  125. OBJLIBFILES = \
  126. ..\..\..\crtw32\stdcpp\stp\$O\stdcpp.lib
  127. !ELSEIF "$(CRTLIBTYPE)" == "NT"
  128. TARGETNAME=libcntpr
  129. TARGETTYPE=LIBRARY
  130. OBJLIBFILES = \
  131. ..\..\..\crtw32\convert\nt\$O\convert.lib \
  132. ..\..\..\crtw32\hack\nt\$O\hack.lib \
  133. ..\..\..\crtw32\helper\nt\$O\helper.lib \
  134. ..\..\..\crtw32\misc\nt\$O\misc.lib \
  135. ..\..\..\crtw32\startup\nt\$O\startup.lib \
  136. ..\..\..\crtw32\stdio\nt\$O\stdio.lib \
  137. ..\..\..\crtw32\string\nt\$O\string.lib \
  138. ..\..\..\fpw32\tran\nt\$O\tran.lib
  139. !ELSEIF "$(CRTLIBTYPE)" == "POSIX"
  140. TARGETNAME=libcpsx
  141. TARGETTYPE=LIBRARY
  142. OBJLIBFILES = \
  143. ..\..\..\crtw32\convert\psx\$O\convert.lib \
  144. ..\..\..\crtw32\helper\psx\$O\helper.lib \
  145. ..\..\..\crtw32\mbstring\psx\$O\mbstring.lib \
  146. ..\..\..\crtw32\misc\psx\$O\misc.lib \
  147. ..\..\..\crtw32\startup\psx\$O\startup.lib \
  148. ..\..\..\crtw32\stdio\psx\$O\stdio.lib \
  149. ..\..\..\crtw32\string\psx\$O\string.lib \
  150. ..\..\..\crtw32\time\psx\$O\time.lib \
  151. ..\..\..\crtw32\heap\psx\$O\heap.lib \
  152. ..\..\..\fpw32\conv\psx\$O\conv.lib \
  153. ..\..\..\fpw32\tran\psx\$O\tran.lib
  154. !ELSEIF "$(CRTLIBTYPE)" == "EXSUP"
  155. TARGETNAME=exsup
  156. TARGETTYPE=LIBRARY
  157. OBJLIBFILES = \
  158. ..\..\..\crtw32\misc\nt\$(O)\exsup.obj \
  159. ..\..\..\crtw32\misc\nt\$(O)\exsup2.obj \
  160. ..\..\..\crtw32\misc\nt\$(O)\exsup3.obj \
  161. ..\..\..\crtw32\misc\nt\$(O)\sehsupp.obj \
  162. ..\..\..\crtw32\misc\nt\$(O)\setjmp.obj \
  163. ..\..\..\crtw32\misc\nt\$(O)\setjmp3.obj \
  164. ..\..\..\crtw32\misc\nt\$(O)\setjmpex.obj \
  165. ..\..\..\crtw32\misc\nt\$(O)\longjmp.obj
  166. !ELSE
  167. !ERROR Unsupported Library CRTLIBTYPE: $(CRTLIBTYPE)
  168. !ENDIF
  169. TARGETEXEFILES = $(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).$(TARGETEXT)
  170. !if "$(CRTLIBTYPE)" != "DLL"
  171. PASS1_PUBLISH= \
  172. !if $(IA64) && "$(CRTLIBTYPE)" == "NT"
  173. {$(PROJECT_ROOT)\crts\libw32\lib\nt\ia64\libcntpr.lib=$(SDK_LIB_PATH)\libcntpr.lib}
  174. !else
  175. {$(TARGETPATH)\$(TARGET_DIRECTORY)\$(TARGETNAME).lib=$(SDK_LIB_PATH)\$(TARGETNAME).lib}
  176. !endif
  177. !endif