]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Update edksetup.bat to support multiple workspaces
authorLiming Gao <liming.gao@intel.com>
Thu, 8 Oct 2015 09:29:09 +0000 (09:29 +0000)
committerlgao4 <lgao4@Edk2>
Thu, 8 Oct 2015 09:29:09 +0000 (09:29 +0000)
1. Update edksetup.bat and toolsetup.bat to handle PACKAGES_PATH.
   BaseTools directory may be in PACKAGES_PATH instead of WORKSAPCE.
2. Introduce EDK_TOOLS_BIN env points to the windows binary tools dir.
   Windows BaseTools Win32 may be a separate directory.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Wu Hao A <hao.a.wu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18582 6f19259b-4bc3-4df7-8a09-765794883524

BaseTools/toolsetup.bat
edksetup.bat

index 2afa8103ec7c6f64bb791482ed45487f55f1cfbc..59874c58392f7eab3edf8e72ed8e3ca658737ff0 100755 (executable)
@@ -113,30 +113,43 @@ if /I "%1"=="/?" goto Usage
 \r
 :set_PATH\r
   if defined WORKSPACE_TOOLS_PATH goto check_PATH\r
-  set PATH=%EDK_TOOLS_PATH%\Bin;%EDK_TOOLS_PATH%\Bin\Win32;%PATH%\r
+  if not defined EDK_TOOLS_BIN (\r
+    if exist %EDK_TOOLS_PATH%\Bin\Win32 (\r
+      set EDK_TOOLS_BIN=%EDK_TOOLS_PATH%\Bin\Win32\r
+    ) else (\r
+      echo.\r
+      echo !!! ERROR !!! Cannot find BaseTools Bin Win32!!!\r
+      echo Please check the directory %EDK_TOOLS_PATH%\Bin\Win32\r
+      echo Or configure EDK_TOOLS_BIN env to point Win32 directory.\r
+      echo. \r
+      goto end\r
+    )\r
+  )\r
+  set PATH=%EDK_TOOLS_BIN%;%PATH%\r
   set WORKSPACE_TOOLS_PATH=%EDK_TOOLS_PATH%\r
   goto PATH_ok\r
 \r
 :check_PATH\r
   if "%EDK_TOOLS_PATH%"=="%WORKSPACE_TOOLS_PATH%" goto PATH_ok\r
-  set PATH=%EDK_TOOLS_PATH%\Bin;%EDK_TOOLS_PATH%\Bin\Win32;%PATH%\r
+  if not defined EDK_TOOLS_BIN (\r
+    if exist %EDK_TOOLS_PATH%\Bin\Win32 (\r
+      set EDK_TOOLS_BIN=%EDK_TOOLS_PATH%\Bin\Win32\r
+    ) else (\r
+      echo.\r
+      echo !!! ERROR !!! Cannot find BaseTools Bin Win32!!!\r
+      echo Please check the directory %EDK_TOOLS_PATH%\Bin\Win32\r
+      echo Or configure EDK_TOOLS_BIN env to point Win32 directory.\r
+      echo. \r
+      goto end\r
+    )\r
+  )\r
+  set PATH=%EDK_TOOLS_BIN%;%PATH%\r
   set WORKSPACE_TOOLS_PATH=%EDK_TOOLS_PATH%\r
   echo Resetting the PATH variable to include the EDK_TOOLS_PATH for this session.\r
 \r
 :PATH_ok\r
-  echo           PATH      = %PATH%\r
-  echo.\r
-  if defined WORKSPACE (\r
-    echo      WORKSPACE      = %WORKSPACE%\r
-  )\r
-  echo EDK_TOOLS_PATH      = %EDK_TOOLS_PATH%\r
-  if defined BASE_TOOLS_PATH (\r
-    echo BASE_TOOLS_PATH     = %BASE_TOOLS_PATH%\r
-  )\r
-  echo.\r
-\r
 REM\r
-REM copy *.template to %WORKSPACE%\Conf\r
+REM copy *.template to %CONF_PATH%\r
 REM\r
 if not defined WORKSPACE (\r
    if defined RECONFIG (\r
@@ -147,49 +160,80 @@ if not defined WORKSPACE (
    goto skip_reconfig\r
 )\r
 \r
-if NOT exist %WORKSPACE%\Conf (\r
-  mkdir %WORKSPACE%\Conf\r
+set CONF_PATH=%WORKSPACE%\Conf\r
+if NOT exist %CONF_PATH% (\r
+  if defined PACKAGES_PATH (\r
+    for %%i IN (%PACKAGES_PATH%) DO (\r
+      if exist %%~fi\Conf (\r
+        set CONF_PATH=%%i\Conf\r
+        goto CopyConf\r
+      )\r
+    )\r
+  )\r
+)\r
\r
+:CopyConf\r
+if NOT exist %CONF_PATH% (\r
+  mkdir %CONF_PATH%\r
 ) else (\r
   if defined RECONFIG (\r
     echo.\r
-    echo  Over-writing the files in the WORKSPACE\Conf directory\r
+    echo  Over-writing the files in the CONF_PATH directory\r
     echo  using the default template files\r
     echo.\r
   )\r
 )\r
 \r
-if NOT exist %WORKSPACE%\Conf\target.txt (\r
-  echo copying ... target.template to %WORKSPACE%\Conf\target.txt\r
+if NOT exist %CONF_PATH%\target.txt (\r
+  echo copying ... target.template to %CONF_PATH%\target.txt\r
   if NOT exist %EDK_TOOLS_PATH%\Conf\target.template (\r
     echo Error: target.template is missing at folder %EDK_TOOLS_PATH%\Conf\\r
   )\r
-  copy %EDK_TOOLS_PATH%\Conf\target.template %WORKSPACE%\Conf\target.txt > nul\r
+  copy %EDK_TOOLS_PATH%\Conf\target.template %CONF_PATH%\target.txt > nul\r
 ) else (\r
-  if defined RECONFIG echo over-write ... target.template to %WORKSPACE%\Conf\target.txt\r
-  if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\target.template %WORKSPACE%\Conf\target.txt > nul\r
+  if defined RECONFIG echo over-write ... target.template to %CONF_PATH%\target.txt\r
+  if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\target.template %CONF_PATH%\target.txt > nul\r
 )\r
 \r
-if NOT exist %WORKSPACE%\Conf\tools_def.txt (\r
-  echo copying ... tools_def.template to %WORKSPACE%\Conf\tools_def.txt\r
+if NOT exist %CONF_PATH%\tools_def.txt (\r
+  echo copying ... tools_def.template to %CONF_PATH%\tools_def.txt\r
   if NOT exist %EDK_TOOLS_PATH%\Conf\tools_def.template (\r
     echo Error: tools_def.template is missing at folder %EDK_TOOLS_PATH%\Conf\\r
   )\r
-  copy %EDK_TOOLS_PATH%\Conf\tools_def.template %WORKSPACE%\Conf\tools_def.txt > nul\r
+  copy %EDK_TOOLS_PATH%\Conf\tools_def.template %CONF_PATH%\tools_def.txt > nul\r
 ) else (\r
-  if defined RECONFIG echo over-write ... tools_def.template to %WORKSPACE%\Conf\tools_def.txt\r
-  if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\tools_def.template %WORKSPACE%\Conf\tools_def.txt > nul\r
+  if defined RECONFIG echo over-write ... tools_def.template to %CONF_PATH%\tools_def.txt\r
+  if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\tools_def.template %CONF_PATH%\tools_def.txt > nul\r
 )\r
 \r
-if NOT exist %WORKSPACE%\Conf\build_rule.txt (\r
-  echo copying ... build_rule.template to %WORKSPACE%\Conf\build_rule.txt\r
+if NOT exist %CONF_PATH%\build_rule.txt (\r
+  echo copying ... build_rule.template to %CONF_PATH%\build_rule.txt\r
   if NOT exist %EDK_TOOLS_PATH%\Conf\build_rule.template (\r
     echo Error: build_rule.template is missing at folder %EDK_TOOLS_PATH%\Conf\\r
   )\r
-  copy %EDK_TOOLS_PATH%\Conf\build_rule.template %WORKSPACE%\Conf\build_rule.txt > nul\r
+  copy %EDK_TOOLS_PATH%\Conf\build_rule.template %CONF_PATH%\build_rule.txt > nul\r
 ) else (\r
-  if defined RECONFIG echo over-write ... build_rule.template to %WORKSPACE%\Conf\build_rule.txt\r
-  if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\build_rule.template %WORKSPACE%\Conf\build_rule.txt > nul\r
+  if defined RECONFIG echo over-write ... build_rule.template to %CONF_PATH%\build_rule.txt\r
+  if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\build_rule.template %CONF_PATH%\build_rule.txt > nul\r
+)\r
+\r
+echo           PATH      = %PATH%\r
+echo.\r
+if defined WORKSPACE (\r
+  echo      WORKSPACE      = %WORKSPACE%\r
+)\r
+if defined PACKAGES_PATH (\r
+  echo  PACKAGES_PATH      = %PACKAGES_PATH%\r
+)\r
+echo EDK_TOOLS_PATH      = %EDK_TOOLS_PATH%\r
+if defined BASE_TOOLS_PATH (\r
+  echo BASE_TOOLS_PATH     = %BASE_TOOLS_PATH%\r
+)\r
+if defined EDK_TOOLS_BIN (\r
+  echo  EDK_TOOLS_BIN      = %EDK_TOOLS_BIN%\r
 )\r
+echo      CONF_PATH      = %CONF_PATH%\r
+echo.\r
 \r
 :skip_reconfig\r
 \r
@@ -198,28 +242,26 @@ if NOT exist %WORKSPACE%\Conf\build_rule.txt (
 @REM\r
 if defined FORCE_REBUILD goto check_build_environment\r
 if defined REBUILD goto check_build_environment\r
-if not exist "%EDK_TOOLS_PATH%\Bin" goto check_build_environment\r
-\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\BootSectImage.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\build.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\EfiLdrImage.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\EfiRom.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenBootSector.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFds.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFfs.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFv.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFw.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenPage.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenSec.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenVtf.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\MigrationMsa2Inf.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\Split.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\TargetTool.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\TianoCompress.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\Trim.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\VfrCompile.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\Fpd2Dsc.exe" goto check_build_environment\r
-IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\VolInfo.exe" goto check_build_environment\r
+if not exist "%EDK_TOOLS_PATH%" goto check_build_environment\r
+\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\BootSectImage.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\build.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\EfiLdrImage.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\EfiRom.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenBootSector.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenFds.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenFfs.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenFv.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenFw.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenPage.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenSec.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenVtf.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\Split.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\TargetTool.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\TianoCompress.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\Trim.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\VfrCompile.exe" goto check_build_environment\r
+IF NOT EXIST "%EDK_TOOLS_BIN%\VolInfo.exe" goto check_build_environment\r
 \r
 goto end\r
 \r
index 25a5a6e8d7e37f11ab7f0ffd8c4f332c6e16514e..b63c29916b0622d3b319751175e67e77398807b6 100755 (executable)
@@ -42,9 +42,11 @@ if %WORKSPACE% == %CD% (
 :SetWorkSpace\r
 @REM set new workspace\r
 @REM clear EFI_SOURCE and EDK_SOURCE for the new workspace\r
-set WORKSPACE=%CD%\r
-set EFI_SOURCE=\r
-set EDK_SOURCE=\r
+if not defined WORKSPACE (\r
+  set WORKSPACE=%CD%\r
+  set EFI_SOURCE=\r
+  set EDK_SOURCE=\r
+)\r
 \r
 :ParseArgs\r
 if /I "%1"=="-h" goto Usage\r
@@ -92,8 +94,28 @@ if not defined VCINSTALLDIR (
 shift\r
 \r
 :no_nt32\r
+\r
 if /I "%1"=="NewBuild" shift\r
-set EDK_TOOLS_PATH=%WORKSPACE%\BaseTools\r
+if exist %WORKSPACE%\BaseTools (\r
+  set EDK_TOOLS_PATH=%WORKSPACE%\BaseTools\r
+) else (\r
+  if defined PACKAGES_PATH (\r
+    for %%i IN (%PACKAGES_PATH%) DO (\r
+      if exist %%~fi\BaseTools (\r
+        set EDK_TOOLS_PATH=%%~fi\BaseTools\r
+        goto checkBaseTools\r
+      )\r
+    )\r
+  ) else (\r
+    echo.\r
+    echo !!! ERROR !!! Cannot find BaseTools !!!\r
+    echo. \r
+    goto BadBaseTools\r
+  )\r
+)\r
+if exist %EDK_TOOLS_PATH%\Source set BASE_TOOLS_PATH=%EDK_TOOLS_PATH%\r
+\r
+:checkBaseTools\r
 IF NOT EXIST "%EDK_TOOLS_PATH%\toolsetup.bat" goto BadBaseTools\r
 call %EDK_TOOLS_PATH%\toolsetup.bat %*\r
 if /I "%1"=="Reconfig" shift\r