prebuild.bat 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. @REM @file
  2. @REM
  3. @REM Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
  4. @REM Copyright (c) 2021, American Megatrends International LLC.<BR>
  5. @REM SPDX-License-Identifier: BSD-2-Clause-Patent
  6. @REM
  7. @set SCRIPT_ERROR=0
  8. set /a prebuildstep=0
  9. call :check_BuildTools
  10. if %SCRIPT_ERROR% NEQ 0 GOTO :done
  11. call :setBuildEnv
  12. if %SCRIPT_ERROR% NEQ 0 GOTO :done
  13. call :createTargetTxt
  14. if %SCRIPT_ERROR% NEQ 0 GOTO :done
  15. call :genPlatformOffsetHeaderFile
  16. if %SCRIPT_ERROR% NEQ 0 GOTO :done
  17. :prebuildFinish
  18. echo.
  19. echo ACTIVE_PLATFORM = %WORKSPACE%\edk2-platforms\Platform\Intel\%BOARD_PKG%\%BOARD_NAME%\OpenBoardPkg.dsc
  20. echo EDK_TOOLS_PATH = %EDK_TOOLS_PATH%
  21. echo TARGET = %TARGET%
  22. echo TARGET_ARCH = IA32 X64
  23. echo TOOL_CHAIN_TAG = %TOOL_CHAIN_TAG%
  24. echo WORKSPACE = %WORKSPACE%
  25. echo PACKAGES_PATH = %PACKAGES_PATH%
  26. echo MAX_CONCURRENT_THREAD_NUMBER = %BUILD_MAX_CON_THREAD_NUM%
  27. echo.
  28. echo Build Path = %OUTPUT_DIR%
  29. echo.
  30. REM Remove environment variable because it's no longer needed.
  31. set BUILD_MAX_CON_THREAD_NUM=
  32. :done
  33. REM Use done label to exit batch file and run any final steps; GOTO :EOF immediately exits.
  34. EXIT /B %SCRIPT_ERROR%
  35. ::--------------------------------------------------------
  36. ::-- Function section starts below here
  37. ::--------------------------------------------------------
  38. :cleanup_check_VSTools
  39. set COMPILER_VERSION_STRING=
  40. del cloutput.txt > nul
  41. REM cleanup_check_VSTools is called below. When a label is called, 'GOTO :EOF' is used to return to caller.
  42. GOTO :EOF
  43. :check_BuildTools
  44. echo PreBuild.%prebuildstep% check_BuildTools
  45. echo ..VSTools
  46. set /a prebuildstep=%prebuildstep%+1
  47. set TOOL_CHAIN_TAG=
  48. @if not defined TOOL_CHAIN_TAG (
  49. echo.
  50. echo Prebuild: TOOL_CHAIN_TAG is not set before
  51. echo.
  52. @if defined VS140COMNTOOLS (
  53. echo.
  54. echo Set the VS2015 environment.
  55. echo.
  56. set CL_SEL=VS2015
  57. if /I "%VS140COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 14.0\Common7\Tools\" (
  58. set TOOL_CHAIN_TAG=VS2015
  59. ) else (
  60. set TOOL_CHAIN_TAG=VS2015x86
  61. )
  62. if /I "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
  63. set CL_CMDLINE="%VS140COMNTOOLS:~0,-14%VC\bin\amd64\cl.exe"
  64. ) else (
  65. set CL_CMDLINE="%VS140COMNTOOLS:~0,-14%VC\bin\cl.exe"
  66. )
  67. ) else if defined VS120COMNTOOLS (
  68. echo.
  69. echo Set the VS2013 environment.
  70. echo.
  71. set CL_SEL=VS2013
  72. if /I "%VS120COMNTOOLS%" == "C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\" (
  73. set TOOL_CHAIN_TAG=VS2013
  74. ) else (
  75. set TOOL_CHAIN_TAG=VS2013x86
  76. )
  77. if /I "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
  78. set CL_CMDLINE="%VS120COMNTOOLS:~0,-14%VC\bin\amd64\cl.exe"
  79. ) else (
  80. set CL_CMDLINE="%VS120COMNTOOLS:~0,-14%VC\bin\cl.exe"
  81. )
  82. ) else (
  83. echo.
  84. echo !!! ERROR !!! VS2015 or VS2013 not installed correctly. !!!
  85. echo.
  86. goto :ErrorExit
  87. )
  88. )
  89. echo ..iASL
  90. set CHECK_PATH_IASL=%IASL_PREFIX%
  91. if not exist %CHECK_PATH_IASL%\iasl.exe (
  92. echo.
  93. echo !!! ERROR !!! Could not find iASL compiler at %CHECK_PATH_IASL%\iasl.exe. !!!
  94. echo.
  95. set SCRIPT_ERROR=1
  96. )
  97. set CHECK_PATH_IASL=
  98. echo ..NASM
  99. set CHECK_PATH_NASM=c:\NASM
  100. if not exist %CHECK_PATH_NASM%\nasm.exe (
  101. echo.
  102. echo !!! ERROR !!! Could not find NASM compiler at %CHECK_PATH_NASM%\nasm.exe. !!!
  103. echo.
  104. set SCRIPT_ERROR=1
  105. )
  106. set CHECK_PATH_NASM=
  107. echo ..Python
  108. set CHECK_PATH_PYTHON=c:\Python27
  109. if not exist %CHECK_PATH_PYTHON%\python.exe (
  110. echo.
  111. echo !!! ERROR !!! Could not find Python at %CHECK_PATH_PYTHON%\python.exe. !!!
  112. echo.
  113. set SCRIPT_ERROR=1
  114. )
  115. set CHECK_PATH_PYTHON=
  116. set PYTHON_HOME=C:\Python27
  117. GOTO :EOF
  118. :setBuildEnv
  119. echo PreBuild.%prebuildstep% SetBuildEnv
  120. set /a prebuildstep=%prebuildstep%+1
  121. @set BOARD_PKG=PurleyOpenBoardPkg
  122. @set BOARD_NAME=BoardTiogaPass
  123. @set MAX_SOCKET=2
  124. echo.
  125. echo BOARD_NAME=%BOARD_NAME%
  126. echo BOARD_PKG=%BOARD_PKG%
  127. echo MAX_SOCKET=%MAX_SOCKET%
  128. echo TARGET=%TARGET%
  129. @set OUTPUT_DIR=%WORKSPACE%\Build\%BOARD_PKG%\%BOARD_NAME%\%TARGET%_%TOOL_CHAIN_TAG%
  130. if not exist %OUTPUT_DIR% mkdir %OUTPUT_DIR%
  131. GOTO :EOF
  132. :createTargetTxt
  133. echo PreBuild.%prebuildstep% CreateTargetTxt
  134. set /a prebuildstep=%prebuildstep%+1
  135. set /a BUILD_MAX_CON_THREAD_NUM = %NUMBER_OF_PROCESSORS%-1
  136. @REM set /a BUILD_MAX_CON_THREAD_NUM = 1
  137. findstr /V "ACTIVE_PLATFORM TARGET TARGET_ARCH TOOL_CHAIN_TAG BUILD_RULE_CONF MAX_CONCURRENT_THREAD_NUMBER" %WORKSPACE%\Conf\target.txt > %OUTPUT_DIR%\target.txt 2>NUL
  138. echo ACTIVE_PLATFORM = %WORKSPACE%/edk2-platforms/Platform/Intel/%BOARD_PKG%/%BOARD_NAME%/OpenBoardPkg.dsc >> %OUTPUT_DIR%\target.txt
  139. echo TARGET = %TARGET% >> %OUTPUT_DIR%\target.txt
  140. echo TARGET_ARCH = IA32 X64 >> %OUTPUT_DIR%\target.txt
  141. echo TOOL_CHAIN_TAG = %TOOL_CHAIN_TAG% >> %OUTPUT_DIR%\target.txt
  142. echo BUILD_RULE_CONF = Conf/build_rule.txt >> %OUTPUT_DIR%\target.txt
  143. echo MAX_CONCURRENT_THREAD_NUMBER = %BUILD_MAX_CON_THREAD_NUM% >> %OUTPUT_DIR%\target.txt
  144. if exist %WORKSPACE%\Conf\target.txt (
  145. del /f %WORKSPACE%\Conf\target.txt
  146. )
  147. move /Y %OUTPUT_DIR%\target.txt %WORKSPACE%\Conf\ > nul
  148. if not exist %OUTPUT_DIR%\X64 mkdir %OUTPUT_DIR%\X64
  149. GOTO :EOF
  150. :genPlatformOffsetHeaderFile
  151. echo.
  152. echo PreBuild.%prebuildstep% GenPlatformOffsetHeaderFile
  153. set /a prebuildstep=%prebuildstep%+1
  154. echo Info: re-generating PlatformOffset header files
  155. set PRE_BUILD_CMD_LINE=%BUILD_CMD_LINE% -D MAX_SOCKET=%MAX_SOCKET%
  156. set PRE_BUILD_LOG=%WORKSPACE%\Build\prebuild.log
  157. set PRE_BUILD_REPORT=%WORKSPACE%\Build\preBuildReport.txt
  158. echo build %PRE_BUILD_CMD_LINE% -m %BOARD_PKG%\Acpi\BoardAcpiDxe\Dsdt.inf -y %PRE_BUILD_REPORT% --log=%PRE_BUILD_LOG%
  159. call build %PRE_BUILD_CMD_LINE% -m %BOARD_PKG%\Acpi\BoardAcpiDxe\Dsdt.inf -y %PRE_BUILD_REPORT% --log=%PRE_BUILD_LOG%
  160. if %ERRORLEVEL% NEQ 0 EXIT /b %ERRORLEVEL%
  161. @REM PSYS == FIX0
  162. @REM MCTL == FIX8
  163. set AML_FILTER="\"PSYS\" .MCTL\" .FIX[0-9,A-Z]\""
  164. echo AML_FILTER=%AML_FILTER%
  165. call %PYTHON_HOME%\python.exe %WORKSPACE%\edk2-platforms\Platform\Intel\MinPlatformPkg\Tools\AmlGenOffset\AmlGenOffset.py -d --aml_filter %AML_FILTER% -o %WORKSPACE%\edk2-platforms\Platform\Intel\%BOARD_PKG%\Acpi\BoardAcpiDxe\AmlOffsetTable.c %OUTPUT_DIR%\X64\PurleyOpenBoardPkg\Acpi\BoardAcpiDxe\DSDT\OUTPUT\Dsdt\WFPPlatform.offset.h
  166. @REM Create copyright header for AML offset file
  167. (
  168. echo /** @file
  169. echo Copyright ^(c^) 2018 - 2019, Intel Corporation. All rights reserved.^<BR^>
  170. echo Copyright ^(c^) 2021, American Megatrends International LLC.^<BR^>
  171. echo SPDX-License-Identifier: BSD-2-Clause-Patent
  172. echo.
  173. echo **/
  174. echo.
  175. )> %OUTPUT_DIR%\TempCopyright.txt
  176. @REM Concatenate copyright and AmlOffsetTable, then delete temporary files
  177. copy /Y "%OUTPUT_DIR%\TempCopyright.txt" + "%WORKSPACE%\edk2-platforms\Platform\Intel\%BOARD_PKG%\Acpi\BoardAcpiDxe\AmlOffsetTable.c" "%OUTPUT_DIR%\AmlOffsetTable.c" > nul
  178. copy /Y "%OUTPUT_DIR%\AmlOffsetTable.c" "%WORKSPACE%\edk2-platforms\Platform\Intel\%BOARD_PKG%\Acpi\BoardAcpiDxe\AmlOffsetTable.c" > nul
  179. del /f %OUTPUT_DIR%\TempCopyright.txt > nul
  180. del /f %OUTPUT_DIR%\AmlOffsetTable.c > nul
  181. echo.
  182. echo GenOffset done
  183. GOTO :EOF