windows-nt/Source/XPSP1/NT/admin/services/drizzle/build_install.bat
2020-09-26 16:20:57 +08:00

226 lines
7.5 KiB
Batchfile

@echo off
if "%_echo%"=="1" echo on
rem -----------------------------------------------------------------------------
rem Copyright (c) Microsoft Corporation 2001
rem
rem build_install.bat
rem
rem Batch script to build the client and server MSM and MSI installs for BITS.
rem
rem build_install.bat -s <vbl04|main|private> -t <target_path>
rem
rem -? Help.
rem
rem -s <loc> Specifies the location to get the BITS binaries from. The default is
rem to get these from the VBL04 latest x86 release location. You currently
rem have three choices: vbl04, main (ntdev\release) or private (local build).
rem
rem -S <loc> Use instead of -s if you want to specify a particular path.
rem
rem -t <path> Specifies the target path where the MSMs and MSIs will be placed after
rem they are built.
rem
rem -c Only do the copy, don't rebuild the MSM/MSIs.
rem
rem Note:
rem You must include InstallShield and Common Files\InstallShield in your
rem path for this to work correctly. For example, the following (or equivalent)
rem must be in your path for iscmdbld.exe to execute properly:
rem
rem c:\Program Files\Common Files\InstallShield
rem c:\Program Files\InstallShield\Developer\System
rem c:\Program Files\InstallShield\Professional - Windows Installer Edition\System
rem -----------------------------------------------------------------------------
set CurrentPath=%CD%
set ClientPath="\\mgmtrel1\latest.tst.x86fre"
set ServerPath="\\mgmtrel1\latest.tst.x86fre"
set WinHttpPath="\\mgmtrel1\latest.tst.x86fre\asms\5100\msft\windows\winhttp"
set SymbolPath=""
set BuildMSIs="yes"
:ArgLoop
if not "%1"=="" (
echo %1
if "%1"=="-s" (
if "%2"=="vbl04" (
set ClientPath="\\mgmtrel1\latest.tst.x86fre"
set ServerPath="\\mgmtrel1\latest.tst.x86fre"
set WinHttpPath="\\mgmtrel1\latest.tst.x86fre\asms\5100\msft\windows\winhttp"
set SymbolPath="\\mgmtrel1\latest.tst.x86fre\Symbols.pri\retail\dll"
)
if "%2"=="main" (
set ClientPath="\\ntdev\release\main\usa\latest.tst\x86fre\srv\i386"
set ServerPath="\\ntdev\release\main\usa\latest.tst\x86fre\srv\i386"
set WinHttpPath="\\ntdev\release\main\usa\latest.tst\x86fre\bin\asms\5100\msft\windows\winhttp"
set SymbolPath=""
)
if "%2"=="private" (
set ClientPath="%CurrentPath%\bins\obj\i386"
set ServerPath="%CurrentPath%\bins\obj\i386"
set WinHttpPath="\\mgmtx86fre\latest\asms\5100\msft\windows\winhttp"
set SymbolPath="%CurrentPath%\bins\obj\i386"
)
shift
)
if "%1"=="-c" (
set BuildMSIs="no"
)
if "%1"=="-S" (
set ClientPath=%2
set ServerPath=%2
set WinHttpPath="\\mgmtrel1\latest.tst.x86fre\asms\5100\msft\windows\winhttp"
set SymbolPath=""
)
if "%1"=="-t" (
set TargetDir=%2
shift
)
if "%1"=="-?" (
echo "Batch script to build the client and server MSM and MSI installs for BITS.
echo "
echo "build_install.bat -s <vbl04|main|private> -t <target_path>
echo "
echo " -? Help.
echo "
echo " -s <loc> Specifies the location to get the BITS binaries from. The default is
echo " to get these from the VBL04 latest x86 release location. You currently
echo " have three choices: vbl04, main (ntdev\release) or private (local build).
echo "
echo " -S <loc> Use instead of -s if you want to specify a particular path.
echo "
echo " -t <path> Specifies the target path where the MSMs and MSIs will be placed after
echo " they are built.
echo "
echo " -c Only do the copy, don't rebuild the MSM/MSIs.
echo "
echo "Note:
echo " You must include InstallShield and Common Files\InstallShield in your
echo " path for this to work correctly. For example, the following (or equivalent)
echo " must be in your path for iscmdbld.exe to execute properly:
echo "
echo " c:\Program Files\Common Files\InstallShield
echo " c:\Program Files\InstallShield\Developer\System
echo " c:\Program Files\InstallShield\Professional - Windows Installer Edition\System
goto :eof
)
shift
goto ArgLoop
)
if "%TargetDir%"=="" set TargetDir=%_NTTREE%\BITS
rem
rem Ok, build the MSM and MSIs
rem
echo Clearing MSM cache
set MSMCache=%USERPROFILE%\My Documents\MySetups\MergeModules
if exist %MSMCache%\BITS.MSM ( del %MSMCache%\BITS.MSM )
if exist %MSMCache%\BITS_Server_Extensions.MSM ( del %MSMCache%\BITS_Server_Extensions.MSM )
if exist %MSMCache%\WinHttp_v51.MSM ( del %MSMCache%\WinHttp_v51.MSM )
echo Get BITS client binaries from %ClientPath%
echo Get BITS server binaries from %ServerPath%
echo Target Directory is %TargetDir%
if not exist %TargetDir% md %TargetDir%
if errorlevel 2 (
echo Unable to create target directory.
goto :eof
)
rem
rem Test source paths.
rem
if not exist %ClientPath% (
echo error: client path %ClientPath% doesn't exist.
goto :eof
)
if not exist %ServerPath% (
echo error: server path %ServerPath% doesn't exist.
goto :eof
)
if not exist %WinHttpPath% (
echo error: WinHttp path %WinHttpPath% doesn't exist.
goto :eof
)
if not exist %SymbolPath% (
echo error: symbol path %SymbolPath% doesn't exist.
goto :eof
)
if not "%BuildMSIs%"=="yes" (
echo ------------------- WinHttp MSM ---------------------------------------
cd winhttp_msm
call build_msm.bat %WinHttpPath% || goto :eof
echo ------------------- BITS Client MSM -----------------------------------
cd ..\bits_client_msm
call build_msm.bat %ClientPath% || goto :eof
echo ------------------- BITS Client MSI -----------------------------------
cd ..\bits_client_msi
call build_msi.bat %ClientPath% || goto :eof
echo ------------------- BITS Server MSM/MSI -------------------------------
cd ..\server-setup
call build_install.bat %ServerPath% || goto :eof
cd ..
)
rem
rem Place the new MSMs and MSIs in the target directory
rem
echo ------------------- Copy Installs to %TargetDir% --------
echo Copying files to %TargetDir%
if not exist %TargetDir%\Client_MSM (md %TargetDir%\Client_MSM || goto :eof)
xcopy /sfiderh "%CurrentPath%\bits_client_msm\Product Configuration 1\Release 1\diskimages\disk1" %TargetDir%\Client_MSM
if errorlevel 2 goto :eof
if not exist %TargetDir%\Client_MSI (md %TargetDir%\Client_MSI || goto :eof)
xcopy /sfiderh "%CurrentPath%\bits_client_msi\Product Configuration 1\Release 1\diskimages\disk1" %TargetDir%\Client_MSI
if errorlevel 2 goto :eof
if not exist %TargetDir%\Server_MSM (md %TargetDir%\Server_MSM || goto :eof)
xcopy /sfiderh "%CurrentPath%\server-setup\Server_MSM\Product Configuration 1\Release 1\diskimages\disk1" %TargetDir%\Server_MSM
if errorlevel 2 goto :eof
if not exist %TargetDir%\Server_MSI (md %TargetDir%\Server_MSI || goto :eof)
xcopy /sfiderh "%CurrentPath%\server-setup\Server_MSI\Product Configuration 1\Release 1\diskimages\disk1" %TargetDir%\Server_MSI
if errorlevel 2 goto :eof
if not "%SymbolPath%"=="" (
if not exist %TargetDir%\Symbols (md %TargetDir%\Symbols || goto :eof)
copy %SymbolPath%\bits*.pdb %TargetDir%\Symbols || goto :eof
copy %SymbolPath%\qmgr*.pdb %TargetDir%\Symbols || goto :eof
)