Fixed an issue which will cause wrong library instances used for constructor re-ordering.
[people/mcb30/basetools.git] / toolsetup.bat
index edf1efd..1429983 100755 (executable)
@@ -1,5 +1,5 @@
 @REM\r
-@REM Copyright (c) 2006, Intel Corporation\r
+@REM Copyright (c) 2007, Intel Corporation\r
 @REM All rights reserved. This program and the accompanying materials\r
 @REM are licensed and made available under the terms and conditions of the BSD License\r
 @REM which accompanies this distribution.  The full text of the license may be found at\r
@@ -15,126 +15,138 @@ REM ##############################################################
 REM # You should not have to modify anything below this line\r
 REM #\r
 \r
-if /I "%1"=="-h" goto usage\r
-if /I "%1"=="-help" goto usage\r
-if /I "%1"=="--help" goto usage\r
-if /I "%1"=="/h" goto usage\r
-if /I "%1"=="/?" goto usage\r
-if /I "%1"=="/help" goto usage\r
-\r
-if /I "%1"=="Reconfig" (\r
-  if NOT "%2"=="" set EDK_TOOLS_PATH=%2\r
-) else (\r
-  if NOT "%1"=="" set EDK_TOOLS_PATH=%1\r
-)\r
-\r
 REM\r
-REM Check the required system environment variables\r
+REM check the EDK_TOOLS_PATH\r
 REM\r
-\r
 :check_vc\r
-if defined VCINSTALLDIR goto setup_workspace\r
+if defined VCINSTALLDIR goto check_path\r
 if defined VS71COMNTOOLS (\r
   call "%VS71COMNTOOLS%\vsvars32.bat"\r
 ) else (\r
   echo.\r
-  echo !!!WARNING!!! Cannot find Visual Studio !!!\r
+  echo !!! WARNING !!!! Cannot find Visual Studio !!!\r
   echo.\r
 )\r
 \r
-:setup_workspace\r
+:check_path\r
+if not defined PYTHON_FREEZER_PATH set PYTHON_FREEZER_PATH=C:\cx_Freeze\r
+if not exist %PYTHON_FREEZER_PATH% goto no_freezer_path\r
+\r
+pushd .\r
+cd %~dp0\r
+set BASE_TOOLS_PATH=%CD%\r
+popd\r
+\r
+if not defined EDK_TOOLS_PATH set EDK_TOOLS_PATH=%BASE_TOOLS_PATH%\r
+mkdir %EDK_TOOLS_PATH%\Bin\Win32\r
+\r
+if not defined ORIGINAL_PATH set ORIGINAL_PATH=%PATH%\r
+set PATH=%EDK_TOOLS_PATH%\Bin\Win32;%EDK_TOOLS_PATH%\Bin;%ORIGINAL_PATH%\r
+\r
+:path_ok\r
+\r
+if /I "%1"=="-h" goto Usage\r
+if /I "%1"=="-help" goto Usage\r
+if /I "%1"=="--help" goto Usage\r
+if /I "%1"=="/h" goto Usage\r
+if /I "%1"=="/?" goto Usage\r
+if /I "%1"=="/help" goto Usage\r
+if /I "%1"=="build" goto build\r
+if /I "%1"=="rebuild" goto rebuild\r
+if NOT "%1"=="" goto Usage\r
+\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\BootSectImage.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\build.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\EfiLdrImage.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\EfiRom.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenBootSector.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFds.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFfs.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFv.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenFw.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenPage.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenSec.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\GenVtf.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\MigrationMsa2Inf.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\Split.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\TargetTool.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\TianoCompress.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\Trim.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\VfrCompile.exe" goto build\r
+IF NOT EXIST "%EDK_TOOLS_PATH%\Bin\Win32\Fpd2Dsc.exe" goto build\r
+\r
+:skipbuild\r
+goto end\r
+\r
+:rebuild\r
+pushd .\r
+cd %BASE_TOOLS_PATH%\Source\C\r
+call nmake cleanall\r
+del /f /q %BASE_TOOLS_PATH%\Bin\Win32\*.*\r
+popd\r
+\r
+:build\r
 REM\r
-REM check the EDK_TOOLS_PATH\r
+REM Start to build the Framework Tools\r
 REM\r
-if not defined EDK_TOOLS_PATH goto no_tools_path\r
-if exist %EDK_TOOLS_PATH% goto set_path\r
+\r
 echo.\r
-echo !!!WARNING!!! %EDK_TOOLS_PATH% doesn't exist. %WORKSPACE%\BaseTools will be used !!!\r
+echo Building the C Tools\r
 echo.\r
 \r
-:no_tools_path\r
-if exist %WORKSPACE%\BaseTools (\r
-  set EDK_TOOLS_PATH=%WORKSPACE%\BaseTools\r
-) else (\r
-  echo.\r
-  echo !!!WARNING!!! No tools path found. Please set EDK_TOOLS_PATH !!!\r
-  echo.\r
-  goto end\r
-)\r
-\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
-set WORKSPACE_TOOLS_PATH=%EDK_TOOLS_PATH%\r
-goto path_ok\r
+pushd .\r
+cd %BASE_TOOLS_PATH%\Source\C\r
+call nmake\r
+popd\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
-set WORKSPACE_TOOLS_PATH=%EDK_TOOLS_PATH%\r
-echo Resetting the PATH variable to include the EDK_TOOLS_PATH for this WORKSPACE\r
-\r
-:path_ok\r
-echo           PATH = %PATH%\r
 echo.\r
-echo      WORKSPACE = %WORKSPACE%\r
-echo EDK_TOOLS_PATH = %EDK_TOOLS_PATH%\r
+echo Building the Python Tools\r
 echo.\r
 \r
-REM\r
-REM copy *.template to %WORKSPACE%\Conf\r
-REM\r
-if NOT exist %WORKSPACE%\Conf (\r
-  mkdir %WORKSPACE%\Conf\r
-) else (\r
-  if /I "%1"=="Reconfig" (\r
-    echo.\r
-    echo  Over-writing the files in the WORKSPACE\Conf directory\r
-    echo  using the default template files\r
-    echo.\r
-  )\r
-)\r
-if NOT exist %WORKSPACE%\Conf\FrameworkDatabase.db (\r
-  echo copying ... FrameworkDatabase.template to %WORKSPACE%\Conf\FrameworkDatabase.db\r
-  copy %EDK_TOOLS_PATH%\Conf\FrameworkDatabase.template %WORKSPACE%\Conf\FrameworkDatabase.db > nul\r
-) else (\r
-  if /I "%1"=="Reconfig" copy /Y %EDK_TOOLS_PATH%\Conf\FrameworkDatabase.template %WORKSPACE%\Conf\FrameworkDatabase.db > nul\r
-)\r
-if NOT exist %WORKSPACE%\Conf\target.txt (\r
-  echo copying ... target.template to %WORKSPACE%\Conf\target.txt\r
-  copy %EDK_TOOLS_PATH%\Conf\target.template %WORKSPACE%\Conf\target.txt > nul\r
-) else (\r
-  if /I "%1"=="Reconfig" copy /Y %EDK_TOOLS_PATH%\Conf\target.template %WORKSPACE%\Conf\target.txt > nul\r
-)\r
-if NOT exist %WORKSPACE%\Conf\tools_def.txt (\r
-  echo copying ... tools_def.template to %WORKSPACE%\Conf\tools_def.txt\r
-  copy %EDK_TOOLS_PATH%\Conf\tools_def.template %WORKSPACE%\Conf\tools_def.txt > nul\r
-) else (\r
-  if /I "%1"=="Reconfig" copy /Y %EDK_TOOLS_PATH%\Conf\tools_def.template %WORKSPACE%\Conf\tools_def.txt > nul\r
-)\r
-if NOT exist %WORKSPACE%\Conf\build_rule.txt (\r
-  echo copying ... build_rule.template to %WORKSPACE%\Conf\build_rule.txt\r
-  copy %EDK_TOOLS_PATH%\Conf\build_rule.template %WORKSPACE%\Conf\build_rule.txt > nul\r
-) else (\r
-  if /I "%1"=="Reconfig" copy /Y %EDK_TOOLS_PATH%\Conf\build_rule.template %WORKSPACE%\Conf\build_rule.txt > nul\r
-)\r
+set PYTHONPATH=%BASE_TOOLS_PATH%\Source\Python\r
+pushd .\r
 \r
-REM\r
-REM copy XMLSchema to %EDK_TOOLS_PATH%\Conf\XMLSchema\r
-REM\r
-REM echo copying ... XMLSchema to %EDK_TOOLS_PATH%\Conf\XMLSchema\r
-REM xcopy %WORKSPACE%\Conf\XMLSchema %EDK_TOOLS_PATH%\Conf\XMLSchema /S /I /D /F /Q > nul\r
+echo Generating build.exe\r
+cd %BASE_TOOLS_PATH%\Source\Python\build\r
+%PYTHON_FREEZER_PATH%\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8 --install-dir=%EDK_TOOLS_PATH%\Bin\Win32 build.py > NUL\r
 \r
-REM\r
-REM Done!!!\r
-REM\r
+echo Generating GenFds.exe\r
+cd %BASE_TOOLS_PATH%\Source\Python\GenFds\r
+%PYTHON_FREEZER_PATH%\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8 --install-dir=%EDK_TOOLS_PATH%\Bin\Win32 GenFds.py > NUL\r
+\r
+echo Generating Trim.exe\r
+cd %BASE_TOOLS_PATH%\Source\Python\Trim\r
+%PYTHON_FREEZER_PATH%\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8 --install-dir=%EDK_TOOLS_PATH%\Bin\Win32 Trim.py > NUL\r
+\r
+echo Generating MigrationMsa2Inf.exe\r
+cd %BASE_TOOLS_PATH%\Source\Python\MigrationMsa2Inf\r
+%PYTHON_FREEZER_PATH%\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8 --install-dir=%EDK_TOOLS_PATH%\Bin\Win32 MigrationMsa2Inf.py > NUL\r
+\r
+echo Generating Fpd2Dsc.exe\r
+cd %BASE_TOOLS_PATH%\Source\Python\Fpd2Dsc\r
+%PYTHON_FREEZER_PATH%\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_8 --install-dir=%EDK_TOOLS_PATH%\Bin\Win32 Fpd2Dsc.py > NUL\r
+\r
+popd\r
+echo Done!\r
 goto end\r
 \r
-:usage\r
+:no_freezer_path\r
+echo.\r
+echo !!!WARNING!!! No cx_Freeze path found. Please install cx_Freeze and set PYTHON_FREEZER_PATH.\r
 echo.\r
-echo  "Usage: %0 [/? | /h | /help | -h | -help | --help] [Reconfig] [tools_path]"\r
+goto end\r
+\r
+:no_tools_path\r
+echo.\r
+echo !!!WARNING!!! No tools path found. Please check and set EDK_TOOLS_PATH.\r
+echo.\r
+goto end\r
+\r
+:Usage\r
 echo.\r
-echo                      tools_path       Tools' path. EDK_TOOLS_PATH will be set to this path.\r
+echo  Usage: %0 [build] [rebuild]\r
+echo         build:    Incremental build, only build those updated tools; \r
+echo         rebuild:  Rebuild all tools neither updated or not; \r
 echo.\r
 \r
 :end\r