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.

203 lines
5.1 KiB

  1. !IFNDEF LANGUAGE
  2. LANGUAGE=usa
  3. !ENDIF
  4. #
  5. # BOOT_LIB_DIR is the relative path to boot.lib.
  6. #
  7. $(O)\msgs.mc : ..\msgs.$(LANGUAGE)
  8. copy $** $@
  9. !IF $(386)
  10. !IFNDEF BOOT_LIB_DIR
  11. ENTRYPOINT=-entry:NtProcessStartup@4
  12. LDR_NAME=setupldr$(DBG_LDR).exe
  13. BOOT_LIB_DIR=daytona$(DBG_LDR)
  14. !ENDIF
  15. SETUPLDR_LIBS= \
  16. $(O)\setupldr.lib \
  17. $(O)\setupldr.res \
  18. $(PROJECT_ROOT)\boot\lib\$(BOOT_LIB_DIR)\$(O)\boot.lib \
  19. $(PROJECT_ROOT)\boot\bd\daytona$(DBG_LDR)\$(O)\bd.lib \
  20. $(PROJECT_ROOT)\boot\tftplib\$(O)\tftplib.lib \
  21. $(PROJECT_ROOT)\boot\bootssp\boot\$(O)\bootssp.lib \
  22. $(PROJECT_ROOT)\ntos\ke\up\$(O)\ke.lib \
  23. $(PROJECT_ROOT)\ntos\rtl\boot$(DBG_LDR)\$(O)\bldrrtl$(DBG_LDR).lib \
  24. $(PROJECT_ROOT)\ntos\config\boot\$(O)\bconfig.lib \
  25. $(DS_LIB_PATH)\rsa32.lib \
  26. $(SDK_LIB_PATH)\fdi.lib \
  27. $(SDK_LIB_PATH)\libcntpr.lib \
  28. $(O)\link.rsp : ..\makefile.inc
  29. type << > $@
  30. -base:0x300000
  31. -debug
  32. $(ENTRYPOINT)
  33. -fixed
  34. -ignore:4001
  35. -incremental:no
  36. -map
  37. -nodefaultlib
  38. -opt:ref
  39. -opt:icf
  40. -subsystem:native
  41. $(LINK_TIME_CODE_GENERATION_LINKER_FLAGS)
  42. $(LINK_LIB_IGNORE_FLAG)
  43. $(SETUPLDR_LIBS)
  44. <<NOKEEP
  45. $(O)\setupldr.res: $(O)\msgs.mc
  46. $(O)\$(LDR_NAME): $(SETUPLDR_LIBS) makefile.inc $(O)\link.rsp
  47. $(LINK_NAME) -out:$@ @$(O)\link.rsp
  48. !IFNDEF NTVERSION
  49. STARTUP=i386\startup\a20.asm \
  50. i386\startup\abios.inc \
  51. i386\startup\abiosa.asm \
  52. i386\startup\backend.asm \
  53. i386\startup\constant.h \
  54. i386\startup\display.c \
  55. i386\startup\eisac.c \
  56. i386\startup\eisaa.asm \
  57. i386\startup\eisa.h \
  58. i386\startup\eisa.inc \
  59. i386\startup\exp.asm \
  60. i386\startup\global.h \
  61. i386\startup\macro.inc \
  62. i386\startup\main.c \
  63. i386\startup\memmap.h \
  64. i386\startup\memmap.inc \
  65. i386\startup\su.asm \
  66. i386\startup\su.h \
  67. i386\startup\su.inc \
  68. i386\startup\sudata.asm \
  69. i386\startup\trap.asm \
  70. i386\startup\trapdump.c \
  71. i386\startup\types.h
  72. !ENDIF
  73. #
  74. # STARTUP_DIR is the relative path to startup.com.
  75. # All languages use their own startup.com,
  76. # except FE langauges which use the US version when
  77. # creating setupldr.bin.
  78. #
  79. !IFNDEF STARTUP_DIR
  80. STARTUP_DIR=$(ALT_PROJECT)
  81. !ENDIF
  82. $(O)\setupldr$(DBG_LDR).bin: $(O)\setupldr$(DBG_LDR).exe ..\..\startup\$(STARTUP_DIR)\$(_OBJ_DIR)\i386\startup.com makefile.inc
  83. -copy $(O)\setupldr$(DBG_LDR).exe $(O)\setupldr.spl
  84. splitsym -a $(O)\setupldr.spl
  85. -copy /b ..\..\startup\$(STARTUP_DIR)\$(_OBJ_DIR)\i386\startup.com+$(O)\setupldr.spl $@
  86. -del /q $(O)\setupldr.dbg
  87. !ELSE IF $(IA64)
  88. EFI_ROOT=$(PROJECT_ROOT)\efiutil\sdk
  89. !if $(IA64)
  90. LIBSRC=sal64
  91. MACH=IA64
  92. !else
  93. LIBSRC=nt32
  94. MACH=x86
  95. !endif
  96. #Add in -fixed if debugging with an ITP to get a known base
  97. SETUPLDR_LIBS=\
  98. $(O)\setupldr.lib \
  99. $(O)\setupldr.res \
  100. $(PROJECT_ROOT)\boot\lib\daytona$(DBG_LDR)\$(O)\boot.lib \
  101. $(PROJECT_ROOT)\boot\bd\daytona$(DBG_LDR)\$(O)\bd.lib \
  102. $(PROJECT_ROOT)\boot\efi\daytona$(DBG_LDR)\$(O)\efi.lib \
  103. $(PROJECT_ROOT)\boot\tftplib\$(O)\tftplib.lib \
  104. $(PROJECT_ROOT)\boot\bootssp\boot\$(O)\bootssp.lib \
  105. $(PROJECT_ROOT)\ntos\ke\up\$(O)\ke.lib \
  106. $(PROJECT_ROOT)\ntos\ex\up\$(O)\ex.lib \
  107. $(PROJECT_ROOT)\ntos\rtl\boot$(DBG_LDR)\$(O)\bldrrtl$(DBG_LDR).lib \
  108. $(PROJECT_ROOT)\ntos\config\boot\$(O)\bconfig.lib \
  109. $(DS_LIB_PATH)\rsa32.lib \
  110. $(SDK_LIB_PATH)\fdi.lib \
  111. $(SDK_LIB_PATH)\libcntpr.lib \
  112. $(DDK_LIB_PATH)\hal.lib
  113. $(O)\link.rsp : ..\makefile.inc
  114. type << > $@
  115. -subsystem:EFI_APPLICATION
  116. -nodefaultlib
  117. -debug:full
  118. -last:.rdata
  119. -last:.pdata
  120. -last:.comment
  121. -machine:IA64
  122. -base:0x1040000
  123. -opt:ref
  124. -opt:icf
  125. -entry:main
  126. -map
  127. -ignore:4049,4001,4217
  128. $(LINK_TIME_CODE_GENERATION_LINKER_FLAGS)
  129. $(LINK_LIB_IGNORE_FLAG)
  130. $(SETUPLDR_LIBS)
  131. <<NOKEEP
  132. $(O)\setupldr.res: $(O)\msgs.mc
  133. $(O)\setupldr$(DBG_LDR).efi: $(SETUPLDR_LIBS) makefile.inc $(O)\link.rsp
  134. -$(LINK_NAME) -out:$@ @$(O)\link.rsp
  135. $(O)\setupldr.dbg: $(O)\setupldr$(DBG_LDR).efi
  136. -pe2dbg $? $@
  137. SETUP_LIB_COMPONENTS = \
  138. $(PROJECT_ROOT)\boot\lib\daytona$(DBG_LDR)\$(O)\boot.lib \
  139. $(PROJECT_ROOT)\boot\efi\daytona$(DBG_LDR)\$(O)\efi.lib
  140. !ELSE
  141. SETUPLDR_LIBS=\
  142. $(O)\setupldr.lib \
  143. $(O)\setupldr.res \
  144. $(PROJECT_ROOT)\boot\lib\daytona$(DBG_LDR)\$(O)\boot.lib \
  145. $(PROJECT_ROOT)\boot\bd\daytona$(DBG_LDR)\$(O)\bd.lib \
  146. $(PROJECT_ROOT)\boot\tftplib\$(O)\tftplib.lib \
  147. $(PROJECT_ROOT)\boot\bootssp\boot\$(O)\bootssp.lib \
  148. $(PROJECT_ROOT)\ntos\ke\up\$(O)\ke.lib \
  149. $(PROJECT_ROOT)\ntos\rtl\boot$(DBG_LDR)\$(O)\bldrrtl$(DBG_LDR).lib \
  150. $(DS_LIB_PATH)\rsa32.lib \
  151. $(SDK_LIB_PATH)\fdi.lib \
  152. $(SDK_LIB_PATH)\libcntpr.lib
  153. $(O)\link.rsp : ..\makefile.inc
  154. type << >$@
  155. -rom
  156. -nodefaultlib
  157. -debugtype:cv
  158. -debug:full
  159. -align:0x200
  160. -fixed
  161. !if $(ALPHA)
  162. -base:0x80600000
  163. !elseif $(AXP64)
  164. -base:0xFFFFFFFF80600000
  165. !endif
  166. -entry:SlInit
  167. -map
  168. -opt:noicf
  169. $(LINK_TIME_CODE_GENERATION_LINKER_FLAGS)
  170. $(LINK_LIB_IGNORE_FLAG)
  171. $(SETUPLDR_LIBS)
  172. <<NOKEEP
  173. $(O)\setupldr.res: $(O)\msgs.mc
  174. $(O)\setupldr$(DBG_LDR): $(SETUPLDR_LIBS) makefile.inc $(O)\link.rsp
  175. -$(LINK_NAME) -out:$@ @$(O)\link.rsp
  176. !ENDIF