<?xml version="1.0" encoding="utf-8" ?> <!-- BKW: Build Kerberos for Windows --> <BKW_Config> <Config> <!-- All the parameters are specified here. Most can be over-ridden on the command line. Parameters are grouped into Options, Directories, Repository and Environment. Attributes a parameter can have: abbr: A one character abbreviation. def: defined or not. A value of 'A' for 'always' means the option can't be negated on the command line. value: string value, if the option can have a value. If the option can't take a value, omit the value attribute. options: space-delimited list, the 1st element is the default. Synonyms for a valid option are concatenated with '|'. env: an environment variable will be set to value or deleted, depending on def. If set and no value is given, '1' is used. --> <!-- Options: --> <clean def="0" /> <config def="1" abbr="f" value="bkwconfig.xml" /> <debug def="0" abbr="d" /> <help def="0" abbr="h|?" /> <logfile def="1" abbr="l" value="bkw.pl.log" /> <make def="1" /> <nolog def="0" /> <package def="1" /> <repository def="A" abbr="r" value="skip" options="skip checkout|co export|ex update|up" /> <sign def="0" /> <verbose def="0" abbr="v" /> <vverbose def="0" /> <!-- Directory settings: --> <!-- Sources will be checked out of repositories into <src>. The structure of the repositories will cause pismere/athena to be created under <src>. --> <src def="A" abbr="s" value="C:\KfW" /> <!-- Must be absolute path. --> <out def="A" abbr="o" value="C:\KfW\public" /> <!-- Must be absolute path. --> <!-- Repository settings: --> <cvstag def="0" abbr="c" value="" /> <svntag def="0" abbr="t" value="" /> <svnbranch def="0" abbr="b" value="" /> <username def="0" abbr="u" value="" /> <!-- Needed for svn/plink. Override from command line --> <CVSROOT def="A" value=":kserver:cvs.mit.edu:/cvs/pismere" /> <SVNURL def="A" value="svn.mit.edu" /> <!-- NB: No protocol or slashes!! --> <!-- Environment variables: --> <KH_RELEASE def="1" env="1" value="OFFICIAL" options="OFFICIAL PRERELEASE PRIVATE" /> <NODEBUG def="1" env="1" /> <!-- Interacts with /DEBUG --> </Config> <Stages> <FetchSources> <Zips> <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior --> <Zip name="SRC" filename="%filestem%-src.zip" topdir="%filestem%-final"> <CopyList> <Files> <!-- File from paths are relative to <src>/pismere. --> <!-- File to paths are relative to <out>. --> <File dummy="foo" /> <!-- Forces XML::Simple behavior --> <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. --> <File name="*.*" from="athena" to="src\athena" /> <File name="*.*" from="doc" to="src\doc" /> <File name="*.*" from="scripts" to="src\scripts" /> </Files> </CopyList> <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution: --> <Prune name="CVS" /> <Prune name=".cvsignore" flags="i" /> <Prune name="Changelog" flags="i" /> </Prunes> <Requires> <Switch dummy="foo" /> <Switch name="REPOSITORY" value="CHECKOUT|EXPORT"/> <ErrorMsg text="Can't build source zip unless /REPOSITORY CHECKOUT or /REPOSITORY EXPORT is specified." /> </Requires> </Zip> </Zips> </FetchSources> <Make> <!-- Script checks for prunes. --> </Make> <PrePackage> <CopyList> <Config> <!-- Debug and Release build results go in different places. The otherwise identical paths differ in one section. For example: .../target/bin/i386/bin/rel/filename and .../target/bin/i386/dbg/filename. Here we define the two differing sections: --> <DebugArea value="dbg" /> <ReleaseArea value="rel" /> <!-- Paths in the file list that include <AlwaysTag> will always have the tag replaced with <DebugArea> or <ReleaseArea>, depending on the type of build. Paths that include <DebugTag> (or <ReleaseTag>) will only have the tag substituted and be copied when doing a debug (or release) build. Examples: Will always be copied, from a build-dependent directory: <File name="kfwlogon.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" /> Will only be copied in debug build: <File name="netidmgr.exe.static.manifest" from="..\target\bin\i386\%debug%\" to="\bin\i386" notrequired="true" /> Will always be copied, from a build-independent directory: <File name="des.h" from="auth\krb4\include\" to="\inc\krb4" newname="foo.h"/> --> <AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. --> <DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. --> <ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. --> </Config> <Files> <Include path="copyfiles.xml" /> </Files> <!-- Relative to location of bkw.pl. --> </CopyList> </PrePackage> <Package> <Config> <Paths> <Versions path="pismere/athena/include/kerberos.ver" /> <!-- Relative to <src>. --> </Paths> </Config> <MSI></MSI> <NSIS></NSIS> <!-- NB: Most config is done in site-local.nsi. --> </Package> <PostPackage> <Config> <!-- This config info will be copied into each CopyList in PostPackage. --> <FileStem name="kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%" /> <!-- <FileStem> will be substituted for %filestem%. --> <Signing> <CommandTemplate value="signtool sign /a /d "MIT Kerberos for Windows" /du "http://web.mit.edu/kerberos" /t TIMESTAMPSERVERGOESHERE %filename%" /> <FilePatterns value="*.exe *.dll *.cpl *.msi" /> </Signing> </Config> <Zips> <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior --> <!-- Files will be copied into directory <topdir>; <topdir> will appear in the paths of the files. --> <!-- File from paths are relative to <src>/pismere. --> <!-- File to paths are relative to <out>. --> <Zip name="Core Binaries" filename="%filestem%.zip" topdir="%filestem%-final"> <CopyList> <Config> <DebugArea value="dbg" /> <ReleaseArea value="rel" /> <AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. --> <DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. --> <ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. --> </Config> <Files> <Include path="corebinaryfiles.xml" /> <!-- Included file is relative to location of bkw.pl. --> </Files> </CopyList> </Zip> <Zip name="SDK" filename="%filestem%-sdk.zip" topdir="%filestem%-final"> <CopyList> <Files> <Include path="sdkfiles.xml" /> <!-- Included file is relative to location of bkw.pl. --> </Files> </CopyList> </Zip> </Zips> <CopyList> <!-- Copied at end of post-package step. --> <Files> <File dummy="foo" /> <!-- File from paths are relative to <src/pismere>. --> <!-- File to paths are relative to <out>. --> <File name="msi-deployment-guide.txt" from="staging\install\wix\" to="" /> <File name="netidmgr_userdoc.pdf" from="staging\doc" to="" /> <File name="kfw.msi" from="buildwix" to="" newname="%filestem%.msi" /> <File name="MITKerberosForWindows%-DEBUG%.exe" from="buildnsi" to="" newname="%filestem%%-DEBUG%.exe" /> <File name="relnotes.html" from="staging\doc" to="" /> </Files> </CopyList> </PostPackage> </Stages> </BKW_Config>