prebuild.bat 6.4 KB

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