Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Shaswata Das 827363a95b
Create LICENSE
4 years ago
..
sfp commiting as it is 4 years ago
svcpack commiting as it is 4 years ago
a2u.pm commiting as it is 4 years ago
a2u.txt commiting as it is 4 years ago
a2uex.txt commiting as it is 4 years ago
add2grp.wsf commiting as it is 4 years ago
addlink.wsf commiting as it is 4 years ago
admigration.cmd commiting as it is 4 years ago
adminpak.cmd commiting as it is 4 years ago
aggregation.cmd commiting as it is 4 years ago
allraise.cmd commiting as it is 4 years ago
allrel.cmd commiting as it is 4 years ago
assignbvt.pl commiting as it is 4 years ago
autoboottest.cmd commiting as it is 4 years ago
autoboottest.intldub.pl commiting as it is 4 years ago
autoboottest.pl commiting as it is 4 years ago
autoboottest.pm commiting as it is 4 years ago
bbtnorel.dat commiting as it is 4 years ago
bindiff.pl commiting as it is 4 years ago
bindsys.cmd commiting as it is 4 years ago
bkg.jpg commiting as it is 4 years ago
bootcfg.vbs commiting as it is 4 years ago
bootflop.pl commiting as it is 4 years ago
bootinit.cmd commiting as it is 4 years ago
bootsafe.wsf commiting as it is 4 years ago
boottestmachines.txt commiting as it is 4 years ago
buildname.cmd commiting as it is 4 years ago
buildname.pm commiting as it is 4 years ago
buildsecure.cmd commiting as it is 4 years ago
burncopy.cmd commiting as it is 4 years ago
bvtm.cmd commiting as it is 4 years ago
cabwrapper.cmd commiting as it is 4 years ago
capturesourcefilelist.cmd commiting as it is 4 years ago
catsign.cmd commiting as it is 4 years ago
cddata.cmd commiting as it is 4 years ago
cddirs.lst commiting as it is 4 years ago
cdimage.cmd commiting as it is 4 years ago
checktestsig.cmd commiting as it is 4 years ago
checkxml.js commiting as it is 4 years ago
chgkeyinf.cmd commiting as it is 4 years ago
chgsfcinf.cmd commiting as it is 4 years ago
cleanup.step.cmd commiting as it is 4 years ago
cmbins.cmd commiting as it is 4 years ago
cmdevt.pl commiting as it is 4 years ago
cmdinisetting.pl commiting as it is 4 years ago
comminf.cmd commiting as it is 4 years ago
cookie.pm commiting as it is 4 years ago
copydw.pl commiting as it is 4 years ago
copyremoteboot.cmd commiting as it is 4 years ago
copyremoteboot.txt commiting as it is 4 years ago
copyscript.cmd commiting as it is 4 years ago
copytsc.cmd commiting as it is 4 years ago
copytsc.txt commiting as it is 4 years ago
copywow64.cmd commiting as it is 4 years ago
copywowlist.pl commiting as it is 4 years ago
cplocation.cmd commiting as it is 4 years ago
crypto.cmd commiting as it is 4 years ago
crypto.txt commiting as it is 4 years ago
csp.reb commiting as it is 4 years ago
ctokens.cmd commiting as it is 4 years ago
dazzle-macros.txt commiting as it is 4 years ago
dbgeula.cmd commiting as it is 4 years ago
ddkcabs.bat commiting as it is 4 years ago
delayload.cmd commiting as it is 4 years ago
deletebuild.cmd commiting as it is 4 years ago
deletesym.cmd commiting as it is 4 years ago
deletewrapper.cmd commiting as it is 4 years ago
deploytools.cmd commiting as it is 4 years ago
dispatch.pl commiting as it is 4 years ago
distint.cmd commiting as it is 4 years ago
dmd_mediaserver_cab.cmd commiting as it is 4 years ago
dmdgenericcabber.cmd commiting as it is 4 years ago
drivercab.cmd commiting as it is 4 years ago
drvcabck.cmd commiting as it is 4 years ago
exclude.lst commiting as it is 4 years ago
file2cd.pl commiting as it is 4 years ago
filechk.pl commiting as it is 4 years ago
fips.cmd commiting as it is 4 years ago
fixlogon.wsf commiting as it is 4 years ago
fixprn.pl commiting as it is 4 years ago
frozen_asms.reb commiting as it is 4 years ago
fsds.cmd commiting as it is 4 years ago
fullsync.cmd commiting as it is 4 years ago
fxsclient.cmd commiting as it is 4 years ago
gendiff.pl commiting as it is 4 years ago
genfilelayout.pm commiting as it is 4 years ago
geninflist.cmd commiting as it is 4 years ago
genssifile.cmd commiting as it is 4 years ago
getbldno.cmd commiting as it is 4 years ago
getinisetting.pm commiting as it is 4 years ago
getlatestrelease.cmd commiting as it is 4 years ago
getparams.pm commiting as it is 4 years ago
gpmc.cmd commiting as it is 4 years ago
hashbuild.cmd commiting as it is 4 years ago
hashrep.cmd commiting as it is 4 years ago
hashrep.pl commiting as it is 4 years ago
hashtext.pm commiting as it is 4 years ago
helpsupportservices.cmd commiting as it is 4 years ago
hnw.cmd commiting as it is 4 years ago
indexsym.cmd commiting as it is 4 years ago
inetsrv.cmd commiting as it is 4 years ago
infsections.tbl commiting as it is 4 years ago
infsizedefs.amd64.tbl commiting as it is 4 years ago
infsizedefs.cmd commiting as it is 4 years ago
infsizedefs.ia64.tbl commiting as it is 4 years ago
infsizedefs.x86.tbl commiting as it is 4 years ago
kbd.reb commiting as it is 4 years ago
known.reb commiting as it is 4 years ago
known_asms.reb commiting as it is 4 years ago
layout.cmd commiting as it is 4 years ago
lgndata.cmd commiting as it is 4 years ago
lgnexclude.txt commiting as it is 4 years ago
locag.pl commiting as it is 4 years ago
localenvex.pm commiting as it is 4 years ago
localrel.cmd commiting as it is 4 years ago
makebfloppy.cmd commiting as it is 4 years ago
makebuildname.cmd commiting as it is 4 years ago
makeimg.pl commiting as it is 4 years ago
makeprocd2.cmd commiting as it is 4 years ago
makeupgadvimg.cmd commiting as it is 4 years ago
makewinpeimg.cmd commiting as it is 4 years ago
migwiz.cmd commiting as it is 4 years ago
miscrel.cmd commiting as it is 4 years ago
miscrel.txt commiting as it is 4 years ago
mknetfxcab.cmd commiting as it is 4 years ago
mktabcab.cmd commiting as it is 4 years ago
mmssetup.cmd commiting as it is 4 years ago
moveqfe.cmd commiting as it is 4 years ago
msi.cmd commiting as it is 4 years ago
mtnmake.cmd commiting as it is 4 years ago
muiexclude.txt commiting as it is 4 years ago
muimake.pm commiting as it is 4 years ago
muimsi.pm commiting as it is 4 years ago
muiwhistler.pl commiting as it is 4 years ago
net.reb commiting as it is 4 years ago
netmsgconv.pl commiting as it is 4 years ago
never.reb commiting as it is 4 years ago
newver.cmd commiting as it is 4 years ago
nntpsmtp.cmd commiting as it is 4 years ago
nt5cat.cmd commiting as it is 4 years ago
nt5infcat.cmd commiting as it is 4 years ago
ntbackuponpersonal.cmd commiting as it is 4 years ago
ntprintcat.cmd commiting as it is 4 years ago
ntrebase.cmd commiting as it is 4 years ago
ntvdm.reb commiting as it is 4 years ago
octomail.pl commiting as it is 4 years ago
octopus.cmd commiting as it is 4 years ago
opkmsi.cmd commiting as it is 4 years ago
opkmsi.vbs commiting as it is 4 years ago
opshellfolder.pl commiting as it is 4 years ago
opshellfolder.wsf commiting as it is 4 years ago
parseinf.pl commiting as it is 4 years ago
parsesys.wsf commiting as it is 4 years ago
pbainst.cmd commiting as it is 4 years ago
pbuild.cmd commiting as it is 4 years ago
pbuild.dat commiting as it is 4 years ago
pbuild.hlp commiting as it is 4 years ago
pbuild.mui commiting as it is 4 years ago
pbuildenv.pm commiting as it is 4 years ago
pbuildrelease.dat commiting as it is 4 years ago
pdbsrcstream.cmd commiting as it is 4 years ago
raiseall.pl commiting as it is 4 years ago
raiseall.txt commiting as it is 4 years ago
readme.txt commiting as it is 4 years ago
readsetupfiles.pm commiting as it is 4 years ago
reattr.cmd commiting as it is 4 years ago
release.cmd commiting as it is 4 years ago
relrules.beta1 commiting as it is 4 years ago
relrules.idx01 commiting as it is 4 years ago
relrules.idx02 commiting as it is 4 years ago
relrules.lab02_n commiting as it is 4 years ago
relrules.lab03_n commiting as it is 4 years ago
relrules.lab04_n commiting as it is 4 years ago
relrules.lab06_n commiting as it is 4 years ago
relrules.main commiting as it is 4 years ago
removerc.cmd commiting as it is 4 years ago
removesecretsymbols.cmd commiting as it is 4 years ago
reskit.cmd commiting as it is 4 years ago
rx.wsf commiting as it is 4 years ago
samsibuild.cmd commiting as it is 4 years ago
sanitychecklist.txt commiting as it is 4 years ago
sanitycheckunicodefiles.cmd commiting as it is 4 years ago
scp_wpafiles.cmd commiting as it is 4 years ago
scp_wpafiles.reb commiting as it is 4 years ago
setup_log.txt commiting as it is 4 years ago
setupw95.cmd commiting as it is 4 years ago
sfcgen.cmd commiting as it is 4 years ago
sfcwrap.cmd commiting as it is 4 years ago
shimbind.cmd commiting as it is 4 years ago
signtheme.cmd commiting as it is 4 years ago
skusize.cmd commiting as it is 4 years ago
snapbin.cmd commiting as it is 4 years ago
snapbin.pl commiting as it is 4 years ago
snaplist.txt commiting as it is 4 years ago
snsignfiles.cmd commiting as it is 4 years ago
specialaddedfiles.txt commiting as it is 4 years ago
specsign.lst commiting as it is 4 years ago
spimageprune.txt commiting as it is 4 years ago
splitlist.cmd commiting as it is 4 years ago
splitlist.pl commiting as it is 4 years ago
srvrel.cmd commiting as it is 4 years ago
startcompress.cmd commiting as it is 4 years ago
startpostcompress.cmd commiting as it is 4 years ago
startprecompress.cmd commiting as it is 4 years ago
startsymcopy.pl commiting as it is 4 years ago
startthread.cmd commiting as it is 4 years ago
subdirs.lst commiting as it is 4 years ago
submit_public.cmd commiting as it is 4 years ago
submit_rules.txt commiting as it is 4 years ago
supporttools.cmd commiting as it is 4 years ago
swapinoriginalfiles.cmd commiting as it is 4 years ago
sxs_build_single_cab.cmd commiting as it is 4 years ago
sxs_compress.cmd commiting as it is 4 years ago
sxs_createcab.cmd commiting as it is 4 years ago
sxs_make_asms_cabs.cmd commiting as it is 4 years ago
sxs_msm.cmd commiting as it is 4 years ago
sxs_patch.cmd commiting as it is 4 years ago
symbolcd.cmd commiting as it is 4 years ago
symcab.cmd commiting as it is 4 years ago
symcabgen.cmd commiting as it is 4 years ago
symcd.cmd commiting as it is 4 years ago
symcopy.cmd commiting as it is 4 years ago
symcopythread.cmd commiting as it is 4 years ago
symdelegate.pm commiting as it is 4 years ago
symindex.pm commiting as it is 4 years ago
symmake.pm commiting as it is 4 years ago
symmungepublic.cmd commiting as it is 4 years ago
syncone.cmd commiting as it is 4 years ago
sysgen.pl commiting as it is 4 years ago
tagmsi.cmd commiting as it is 4 years ago
tapeline.cmd commiting as it is 4 years ago
template_cmd.cmd commiting as it is 4 years ago
template_module.pm commiting as it is 4 years ago
template_perl.cmd commiting as it is 4 years ago
timebomb.cmd commiting as it is 4 years ago
tokrel.cmd commiting as it is 4 years ago
toolfix.pm commiting as it is 4 years ago
ts.reb commiting as it is 4 years ago
tscert.cmd commiting as it is 4 years ago
tsclient.cmd commiting as it is 4 years ago
tscsetup.cmd commiting as it is 4 years ago
tswebsetup.cmd commiting as it is 4 years ago
twclient.cmd commiting as it is 4 years ago
uddipostbuild.cmd commiting as it is 4 years ago
unicodecheck.pm commiting as it is 4 years ago
unique.pl commiting as it is 4 years ago
updateos.vbs commiting as it is 4 years ago
updater.cmd commiting as it is 4 years ago
vba.set.wallpaper.wsf commiting as it is 4 years ago
winfuse_combinelogs.cmd commiting as it is 4 years ago
winfuse_postbuild.cmd commiting as it is 4 years ago
winfusesfcgen.cmd commiting as it is 4 years ago
winnt32msi.cmd commiting as it is 4 years ago
wmmkdcache.cmd commiting as it is 4 years ago
wow64.reb commiting as it is 4 years ago
wow64csp.cmd commiting as it is 4 years ago
wrap.mui.bvt.cmd commiting as it is 4 years ago
wrapper.cmd commiting as it is 4 years ago
wsh.arguments.echo.wsf commiting as it is 4 years ago
wsh.cpl.wsf commiting as it is 4 years ago
wsh.dialoger.wsf commiting as it is 4 years ago
wsh.iexplore.dialog.input.wsf commiting as it is 4 years ago
wsh.paint.picture.wsf commiting as it is 4 years ago
wsh.tapeline.async.wsf commiting as it is 4 years ago
wsrmcdscript.cmd commiting as it is 4 years ago
wsrmpostbuild.cmd commiting as it is 4 years ago
xmlbf.cmd commiting as it is 4 years ago
xmlchk.cmd commiting as it is 4 years ago
xpsp1.pl commiting as it is 4 years ago

readme.txt


This directory contains "build rules" you can use for your particular project.

Typically, a build rule script executes various post-build.exe operations on a set of
existing binaries. For example, a build rule script can invoke iexpress.exe in order
to generate a cab file or a self-extracting executable.

E-mail MLekas or ntball with questions regarding the US builds and MattHoe or ntbintl
with questions regarding the International builds.

To add a new build rule script:

1. Copy "template" to <your_project_build_rule>.cmd.

2. Edit <your_project_build_rule>.cmd according to the guidelines below.

a. Build rule scripts must be general enough to run in various contexts.

The build rule scripts are part of the US Windows 2000 build procedures.
The Redmond-based and the Dublin-based International Windows 2000 builds use them
too. Some of the build rule scripts are released with the source release kits.
These various contexts need to be considered when implementing the build rule scripts.

For example, the build rule scripts should avoid using hard-coded machine names:

* If your script propagates binaries from one build machine to another,
call %_ntbindir%\bldrules\localbrs.bat, then use variable names instead of
hard-coded machine names.

Let's say your script must copy files from \\x86fre\binaries to \\alphafre\binaries.

Replace
xcopy \\x86fre\binaries\%myfiles% \\alphafre\binaries\
with
call %_ntbindir%\bldrules\localbrs.bat
..
if /I "%computername%" == "%alphafre%" (
xcopy \\%x86fre%\%binshare%\%myfiles% \\%alphafre%\%binshare%\
)

By using a different localbrs.txt, International builds can use their own machine names,
shares, etc and still run the same build rule scripts as the US builds.

* If your script must be executed on a particular build machine only (x86fre for example),
add a particular entry to localbrs.txt, then use variable names instead of machine names.

For example, drvcab.cmd runs "slm in sorted.lst" on the official US build machines only.

The sequence
REM Only US build machines should check in sorted.lst
set checkin=
if /i "%computername%" == "x86fre" set checkin=yes
if /i "%computername%" == "alphafre" set checkin=yes
if /i "%computername%" == "axp64fre" set checkin=yes
if /i "%computername%" == "ia64fre" set checkin=yes
can be replaced with
call %_ntbindir%\bldrules\localbrs.bat
..
REM Only US build machines should check in sorted.lst
set checkin=
if /i "%computername%" == "%USx86fre%" set checkin=yes
if /i "%computername%" == "%USalphafre%" set checkin=yes
if /i "%computername%" == "%USaxp64fre%" set checkin=yes
if /i "%computername%" == "%USia64fre%" set checkin=yes


b. Build rule scripts must be able to run in particular contexts as well.

* Not everything from a build rule script is applicable to the International builds.

_AUTORUN.CMD is an example. The script applies to the US builds only.

Use IsIntlBld.cmd (-s \\orville\razzle -p public\tools) to determine if the script
is being run for International builds and skip the execution of some particular code
if the code is not applicable for language builds.

call IsIntlBld.cmd
if errorlevel 1 (
REM Write code specific to non-International builds
) else (
REM Write code specific to International builds.
)

Also, as environment variable LANG is defined at the time the US build rule script is
invoked, you can use it if you need to write code specific to a particular language.
Nec_98 is considered a language, even though it is in fact an architecture specific to
Japanese builds and built on the x86 machines.

* Not everything from a build rule script is (might be) applicable to both Redmond and
Dublin-based International builds.

You can use the same IsIntlBld.cmd to determine if the script is being run for a specific
International build:

call IsIntlBld.cmd Redmond
if errorlevel 1 (
REM Not a Redmond-based International build.
) else (
REM Write code specific to the Redmond-based International builds.
)

call IsIntlBld.cmd Dublin
if errorlevel 1 (
REM Not a Dublin-based International build.
) else (
REM Write code specific to the Dublin-based International builds.
)

Currently, there is no build rule script to need special processing for one
International type build, but not for the other.

* Not all languages ship server, advanced server, or datacenter Windows 2000 products.

Some of the build rule scripts use perinf, blainf, sbsinf, srvinf, entinf, and/or dtcinf. Before using these
directories, a build rule script should verify if they are applicable in the current context.

REM Use CkSKU.pm to validate the SKU against the given language and architecture.

perl %RazzleToolPath%\cksku.pm -t:per -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on perinf files. Ex:
perl makelist.pl -q %bin_in%\perinf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:bla -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on blainf files. Ex:
perl makelist.pl -q %bin_in%\blainf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:sbs -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on sbsinf files. Ex:
perl makelist.pl -q %bin_in%\sbsinf\excdosnt.inf ...
)
perl %RazzleToolPath\%cksku.pm -t:srv -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on srvinf files. Ex:
perl makelist.pl -q %bin_in%\srvinf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:ads -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on adsinf files. Ex:
perl makelist.pl -q %bin_in%\entinf\excdosnt.inf ...
)
perl %RazzleToolPath%\cksku.pm -t:dtc -l:%lang% -a:%_BuildArch%
if %errorlevel% EQU 0 (
REM Execute code based on dtcinf files. Ex:
perl makelist.pl -q %bin_in%\dtcinf\excdosnt.inf ...
)

c. Build rule scripts need to respect the following set of rules when using and/or defining
environment variables:

* Any razzle variable is allowed to be used inside a build rule script, except for "BINARIES".

_NTDRIVE, _NTROOT, NTDEBUG, _TARGET are examples of razzle variables.

On both US and International build machines, %BINARIES% represents the directory to which
files get binplaced. Typically, the files from the %BINARIES% directory are not localized.
On the International build machines, the tree containing the localized binaries is called
RELBINS and is different from BINARIES. In general, the build rule scripts apply to binaries
already built and, for International, localized. To avoid confusion and inappropriate
redefinitions of BINARIES that would persist after a build rule script finishes its execution,
the build rule scripts define a special variable called MYBINARIES as follows:

if not defined MYBINARIES set MYBINARIES=%BINARIES%

* A build rule script can define any new variable under the requirement that they preserve the
existing value of that variable, if any.

if not defined build_rule_script_local_variable (
set build_rule_script_local_variable=<value>
)

This mechanism allows the International builds to define these variables according to their
particular context before invoking the US build rules. The gain is that US and International
builds are able to share the same build rule scripts.


d. A build rule script should avoid executing builds in the private tree or using binaries from the
private tree.

The files processed by a build rule script must be accessible to the international builds.
The international build machines do not have the whole private tree. Their private tree is
restricted to those projects requiring compile time localization.
Whenever your build rule script invokes builds.exe under private or uses files from private,
it breaks the International builds, as they cannot use your build rule script.

If you must run build instructions from a build rule script, put these instructions into
PRECONGEAL.
Or avoid building on international build machines by using the IsIntlBld.cmd logic described
above. Keep in mind that international build machines only build sources that are localized,
which are very few and usually belong in a language-specific directory like \jpn for Japanese.
The rest of the binaries are inherited from the US build machines' %BINARIES% so international
machines avoid running build.exe under private in order to get the unlocalized binaries one
build rule script needs.
In cases where localized sources absolutely need to be re-built inside a build rules script
(ie, drvcab.cmd rebuilds dosnet.inf), please discuss with the international build team contacts
at the top of this document so special international needs can be addressed.

Also, any file from the private tree used by a build rule script should be binplaced to the
%BINARIES% tree, as opposed to being copied to %BINARIES%. Having a file listed in binplace.log
makes the investigation of build problems easier, as the name and location of the source tree
producing the file becomes apparent.

Last but not least, the binaries from the private tree typically have the symbol information not
split. It is wrong to include non-split binaries in the product. Binplacing files will enforce
that the proper symbolic information is present and split out to the proper .dbg and/or .pdb files
so customers receive split binaries with valid symbols, not non-split binaries that can be reverse
engineered.


e. Build rule scripts should be able to run incrementally.

The build rule scripts are currently invoked from congeal.cmd.
Typically, they run cleanly whenever invoked, even though just a few files changed.
Every time you write a build rule script, multiply its execution time with 21 (7 Redmond-based
languages and 14 Dublin-based languages) and assess whether its execution time is still acceptable.
Even when they run in parallel for different languages, the build rule scripts can take a lot of
time to execute.

Whenever possible, write and/or use incremental tools. For example, use makefiles to define
dependencies and generate the targets, in order to take the advantage of NMAKE.EXE's incremental
nature.


f. A build rule script should be very specific about the location of the tools it uses.

A build rule script using an idw or mstools tool must invoke the tool by using its full name,
including the path. It is error prone to assume that the right version of signcode.exe, for example,
comes first in the PATH.

if not defined idw set idw=%windir%\idw
%idw%\signcode.exe ...

iexpress.exe should always be used from IEXPRESS_PATH, as the language builds need localized
version of advpack.dll and wextract.exe:

if not defined IEXPRESS_PATH set IEXPRESS_PATH=%windir%\idw
set PATH=%IEXPRESS_PATH%;%PATH%
iexpress.exe ...


g. A build rule script should provide logging and error information on the screen and in logging files.

Follow the template script's guidelines in logging information on the screen and in log files:
* use ErrMsg.cmd to log errors, LogMsg.cmd to log non-error information and LogMsg.cmd /t
to mark the start and the end script's execution times.
* exit with a non-zero errorlevel if the script encountered errors during execution by calling
seterror.exe <errno> in the end.

h. A build rule script should be enabled to run in parallel with other build rules scripts.

Every build rule script must be enabled to run in parallel with the other build rule scripts.
For every option it implements (NEWVER, PREREBASE, CONGEAL, etc), a build rule creates a tag file
in the tmp directory, tag file to be deleted when the execution of the build rule script finishes.
The existence of the tag file shows that the build rule script is still executing.


i. A build rule script should contain detailed comments about its purpose, the algorithm it uses to
generate its output, particular tools it relies on, caveats, etc.

3. Check in <your_project_build_rule>.cmd.

The NT build process will run the new added .cmd file at the appropriate time as part of the normal
NT build.

4. Make any changes to <your_project_build_rule>.cmd in accordance with the guidelines detailed at step 2.

If your .cmd file becomes obsolete, remove (delfile) it from the "bldrules" project.
Until you remove the .cmd file, the build process will continue to run it with every US and
International build.