windows-nt/Source/XPSP1/NT/base/ntsetup/patching/bldtools/srpbuild.bat
2020-09-26 16:20:57 +08:00

198 lines
7.1 KiB
Batchfile

if "%3"=="" goto :EOF
rem patchpath is the root of the patch build directory.
set patchpath=d:\patch
if /i %ComputerName%==msliger0 set patchpath=f:\patch
set platform=i386
set ReleaseShare=\\winseqfe\release
set Product=W2K
set ServicePack=SP3
set OtherReleases=SP2 SP1 2195
set ISOLang=%3
set BldType=fre
set BuildNumber=%2
set SRPServicePack=SP2
set SRPBuild=SRP1
rem newbuild is the name of the directory where the current build's
rem compressed files can be found.
set newbuild=%ReleaseShare%\%Product%\%ServicePack%\%BuildNumber%\%ISOLang%\%Platform:i386=x86%\%BldType%\srp
if /i "%ISOLang%"=="nec98" set platform=nec98
if /i "%ISOLang%"=="nec98" set newbuild=%ReleaseShare%\%Product%\%ServicePack%\%BuildNumber%\JA\%platform%\%BldType%\srp
rem newexe is the name of the self-extracting EXE containing the new build
set newexe=w2k%SRPServicePack%%SRPBuild%.exe
rem if /i "%ISOLang%"=="nec98" set newexe=w2k%SRPServicePack%%SRPBuild%n.exe
rem newsymbols is the name of the directory containing symbols
set newsymbols=%newbuild%\..\sym\retail
rem servername is the name of the pstream server
rem This forms part of the URL in the built file update.url.
rem No build-machine entry is required here unless you will prop your
rem build, but to a machine other than the build machine.
set servername=%ComputerName%
if /i %ComputerName%==msliger0 set servername=msliger7
rem Ordinarily, msliger0 builds are only for my personal dev/test. But for now, msliger0
rem is the real SRP patch build system, so we build for winsebld and prop to there.
if /i %ComputerName%==msliger0 if /i %ISOLang% neq EN set servername=winsebld
if /i "%4"=="beta" set servername=ntbeta.microsoft.com
if /i "%4"=="rtm" set servername=ntservicepack.microsoft.com
rem psfroot is the destination path for built PSF files
rem A specific build-machine entry is required here only if you want to prop your build.
if /i %ComputerName%==winsebld set psfroot=d:\psfroot\win2000
if /i %ComputerName%==msliger0 set psfroot=\\%servername%\psfroot$\win2000
if /i %ComputerName%==msliger3 set psfroot=c:\psfroot\win2000
rem wwwroot is the destination path for built EXE files
rem A specific build-machine entry is required here only if you want to prop your build.
if /i %ComputerName%==winsebld set wwwroot=d:\wwwroot\%ServicePack%
if /i %ComputerName%==msliger0 set wwwroot=\\%servername%\wwwroot$\%ServicePack%
if /i %ComputerName%==msliger3 set wwwroot=c:\wwwroot\%ServicePack%
rem patchbuild is the directory where the finished files will go.
set patchbuild=%patchpath%\build\%ISOLang%\%SRPBuild%.%BuildNumber%
rem patchtemp is a directory where intermediate files are built.
set patchtemp=%patchpath%\temp\%ISOLang%
rem logpath is the name of the directory where log files go.
set logpath=%patchbuild%\logs
rem loglinkpath is the name of the directory of the link to the latest log files.
set loglinkpath=%patchpath%\build\%ISOLang%
rem forest is the name of the directory where all patch reference
rem files (from previous and current build) can be found. Ideally,
rem there will be a manifest file at the base of each tree in the forest.
set forest=%patchpath%\forest\%ISOLang%
rem newfiles is the name of the directory where all the current
rem build's files (fully uncompressed) can be located. Every file named
rem in the sourcelist must exist in this directory.
set newfiles=%forest%\stage\%SRPBuild%.%BuildNumber%
rem patching is the name of the override directory where the
rem current build's patch-only files (update.url and patching
rem flavor of update.ver) can be located. Any file found in
rem in this directory will override the file from newfiles.
set patching=%patchpath%\patching\%ISOLang%
rem psfname is the full pathname of the PSF
set psfname=%patchbuild%\%SRPServicePack%%SRPBuild%.%ISOLang%.%BuildNumber%.psf
rem cablist is the list of cab files which can be built from update.url
set cablist=
rem template is the full pathname of updateurl.template
set template=%bldtools%\srpurl.template
rem fullexe is the name of the full EXE to be produced, WITHOUT
rem the file extension
set fullexe=%patchbuild%\full.%ISOLang%.%BuildNumber%.exe
rem fullddf is the name of the full DDF to be produced.
set fullddf=%patchtemp%\full.ddf
rem fullcab is the name of the full CAB to be produced.
set fullcab=%patchtemp%\full.cab
rem patchexe is the name of the patch EXE to be produced
set patchexe=%patchbuild%\patch.%ISOLang%.%SRPBuild%.%BuildNumber%.exe
if /i "%4"=="beta" set patchexe=%patchbuild%\beta\w2k%SRPServicePack%%SRPBuild%express.exe
if /i "%4"=="rtm" set patchexe=%patchbuild%\rtw\w2k%SRPServicePack%%SRPBuild%express.exe
rem patchddf is the name of the patch DDF to be produced.
set patchddf=%patchtemp%\patch.ddf
rem patchlist is the name of the patch DDF file list.
set patchlist=srpddf.filelist
rem patchcab is the name of the patch CAB to be produced.
set patchcab=%patchtemp%\patch.cab
rem stubexe is the full pathname of the self-extracting stub.
set stubexe=%bldtools%\%ISOLang:nec98=JA%\%platform:i386=x86%\sfxstub.exe
rem nonsysfree is an option for the self-extractor for required free space
set nonsysfree=/nonsysfree 60000000
rem server is the full URL prefix of the patch server including the
rem ISAPI pstream.dll name
set server=http://%servername%/isapi/pstream3.dll/win2000
rem updatever is the name of the update.ver file.
set updatever=update.ver
rem sourcelist is the name of a text file containing the names of all
rem the files which could be downloaded. Usually derived from the
rem [SourceDisksFiles] sections in update.inf and update.url
set sourcelist=%patching%\update\%updatever%
rem targetpool is the name of the directory where all the produced
rem patches will be collected. Existing contents of this directory
rem will be deleted.
set targetpool=%patchpath%\patches.out\%ISOLang%
rem cache is the name of the directory where mpatches can look for
rem previously-built patch files. Any new patches built will be added
rem to this directory.
set cache=%patchpath%\PatchCache
rem psfcomment is a comment to go in the produced PSF.
set psfcomment=Build %1 %SRPBuild%.%BuildNumber% %ISOLang% %4 %5 (%COMPUTERNAME%)
rem oldsympath is the symbol path for "old" files
set strcat=
for %%p in (%OtherReleases%) do call :strcat %forest%\history\%%p\symbols
set oldsympath=%strcat%;%newfiles%\symbols
rem newsympath is the symbol path for "new" files
set strcat=%newfiles%\symbols
for %%p in (%OtherReleases%) do call :strcat %forest%\history\%%p\symbols
set newsympath=%strcat%
set strcat=
goto :EOF
:strcat
if not "%strcat%"=="" set strcat=%strcat%;
set strcat=%strcat%%1
goto :EOF