<?xml version="1.0" encoding="utf-8" ?>\r
<!-- BKW: Build Kerberos for Windows -->\r
<BKW_Config>\r
- <CommandLine>\r
- <!-- The most changeable parameters can be specified on the command line. -->\r
- <Tags>\r
- <cvs value="" />\r
- <svn value=""/>\r
- </Tags>\r
- <Directories>\r
- <!-- Sources will be checked out of repositories into <src>. The structure\r
- of the repositories will cause pismere/athena to be created under <src>. -->\r
- <src path ="C:\projects\Autobuild" />\r
- <out path ="public" /> <!-- Relative to src. -->\r
- <unixfind path ="c:\cygwin\bin" />\r
- </Directories>\r
- <Options>\r
- <debug value="0" />\r
- <logfile value="1" path="bkw.pl.log" />\r
- <repository value="skip" />\r
- <clean value="0" />\r
- <nomake value="0" />\r
- <nopackage value="0" />\r
- <verbose value="0" />\r
- <vverbose value="0" />\r
- </Options>\r
- </CommandLine>\r
- <Stages>\r
- <FetchSources>\r
- <Config>\r
- <CVSROOT name=":kserver:cvs.mit.edu:/cvs/pismere" />\r
- <SVNURL name="svn.mit.edu" /> <!-- NB: No protocol or slashes!! -->\r
- <USERNAME name="" /> <!-- Needed for svn/plink. Override from command line -->\r
- </Config>\r
- </FetchSources>\r
- <Make>\r
- <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution: -->\r
- <Prune dummy="foo" /> <!-- Force XML::Simple behavior -->\r
- <Prune name="afsauth" />\r
- <Prune name="aklog" />\r
- <Prune name="vs" />\r
- </Prunes>\r
- </Make>\r
- <PrePackage>\r
- <CopyList>\r
- <Config>\r
- <!-- Debug and Release build results go in different places.\r
- The otherwise identical paths differ in one section. For example:\r
- .../target/bin/i386/bin/rel/filename and .../target/bin/i386/dbg/filename.\r
- Here we define the two differing sections: -->\r
- <DebugArea value="dbg" />\r
- <ReleaseArea value="rel" />\r
- <!-- Paths in the file list that include <AlwaysTag> will always have the tag replaced \r
- with <DebugArea> or <ReleaseArea>, depending on the type of build.\r
- Paths that include <DebugTag> (or <ReleaseTag>) will only have the tag substituted \r
- and be copied when doing a debug (or release) build. Examples:\r
- Will always be copied, from a build-dependent directory:\r
- <File name="kfwlogon.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" /> \r
- Will only be copied in debug build:\r
- <File name="netidmgr.exe.static.manifest" from="..\target\bin\i386\%debug%\" to="\bin\i386" notrequired="true" />\r
- Will always be copied, from a build-independent directory:\r
- <File name="des.h" from="auth\krb4\include\" to="\inc\krb4" newname="foo.h"/>\r
- -->\r
- <AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->\r
- <DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. -->\r
- <ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. -->\r
- </Config>\r
- <Files>\r
- <Include path="copyfiles.xml" />\r
- </Files> <!-- Relative to location of bkw.pl. -->\r
- </CopyList>\r
- </PrePackage>\r
- <Package>\r
- <Config>\r
- <Paths> \r
- <Versions path="pismere/athena/include/kerberos.ver" /> <!-- Relative to <src>. -->\r
- </Paths>\r
- </Config>\r
- <MSI></MSI>\r
- <NSIS></NSIS> <!-- NB: Most config is done in site-local.nsi. -->\r
- </Package>\r
- <PostPackage>\r
- <Config> <!-- This config info will be copied into each CopyList in PostPackage. -->\r
- <FileStem name="kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%" /> <!-- <FileStem> will be substituted for %filestem%. -->\r
- </Config>\r
- <Zips>\r
- <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior -->\r
- <!-- Files will be copied into directory <topdir>; <topdir> will appear in the paths of the files. -->\r
- <!-- File from paths are relative to <src>/pismere. -->\r
- <!-- File to paths are relative to <out>. -->\r
- <Zip name="Core Binaries" filename="%filestem%.zip" topdir="%filestem%-final">\r
- <CopyList>\r
- <Config>\r
- <DebugArea value="dbg" />\r
- <ReleaseArea value="rel" />\r
- <AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->\r
- <DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. -->\r
- <ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. -->\r
- </Config>\r
- <Files>\r
- <Include path="corebinaryfiles.xml" />\r
- </Files> <!-- Relative to location of bkw.pl. -->\r
- </CopyList>\r
- </Zip>\r
- <Zip name="SDK" filename="%filestem%-sdk.zip" topdir="%filestem%-final">\r
- <CopyList>\r
- <Files>\r
- <Include path="sdkfiles.xml" />\r
- </Files> <!-- Relative to location of bkw.pl. -->\r
- </CopyList>\r
- </Zip>\r
- <Zip name="SRC" filename="%filestem%-src.zip" topdir="%filestem%-final">\r
- <CopyList>\r
- <Files>\r
- <!-- File from paths are relative to <src>/pismere. -->\r
- <!-- File to paths are relative to <out>. -->\r
- <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
- <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
- <File name="*.*" from="athena" to="src\athena" />\r
- <File name="*.*" from="doc" to="src\doc" />\r
- <File name="*.*" from="scripts" to="src\scripts" />\r
- </Files>\r
- </CopyList>\r
- <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution: -->\r
- <Prune dummy="foo" />\r
- <Prune name="CVS" />\r
- <Prune name=".cvsignore" flags="i" />\r
- <Prune name="Changelog" flags="i" />\r
- <Prune name="obj" />\r
- <Prune name="site" />\r
- </Prunes>\r
- <Requires>\r
- <Switch dummy="foo" />\r
- <Switch name="REPOSITORY" value="CHECKOUT"/>\r
- <ErrorMsg text="Can't build source zip unless /REPOSITORY CHECKOUT is specified." />\r
- </Requires>\r
- </Zip>\r
- </Zips> \r
- <CopyList> <!-- Copied at end of post-package step. -->\r
- <Files>\r
- <File dummy="foo" />\r
- <!-- File from paths are relative to <src>/pismere. -->\r
- <!-- File to paths are relative to <out>. -->\r
- <File name="msi-deployment-guide.txt" from="staging\install\wix\" to="" />\r
- <File name="netidmgr_userdoc.pdf" from="staging\doc" to="." />\r
- <File name="kfw.msi" from="staging\install\wix\" to="" newname="%filestem%.msi" />\r
- <File name="MITKerberosForWindows%-DEBUG%.exe" from="staging\install\nsis" to="" newname="%filestem%%-DEBUG%.exe" />\r
- </Files>\r
- </CopyList>\r
- </PostPackage>\r
- </Stages>\r
+ <CommandLine>\r
+ <!-- The most changeable parameters can be specified on the command line. -->\r
+ <Tags>\r
+ <cvs value="" />\r
+ <svn value=""/>\r
+ </Tags>\r
+ <Directories>\r
+ <!-- Sources will be checked out of repositories into <src>. The structure\r
+ of the repositories will cause pismere/athena to be created under <src>. -->\r
+ <src path ="C:\projects\Autobuild" />\r
+ <out path ="public" /> <!-- Relative to src. -->\r
+ <unixfind path ="c:\cygwin\bin" />\r
+ </Directories>\r
+ <Options>\r
+ <debug value="0" />\r
+ <logfile value="1" path="bkw.pl.log" />\r
+ <repository value="skip" />\r
+ <clean value="0" />\r
+ <nomake value="0" />\r
+ <nopackage value="0" />\r
+ <sign value="0" timestampserver="" />\r
+ <verbose value="0" />\r
+ <vverbose value="0" />\r
+ </Options>\r
+ </CommandLine>\r
+ <Stages>\r
+ <FetchSources>\r
+ <Config>\r
+ <CVSROOT name=":kserver:cvs.mit.edu:/cvs/pismere" />\r
+ <SVNURL name="svn.mit.edu" /> <!-- NB: No protocol or slashes!! -->\r
+ <USERNAME name="" /> <!-- Needed for svn/plink. Override from command line -->\r
+ </Config>\r
+ </FetchSources>\r
+ <Make>\r
+ <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution: -->\r
+ <Prune dummy="foo" /> <!-- Force XML::Simple behavior -->\r
+ <Prune name="afsauth" />\r
+ <Prune name="aklog" />\r
+ <Prune name="vs" />\r
+ </Prunes>\r
+ </Make>\r
+ <PrePackage>\r
+ <CopyList>\r
+ <Config>\r
+ <!-- Debug and Release build results go in different places.\r
+ The otherwise identical paths differ in one section. For example:\r
+ .../target/bin/i386/bin/rel/filename and .../target/bin/i386/dbg/filename.\r
+ Here we define the two differing sections: -->\r
+ <DebugArea value="dbg" />\r
+ <ReleaseArea value="rel" />\r
+ <!-- Paths in the file list that include <AlwaysTag> will always have the tag replaced \r
+ with <DebugArea> or <ReleaseArea>, depending on the type of build.\r
+ Paths that include <DebugTag> (or <ReleaseTag>) will only have the tag substituted \r
+ and be copied when doing a debug (or release) build. Examples:\r
+ Will always be copied, from a build-dependent directory:\r
+ <File name="kfwlogon.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" /> \r
+ Will only be copied in debug build:\r
+ <File name="netidmgr.exe.static.manifest" from="..\target\bin\i386\%debug%\" to="\bin\i386" notrequired="true" />\r
+ Will always be copied, from a build-independent directory:\r
+ <File name="des.h" from="auth\krb4\include\" to="\inc\krb4" newname="foo.h"/>\r
+ -->\r
+ <AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->\r
+ <DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. -->\r
+ <ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. -->\r
+ </Config>\r
+ <Files>\r
+ <Include path="copyfiles.xml" />\r
+ </Files> <!-- Relative to location of bkw.pl. -->\r
+ </CopyList>\r
+ </PrePackage>\r
+ <Package>\r
+ <Config>\r
+ <Paths> \r
+ <Versions path="pismere/athena/include/kerberos.ver" /> <!-- Relative to <src>. -->\r
+ </Paths>\r
+ </Config>\r
+ <MSI></MSI>\r
+ <NSIS></NSIS> <!-- NB: Most config is done in site-local.nsi. -->\r
+ </Package>\r
+ <PostPackage>\r
+ <Config> <!-- This config info will be copied into each CopyList in PostPackage. -->\r
+ <FileStem name="kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%" /> <!-- <FileStem> will be substituted for %filestem%. -->\r
+ <Signing>\r
+ <CommandTemplate value="signtool sign /a /d "MIT Kerberos for Windows" /du "http://web.mit.edu/kerberos" /t TIMESTAMPSERVERGOESHERE %filename%" />\r
+ <FilePatterns value="*.exe *.dll *.cpl *.msi" />\r
+ </Signing>\r
+ </Config>\r
+ <Zips>\r
+ <Zip dummy="foo" /> <!-- To force desired XML::Simple behavior -->\r
+ <!-- Files will be copied into directory <topdir>; <topdir> will appear in the paths of the files. -->\r
+ <!-- File from paths are relative to <src>/pismere. -->\r
+ <!-- File to paths are relative to <out>. -->\r
+ <Zip name="Core Binaries" filename="%filestem%.zip" topdir="%filestem%-final">\r
+ <CopyList>\r
+ <Config>\r
+ <DebugArea value="dbg" />\r
+ <ReleaseArea value="rel" />\r
+ <AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->\r
+ <DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. -->\r
+ <ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. -->\r
+ </Config>\r
+ <Files>\r
+ <Include path="corebinaryfiles.xml" /> <!-- Includeed file is relative to location of bkw.pl. -->\r
+ </Files> \r
+ </CopyList>\r
+ </Zip>\r
+ <Zip name="SDK" filename="%filestem%-sdk.zip" topdir="%filestem%-final">\r
+ <CopyList>\r
+ <Files>\r
+ <Include path="sdkfiles.xml" /> <!-- Included file is relative to location of bkw.pl. -->\r
+ </Files>\r
+ </CopyList>\r
+ <Prunes> \r
+ <Prune dummy="foo" />\r
+ <Prune name="MIT*.exe" /> <!-- MITKerberosForWindows.exe was copied to a new name in sdkfiles.xml. -->\r
+ </Prunes>\r
+ </Zip>\r
+ <Zip name="SRC" filename="%filestem%-src.zip" topdir="%filestem%-final">\r
+ <CopyList>\r
+ <Files>\r
+ <!-- File from paths are relative to <src>/pismere. -->\r
+ <!-- File to paths are relative to <out>. -->\r
+ <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
+ <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
+ <File name="*.*" from="athena" to="src\athena" />\r
+ <File name="*.*" from="doc" to="src\doc" />\r
+ <File name="*.*" from="scripts" to="src\scripts" />\r
+ </Files>\r
+ </CopyList>\r
+ <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution: -->\r
+ <Prune dummy="foo" />\r
+ <Prune name="CVS" />\r
+ <Prune name=".cvsignore" flags="i" />\r
+ <Prune name="Changelog" flags="i" />\r
+ <Prune name="obj" />\r
+ <Prune name="site" />\r
+ </Prunes>\r
+ <Requires>\r
+ <Switch dummy="foo" />\r
+ <Switch name="REPOSITORY" value="CHECKOUT"/>\r
+ <ErrorMsg text="Can't build source zip unless /REPOSITORY CHECKOUT is specified." />\r
+ </Requires>\r
+ </Zip>\r
+ </Zips> \r
+ <CopyList> <!-- Copied at end of post-package step. -->\r
+ <Files>\r
+ <File dummy="foo" />\r
+ <!-- File from paths are relative to <src>/pismere. -->\r
+ <!-- File to paths are relative to <out>. -->\r
+ <File name="msi-deployment-guide.txt" from="staging\install\wix\" to="" />\r
+ <File name="netidmgr_userdoc.pdf" from="staging\doc" to="." />\r
+ <File name="kfw.msi" from="staging\install\wix\" to="" newname="%filestem%.msi" />\r
+ <File name="MITKerberosForWindows%-DEBUG%.exe" from="staging\install\nsis" to="" newname="%filestem%%-DEBUG%.exe" />\r
+ </Files>\r
+ </CopyList>\r
+ </PostPackage>\r
+ </Stages>\r
</BKW_Config>
\ No newline at end of file
use Archive::Zip;\r
use Logger;\r
require "copyfiles.pl";\r
+require "signfiles.pl";\r
+require "makeZip.pl";\r
\r
my $BAIL;\r
$0 = fileparse($0);\r
my $MAKE = 'NMAKE';\r
our $config;\r
\r
-sub get_info\r
- {\r
- my $cmd = shift || die;\r
- my $which = $^X.' which.pl';\r
- my $full = `$which $cmd`;\r
- return 0 if ($? / 256);\r
- chomp($full);\r
- $full = "\"".$full."\"";\r
- return { cmd => $cmd, full => $full};\r
+sub get_info {\r
+ my $cmd = shift || die;\r
+ my $which = $^X.' which.pl';\r
+ my $full = `$which $cmd`;\r
+ return 0 if ($? / 256);\r
+ chomp($full);\r
+ $full = "\"".$full."\"";\r
+ return { cmd => $cmd, full => $full};\r
}\r
\r
sub usage {\r
Options are case insensitive.\r
\r
Options:\r
- /help /? usage information (what you now see).\r
+ /help /? usage information (what you now see).\r
/config /c path Path to config file.\r
/srcdir /r dir Source directory to use. Should contain \r
- pismere/athena. If cvstag or svntag is null, \r
- the directory should be prepopulated.\r
+ pismere/athena. If cvstag or svntag is null, \r
+ the directory should be prepopulated.\r
/outdir /o dir Directory to be created where build results will go\r
/repository checkout | co \\ What repository action to take.\r
- update | up ) Options are to checkout, update or \r
- skip / take no action [skip].\r
+ update | up ) Options are to checkout, update or \r
+ skip / take no action [skip].\r
/username /u name username used to access svn if checking out.\r
/cvstag /c tag \\ If non-empty, the tag is appended to cvs and svn\r
/svntag /s tag / commands to select the rev to fetch.\r
/debug /d Do debug make instead of release make.\r
- /nomake Skip make step.\r
- /clean Build clean target.\r
- /nopackage Skip packaging step.\r
+ /nomake Skip make step.\r
+ /clean Build clean target.\r
+ /nopackage Skip packaging step.\r
+ /sign Sign files\r
+ /nosign Don't sign files\r
/verbose /v Debug mode - verbose output.\r
/logfile /l path Where to write output. Default is bkw.pl.log\r
- /nolog Don't save output\r
+ /nolog Don't save output\r
Other:\r
- NMAKE-options any options you want to pass to NMAKE, which can be:\r
- (note: /nologo is always used)\r
+ NMAKE-options any options you want to pass to NMAKE, which can be:\r
+ (note: /nologo is always used)\r
\r
USAGE\r
system("$MAKE /?");\r
- }\r
+ }\r
\r
sub handler {\r
my $sig = shift;\r
\r
sub main {\r
Getopt::Long::Configure('no_bundling', 'no_auto_abbrev',\r
- 'no_getopt_compat', 'require_order',\r
- 'ignore_case', 'pass_through',\r
- 'prefix_pattern=(--|-|\+|\/)',\r
- );\r
+ 'no_getopt_compat', 'require_order',\r
+ 'ignore_case', 'pass_through',\r
+ 'prefix_pattern=(--|-|\+|\/)',\r
+ );\r
GetOptions($OPT,\r
- 'help|h|?',\r
- 'cvstag|c:s',\r
- 'svntag|s:s',\r
- 'srcdir|r:s',\r
- 'outdir|o:s',\r
- 'debug|d',\r
- 'config|f:s',\r
- 'logfile|l:s',\r
- 'nolog',\r
- 'repository:s',\r
- 'username|u:s',\r
- 'verbose|v',\r
- 'vverbose|vv',\r
- 'nomake',\r
- 'clean',\r
- 'nopackage',\r
- );\r
+ 'help|h|?',\r
+ 'cvstag|c:s',\r
+ 'svntag|s:s',\r
+ 'srcdir|r:s',\r
+ 'outdir|o:s',\r
+ 'debug|d',\r
+ 'config|f:s',\r
+ 'logfile|l:s',\r
+ 'nolog',\r
+ 'repository:s',\r
+ 'username|u:s',\r
+ 'verbose|v',\r
+ 'vverbose|vv',\r
+ 'nomake',\r
+ 'clean',\r
+ 'nopackage',\r
+ 'sign',\r
+ 'nosign',\r
+ );\r
\r
if ( $OPT->{help} ) {\r
- usage();\r
- exit(0);\r
- }\r
- \r
+ usage();\r
+ exit(0);\r
+ }\r
+ \r
##++ Validate required conditions:\r
\r
if ($OPT->{config}) {}\r
else {\r
- print "Fatal -- Configuration file must be specified.\n";\r
- usage();\r
- exit(0);\r
- }\r
+ print "Fatal -- Configuration file must be specified.\n";\r
+ usage();\r
+ exit(0);\r
+ }\r
\r
# List of programs which must be in PATH:\r
my @required_list = ('sed', 'awk', 'which', 'cat', 'rm', 'cvs', 'svn', 'doxygen', 'hhc', 'candle', 'light', 'makensis', 'nmake', 'plink');\r
my $requirements_met = 1;\r
my $first_missing = 0;\r
my $error_list = "";\r
- foreach my $required (@required_list) {\r
+ foreach my $required (@required_list) {\r
if (!get_info($required)) {\r
- $requirements_met = 0;\r
- if (!$first_missing) {\r
- $first_missing = 1;\r
- $error_list = "Fatal -- Environment problem! The following program(s) are not in PATH:\n";\r
- }\r
- $error_list .= "$required\n";\r
- }\r
- }\r
- if (!$requirements_met) {\r
- print $error_list;\r
- print "Info -- Update PATH or install the programs and try again.\n";\r
- exit(0);\r
- }\r
+ $requirements_met = 0;\r
+ if (!$first_missing) {\r
+ $first_missing = 1;\r
+ $error_list = "Fatal -- Environment problem! The following program(s) are not in PATH:\n";\r
+ }\r
+ $error_list .= "$required\n";\r
+ }\r
+ }\r
+ if (!$requirements_met) {\r
+ print $error_list;\r
+ print "Info -- Update PATH or install the programs and try again.\n";\r
+ exit(0);\r
+ }\r
\r
##-- Validate required conditions.\r
- \r
+ \r
use Time::gmtime;\r
$ENV{DATE} = gmctime()." GMT";\r
- our $originalDir = `cd`;\r
- $originalDir =~ s/\n//g;\r
+ our $originalDir = `cd`;\r
+ $originalDir =~ s/\n//g;\r
\r
##++ Assemble configuration from config file and command line:\r
\r
print "Info -- Reading configuration from $configfile.\n";\r
\r
# Get configuration file:\r
- my $xml = new XML::Simple();\r
- $config = $xml->XMLin($configfile);\r
+ my $xml = new XML::Simple();\r
+ $config = $xml->XMLin($configfile);\r
\r
- # Set up convenience variables:\r
- my (@switches, @paths, @tags, @fetch);\r
- @switches = $config->{CommandLine}->{Options};\r
- @paths = $config->{CommandLine}->{Directories};\r
- @tags = $config->{CommandLine}->{Tags};\r
- @fetch = $config->{Stages}->{FetchSources}->{Config};\r
+ # Set up convenience variables:\r
+ my (@switches, @paths, @tags, @fetch);\r
+ @switches = $config->{CommandLine}->{Options};\r
+ @paths = $config->{CommandLine}->{Directories};\r
+ @tags = $config->{CommandLine}->{Tags};\r
+ @fetch = $config->{Stages}->{FetchSources}->{Config};\r
\r
# Update the configuration with overrides from the command line:\r
- $tags[0]->{cvs}->{value} = $OPT->{cvstag} if exists $OPT->{cvstag};\r
- $tags[0]->{svn}->{value} = $OPT->{svnurl} if exists $OPT->{svnurl};\r
- $paths[0]->{src}->{path} = $OPT->{srcdir} if exists $OPT->{srcdir};\r
- $paths[0]->{out}->{path} = $OPT->{outdir} if exists $OPT->{outdir};\r
- $switches[0]->{debug}->{value} = $OPT->{debug} if exists $OPT->{debug};\r
- $switches[0]->{clean}->{value} = 1 if exists $OPT->{clean};\r
- $switches[0]->{repository}->{value} = $OPT->{repository} if exists $OPT->{repository};\r
- $fetch[0]->{USERNAME}->{name} = $OPT->{username} if exists $OPT->{username};\r
- $switches[0]->{nomake}->{value} = 1 if exists $OPT->{nomake};\r
- $switches[0]->{nopackage}->{value} = 1 if exists $OPT->{nopackage};\r
- $switches[0]->{verbose}->{value} = $OPT->{verbose} if exists $OPT->{verbose};\r
- $switches[0]->{vverbose}->{value} = $OPT->{verbose} if exists $OPT->{vverbose};\r
- if (exists $OPT->{logfile}) {\r
- $switches[0]->{logfile}->{path} = $OPT->{logfile};\r
- $switches[0]->{logfile}->{value} = 1;\r
- }\r
- if (exists $OPT->{nolog}) {\r
- $switches[0]->{logfile}->{value} = 0;\r
- }\r
- our $verbose = $config->{CommandLine}->{Options}->{verbose}->{value};\r
- our $vverbose = $config->{CommandLine}->{Options}->{vverbose}->{value};\r
- our $clean = $switches[0]->{clean}->{value};\r
- my $src = $paths[0]->{src}->{path};\r
-\r
- if ($clean && !$switches[0]->{nopackage}->{value}) {\r
- print "Info -- /clean forces /nopackage.\n";\r
- $switches[0]->{nopackage}->{value} = 1;\r
- }\r
+ $tags[0]->{cvs}->{value} = $OPT->{cvstag} if exists $OPT->{cvstag};\r
+ $tags[0]->{svn}->{value} = $OPT->{svnurl} if exists $OPT->{svnurl};\r
+ $paths[0]->{src}->{path} = $OPT->{srcdir} if exists $OPT->{srcdir};\r
+ $paths[0]->{out}->{path} = $OPT->{outdir} if exists $OPT->{outdir};\r
+ $switches[0]->{debug}->{value} = $OPT->{debug} if exists $OPT->{debug};\r
+ $switches[0]->{clean}->{value} = 1 if exists $OPT->{clean};\r
+ $switches[0]->{repository}->{value} = $OPT->{repository} if exists $OPT->{repository};\r
+ $fetch[0]->{USERNAME}->{name} = $OPT->{username} if exists $OPT->{username};\r
+ $switches[0]->{nomake}->{value} = 1 if exists $OPT->{nomake};\r
+ $switches[0]->{nopackage}->{value} = 1 if exists $OPT->{nopackage};\r
+ $switches[0]->{verbose}->{value} = $OPT->{verbose} if exists $OPT->{verbose};\r
+ $switches[0]->{vverbose}->{value} = $OPT->{verbose} if exists $OPT->{vverbose};\r
+ if (exists $OPT->{logfile}) {\r
+ $switches[0]->{logfile}->{path} = $OPT->{logfile};\r
+ $switches[0]->{logfile}->{value} = 1;\r
+ }\r
+ if (exists $OPT->{nolog}) {\r
+ $switches[0]->{logfile}->{value} = 0;\r
+ }\r
+ if (exists $OPT->{sign}) {\r
+ $switches[0]->{sign}->{timestampserver} = $OPT->{sign};\r
+ $switches[0]->{sign}->{value} = 1;\r
+ }\r
+ if (exists $OPT->{nosign}) {\r
+ $switches[0]->{sign}->{value} = 0;\r
+ }\r
+ our $verbose = $config->{CommandLine}->{Options}->{verbose}->{value};\r
+ our $vverbose = $config->{CommandLine}->{Options}->{vverbose}->{value};\r
+ our $clean = $switches[0]->{clean}->{value};\r
+ local $src = $paths[0]->{src}->{path};\r
+ local $toPath = $paths[0]->{out}->{path};\r
+\r
+ if ($clean && !$switches[0]->{nopackage}->{value}) {\r
+ print "Info -- /clean forces /nopackage.\n";\r
+ $switches[0]->{nopackage}->{value} = 1;\r
+ }\r
\r
if ($vverbose) {print "Debug -- Config: ".Dumper($config);}\r
\r
- # Examples of use:\r
- #print "Logfile path: $switches[0]->{log}->{path}\n";\r
- #print "src path: $paths[0]->{src}->{path}\n";\r
- #print "cvs tag: $tags[0]->{cvs}->{value}\n";\r
- #print "CVSROOT: $fetch[0]->{CVSROOT}->{name}\n";\r
+ # Examples of use:\r
+ #print "Logfile path: $switches[0]->{log}->{path}\n";\r
+ #print "src path: $paths[0]->{src}->{path}\n";\r
+ #print "cvs tag: $tags[0]->{cvs}->{value}\n";\r
+ #print "CVSROOT: $fetch[0]->{CVSROOT}->{name}\n";\r
\r
##-- Assemble configuration from config file and command line.\r
\r
- my $sw = $switches[0]->{repository}->{value};\r
- my $rverb;\r
- if ($sw =~ /skip/i) {$rverb = "skip";}\r
- elsif ($sw =~ /update/i) {$rverb = "update";}\r
- elsif ($sw =~ /up/i) {$rverb = "update";}\r
- elsif ($sw =~ /checkout/i) {$rverb = "checkout";}\r
- elsif ($sw =~ /co/i) {$rverb = "checkout";}\r
- else {\r
- print "Fatal -- invalid /repository value.\n";\r
- usage();\r
- die;\r
- }\r
-\r
- my $wd = $src."\\pismere";\r
-\r
- if (! ($rverb =~ /skip/)) {\r
- local $len = 0;\r
- if (exists $fetch[0]->{USERNAME}->{name}) {\r
- $len = length $fetch[0]->{USERNAME}->{name};\r
- }\r
- if ($len < 1) {\r
- die "Fatal -- you won't get far accessing the repository without specifying a username.";\r
- }\r
- }\r
-\r
- if ( ($rverb =~ /checkout/) && (-d $wd) ){\r
- print "\n\nHEADS UP!!\n\n";\r
- print "/REPOSITORY CHECKOUT will cause everything under $wd to be deleted.\n";\r
- print "If this is not what you intended, here's your chance to bail out!\n\n\n";\r
- print "Are you sure you want to remove everything under $wd? ";\r
- my $char = getc;\r
- if (! ($char =~ /y/i)) {die "Info -- operation aborted by user."}\r
- !system("rm -rf $wd/*") or die "Fatal -- Couldn't clean $wd.";\r
- !system("rmdir $wd") or die "Fatal -- Couldn't remove $wd.";\r
-# !system("attrib -h -r $wd\\* /s /d") or die "Fatal -- Couldn't clear read-only attributes.";\r
-# !system("del /s /q $wd\\*.*") or die "Fatal -- Couldn't clean files from $wd."; \r
-# !system("rm -rf $wd\\*.*") or die "Fatal -- Couldn't clean directories from $wd.";\r
- }\r
+ my $sw = $switches[0]->{repository}->{value};\r
+ my $rverb;\r
+ if ($sw =~ /skip/i) {$rverb = "skip";}\r
+ elsif ($sw =~ /update/i) {$rverb = "update";}\r
+ elsif ($sw =~ /up/i) {$rverb = "update";}\r
+ elsif ($sw =~ /checkout/i) {$rverb = "checkout";}\r
+ elsif ($sw =~ /co/i) {$rverb = "checkout";}\r
+ else {\r
+ print "Fatal -- invalid /repository value.\n";\r
+ usage();\r
+ die;\r
+ }\r
+ $switches[0]->{repository}->{value} = $rverb; ## Save canonicalized repository verb.\r
+\r
+ my $wd = $src."\\pismere";\r
+\r
+ if (! ($rverb =~ /skip/)) {\r
+ local $len = 0;\r
+ if (exists $fetch[0]->{USERNAME}->{name}) {\r
+ $len = length $fetch[0]->{USERNAME}->{name};\r
+ }\r
+ if ($len < 1) {\r
+ die "Fatal -- you won't get far accessing the repository without specifying a username.";\r
+ }\r
+ }\r
+\r
+ if ( ($rverb =~ /checkout/) && (-d $wd) ){\r
+ print "\n\nHEADS UP!!\n\n";\r
+ print "/REPOSITORY CHECKOUT will cause everything under $wd to be deleted.\n";\r
+ print "If this is not what you intended, here's your chance to bail out!\n\n\n";\r
+ print "Are you sure you want to remove everything under $wd? ";\r
+ my $char = getc;\r
+ if (! ($char =~ /y/i)) {die "Info -- operation aborted by user."}\r
+ !system("rm -rf $wd/*") or die "Fatal -- Couldn't clean $wd.";\r
+ !system("rmdir $wd") or die "Fatal -- Couldn't remove $wd.";\r
+ }\r
\r
# Begin logging:\r
my $l;\r
if ($switches[0]->{logfile}->{value}) {\r
- print "Info -- logging to $switches[0]->{logfile}->{path}.\n";\r
- $l = new Logger $switches[0]->{logfile}->{path};\r
- $l->start;\r
- $l->no_die_handler; ## Needed so XML::Simple won't throw exceptions.\r
- }\r
+ print "Info -- logging to $switches[0]->{logfile}->{path}.\n";\r
+ $l = new Logger $switches[0]->{logfile}->{path};\r
+ $l->start;\r
+ $l->no_die_handler; ## Needed so XML::Simple won't throw exceptions.\r
+ }\r
\r
##++ Begin repository action:\r
- if ($rverb =~ /skip/) {print "Info -- *** Skipping repository access.\n" if ($verbose);}\r
- else {\r
- if ($verbose) {print "Info -- *** Begin fetching sources.\n";}\r
- if (! -d $wd) { ## xcopy will create the entire path for us.\r
- !system("echo foo > a.tmp") or die "Fatal -- Couldn't create temporary file in ".`cd`;\r
- !system("echo F | xcopy a.tmp $wd\\CVS\\a.tmp") or die "Fatal -- Couldn't xcopy to $wd.";\r
- !system("rm a.tmp") or die "Fatal -- Couldn't remove temporary file.";\r
- !system("rm $wd\\CVS\\a.tmp") or die "Fatal -- Couldn't remove temporary file.";\r
- }\r
- \r
- # Set up cvs environment variables:\r
- $ENV{CVSROOT} = $fetch[0]->{CVSROOT}->{name};\r
- chdir($src) or die "Fatal -- couldn't chdir to $src\n";\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- my $krb5dir = $wd."\\athena\\auth\\krb5";\r
-\r
- my $cvscmdroot = "cvs $rverb";\r
- my $cvscmd = $cvscmdroot;\r
- if ($rverb =~ /checkout/) { \r
- my @cvsmodules = ( \r
- 'krb', \r
- 'pismere/athena/util/lib/delaydlls', \r
- 'pismere/athena/util/lib/getopt', \r
- 'pismere/athena/util/guiwrap'\r
- );\r
-\r
- foreach my $module (@cvsmodules) {\r
- $cvscmd = $cvscmdroot." ".$module;\r
- $cvscmd .= " ".$tags[0]->{cvs}->{value} if ($tags[0]->{cvs}->{value});\r
- if ($verbose) {print "Info -- cvs command: $cvscmd\n";}\r
- !system($cvscmd) or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";\r
- }\r
- }\r
- else { ## Update.\r
- $cvscmd = $cvscmdroot;\r
- $cvscmd .= " ".$tags[0]->{cvs}->{value} if ($tags[0]->{cvs}->{value});\r
- if ($verbose) {print "Info -- cvs command: $cvscmd\n";}\r
- !system($cvscmd) or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";\r
- }\r
- \r
- # Set up svn environment variable:\r
- $ENV{SVN_SSH} = "plink.exe";\r
- # If the directory structure doesn't exist, many cd commands will fail.\r
- if (! -d $krb5dir) {mkdir($krb5dir) or die "Fatal -- Couldn't create $krb5dir";}\r
- chdir($krb5dir) or die "Fatal -- Couldn't chdir to $krb5dir";\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- my $svncmd = "svn $rverb ";\r
- if ($rverb =~ /checkout/) { # Append the rest of the checkout command:\r
- chdir("..");\r
- $svncmd .= "svn+ssh://".$fetch[0]->{USERNAME}->{name}."@".$fetch[0]->{SVNURL}->{name}."/krb5/trunk krb5";\r
- }\r
- if ($tags[0]->{svn}->{value}) {$svncmd .= " ".$tags[0]->{svn}->{value};} # Add any specific tag\r
- if ($verbose) {print "Info -- svn command: $svncmd\n";}\r
- !system($svncmd) or die "Fatal -- command \"$svncmd\" failed; return code $?\n";\r
-\r
- if ($verbose) {print "Info -- *** End fetching sources.\n";}\r
- }\r
+ if ($rverb =~ /skip/) {print "Info -- *** Skipping repository access.\n" if ($verbose);}\r
+ else {\r
+ if ($verbose) {print "Info -- *** Begin fetching sources.\n";}\r
+ if (! -d $wd) { ## xcopy will create the entire path for us.\r
+ !system("echo foo > a.tmp") or die "Fatal -- Couldn't create temporary file in ".`cd`;\r
+ !system("echo F | xcopy a.tmp $wd\\CVS\\a.tmp") or die "Fatal -- Couldn't xcopy to $wd.";\r
+ !system("rm a.tmp") or die "Fatal -- Couldn't remove temporary file.";\r
+ !system("rm $wd\\CVS\\a.tmp") or die "Fatal -- Couldn't remove temporary file.";\r
+ }\r
+ \r
+ # Set up cvs environment variables:\r
+ $ENV{CVSROOT} = $fetch[0]->{CVSROOT}->{name};\r
+ chdir($src) or die "Fatal -- couldn't chdir to $src\n";\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ my $krb5dir = "$wd\\athena\\auth\\krb5";\r
+\r
+ my $cvscmdroot = "cvs $rverb";\r
+ my $cvscmd = $cvscmdroot;\r
+ if ($rverb =~ /checkout/) { \r
+ my @cvsmodules = ( \r
+ 'krb', \r
+ 'pismere/athena/util/lib/delaydlls', \r
+ 'pismere/athena/util/lib/getopt', \r
+ 'pismere/athena/util/guiwrap'\r
+ );\r
+\r
+ foreach my $module (@cvsmodules) {\r
+ $cvscmd = $cvscmdroot." ".$module;\r
+ $cvscmd .= " ".$tags[0]->{cvs}->{value} if ($tags[0]->{cvs}->{value});\r
+ if ($verbose) {print "Info -- cvs command: $cvscmd\n";}\r
+ !system($cvscmd) or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";\r
+ }\r
+ }\r
+ else { ## Update.\r
+ $cvscmd = $cvscmdroot;\r
+ $cvscmd .= " ".$tags[0]->{cvs}->{value} if ($tags[0]->{cvs}->{value});\r
+ if ($verbose) {print "Info -- cvs command: $cvscmd\n";}\r
+ !system($cvscmd) or die "Fatal -- command \"$cvscmd\" failed; return code $?\n";\r
+ }\r
+ \r
+ # Set up svn environment variable:\r
+ $ENV{SVN_SSH} = "plink.exe";\r
+ # If the directory structure doesn't exist, many cd commands will fail.\r
+ if (! -d $krb5dir) {mkdir($krb5dir) or die "Fatal -- Couldn't create $krb5dir";}\r
+ chdir($krb5dir) or die "Fatal -- Couldn't chdir to $krb5dir";\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ my $svncmd = "svn $rverb ";\r
+ if ($rverb =~ /checkout/) { # Append the rest of the checkout command:\r
+ chdir("..");\r
+ $svncmd .= "svn+ssh://".$fetch[0]->{USERNAME}->{name}."@".$fetch[0]->{SVNURL}->{name}."/krb5/trunk krb5";\r
+ }\r
+ if ($tags[0]->{svn}->{value}) {$svncmd .= " ".$tags[0]->{svn}->{value};} # Add any specific tag\r
+ if ($verbose) {print "Info -- svn command: $svncmd\n";}\r
+ !system($svncmd) or die "Fatal -- command \"$svncmd\" failed; return code $?\n";\r
+\r
+ if ($verbose) {print "Info -- *** End fetching sources.\n";}\r
+ }\r
##-- End repository action.\r
- \r
+ \r
##++ Make action:\r
- if ( (!$switches[0]->{nomake}->{value}) ) {\r
- if ($verbose) {print "Info -- *** Begin preparing for build.\n";}\r
-\r
- $wd = $paths[0]->{src}->{path};\r
- chdir("$wd") or die "Fatal -- couldn't chdir to $wd\n";\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- \r
- my ($path, $destpath);\r
- \r
- # Copy athena\scripts\site\graft\krb5\Makefile.src to athena\auth\krb5:\r
- $path = "pismere\\scripts\\site\\graft\\krb5\\Makefile.src";\r
- if (!-e $path) {die "Fatal -- Expected file $wd\\$path not found.";}\r
- $destpath = "pismere\\athena\\auth\\krb5\\Makefile.src";\r
- !system("echo F | xcopy /D $wd\\$path $wd\\$destpath /Y > NUL") or die "Fatal -- Copy of $wd\\$path to $wd\\$destpath failed.";\r
- print "Info -- copied $wd\\$path to $wd\\$destpath\n" if ($verbose);;\r
- \r
- # Add DEBUG_SYMBOL to .../wshelper/Makefile.src:\r
- $path = "pismere\\athena\\wshelper\\wshelper\\Makefile.src";\r
- if (!-e $path) {die "Fatal -- Expected file $wd\\$path not found.";}\r
- if (system("grep DEBUG_SYMBOL $path > NUL") != 0) {\r
- !system ("echo DEBUG_SYMBOL=1 >> $wd\\$path") or die "Fatal -- Append line to file failed.\n";\r
- print "Info -- Added DEBUG_SYMBOL to $wd\\$path\n" if ($verbose);\r
- }\r
- \r
- # Prune any unwanted directories before the build:\r
- if (exists $config->{Stages}->{Make}->{Prunes}) {\r
- # Use Unix find instead of Windows find. Save PATH so we can restore it when we're done:\r
- my $savedPATH = $ENV{PATH};\r
- $ENV{PATH} = $config->{CommandLine}->{Directories}->{unixfind}->{path}.";".$savedPATH;\r
- my $prunes = $config->{Stages}->{Make}->{Prunes};\r
- my $j=0;\r
- print "Info -- Processing prunes in ".`cd`."\n" if ($verbose);\r
- while ($prunes->{Prune}->[$j]) {\r
- if (exists $prunes->{Prune}->[$j]->{name}) { ## Don't process dummy entry!\r
- my $prune = $prunes->{Prune}->[$j]->{name};\r
- my $flags = $prunes->{Prune}->[$j]->{flags};\r
- $flags = "" if (!$flags);\r
- my $cmd = "find . -".$flags."name $prune";\r
- print "Info -- Looking for filenames containing $prune\n";\r
- my $list = `$cmd`;\r
- foreach $target (split("\n", $list)) {\r
- print "Info -- Pruning $target\n" if ($verbose);\r
- ! system("rm -rf $target") or die "Unable to prune $target";\r
- }\r
- }\r
- $j++;\r
- }\r
- $ENV{PATH} = $savedPATH;\r
- }\r
-\r
- if ($verbose) {print "Info -- *** End preparing for build.\n";}\r
- \r
- my ($buildtarget, $buildtext);\r
- if ($clean) {\r
- $buildtarget = "clean" ;\r
- $buildtext = " clean."\r
- }\r
- else {\r
- $buildtarget = "" ;\r
- $buildtext = "."\r
- }\r
- \r
- chdir("pismere/athena") or die "Fatal -- couldn't chdir to source directory $wd\\pismere\\athena\n";\r
- if ($verbose) {print "Info -- chdir to $wd\\pismere\\athena\n";}\r
- my $dbgswitch = ($switches[0]->{debug}->{value}) ? " " : "NODEBUG=1";\r
- !system("perl ../scripts/build.pl --softdirs --nolog $buildtarget $dbgswitch") or die "Fatal -- build $buildtarget failed.";\r
- \r
- chdir("$wd\\pismere") or die "Fatal -- couldn't chdir to $wd\\pismere.";\r
- if ($clean) {\r
- if (-d "staging") {\r
- !system("rm -rf staging") or die "Fatal -- Couldn't remove pismere/staging.";\r
- }\r
- }\r
- \r
- if ($verbose) {print "Info -- *** End build".$buildtext."\n";}\r
- } ## End make conditional.\r
- else {print "Info -- *** Skipping build.\n" if ($verbose);}\r
+ if ( (!$switches[0]->{nomake}->{value}) ) {\r
+ if ($verbose) {print "Info -- *** Begin preparing for build.\n";}\r
+\r
+ chdir("$wd") or die "Fatal -- couldn't chdir to $wd\n";\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ \r
+ my ($path, $destpath);\r
+ \r
+ # Copy athena\scripts\site\graft\krb5\Makefile.src to athena\auth\krb5:\r
+ $path = "scripts\\site\\graft\\krb5\\Makefile.src";\r
+ if (!-e $path) {die "Fatal -- Expected file $wd\\$path not found.";}\r
+ $destpath = "athena\\auth\\krb5\\Makefile.src";\r
+ !system("echo F | xcopy /D $wd\\$path $wd\\$destpath /Y > NUL") or die "Fatal -- Copy of $wd\\$path to $wd\\$destpath failed.";\r
+ print "Info -- copied $wd\\$path to $wd\\$destpath\n" if ($verbose);;\r
+ \r
+ # Add DEBUG_SYMBOL to .../wshelper/Makefile.src:\r
+ $path = "athena\\wshelper\\wshelper\\Makefile.src";\r
+ if (!-e $path) {die "Fatal -- Expected file $wd\\$path not found.";}\r
+ if (system("grep DEBUG_SYMBOL $path > NUL") != 0) {\r
+ !system ("echo DEBUG_SYMBOL=1 >> $wd\\$path") or die "Fatal -- Append line to file failed.\n";\r
+ print "Info -- Added DEBUG_SYMBOL to $wd\\$path\n" if ($verbose);\r
+ }\r
+ \r
+ # Prune any unwanted directories before the build:\r
+ if (exists $config->{Stages}->{Make}->{Prunes}) {\r
+ # Use Unix find instead of Windows find. Save PATH so we can restore it when we're done:\r
+ my $savedPATH = $ENV{PATH};\r
+ $ENV{PATH} = $config->{CommandLine}->{Directories}->{unixfind}->{path}.";".$savedPATH;\r
+ my $prunes = $config->{Stages}->{Make}->{Prunes};\r
+ my $j=0;\r
+ print "Info -- Processing prunes in ".`cd`."\n" if ($verbose);\r
+ while ($prunes->{Prune}->[$j]) {\r
+ if (exists $prunes->{Prune}->[$j]->{name}) { ## Don't process dummy entry!\r
+ my $prune = $prunes->{Prune}->[$j]->{name};\r
+ my $flags = $prunes->{Prune}->[$j]->{flags};\r
+ $flags = "" if (!$flags);\r
+ my $cmd = "find . -".$flags."name $prune";\r
+ print "Info -- Looking for filenames containing $prune\n";\r
+ my $list = `$cmd`;\r
+ foreach $target (split("\n", $list)) {\r
+ print "Info -- Pruning $target\n" if ($verbose);\r
+ ! system("rm -rf $target") or die "Unable to prune $target";\r
+ }\r
+ }\r
+ $j++;\r
+ }\r
+ $ENV{PATH} = $savedPATH;\r
+ }\r
+\r
+ if ($verbose) {print "Info -- *** End preparing for build.\n";}\r
+ \r
+ my ($buildtarget, $buildtext);\r
+ if ($clean) {\r
+ $buildtarget = "clean" ;\r
+ $buildtext = " clean."\r
+ }\r
+ else {\r
+ $buildtarget = "" ;\r
+ $buildtext = "."\r
+ }\r
+ \r
+ chdir("$wd\\athena") or die "Fatal -- couldn't chdir to source directory $wd\\athena\n";\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ my $dbgswitch = ($switches[0]->{debug}->{value}) ? " " : "NODEBUG=1";\r
+ !system("perl ../scripts/build.pl --softdirs --nolog $buildtarget $dbgswitch") or die "Fatal -- build $buildtarget failed.";\r
+ \r
+ chdir("$wd") or die "Fatal -- couldn't chdir to $wd.";\r
+ if ($clean) {\r
+ if (-d "staging") {\r
+ !system("rm -rf staging") or die "Fatal -- Couldn't remove $wd\\staging.";\r
+ }\r
+ }\r
+ \r
+ if ($verbose) {print "Info -- *** End build".$buildtext."\n";}\r
+ } ## End make conditional.\r
+ else {print "Info -- *** Skipping build.\n" if ($verbose);}\r
##-- Make action.\r
- \r
- if (!$switches[0]->{nopackage}->{value}) { ## If /clean, this switch will have been cleared.\r
- if ($verbose) {print "Info -- *** Begin prepackage.\n";}\r
-\r
- # We read in the version information to be able to update the site-local files in the install build areas:\r
- local $version_path = $config->{Stages}->{Package}->{Config}->{Paths}->{Versions}->{path};\r
- open(DAT, "$src/$version_path") or die "Could not open $version_path.";\r
- @raw = <DAT>;\r
- close DAT;\r
- foreach $line (@raw) {\r
- chomp $line;\r
- if ($line =~ /#define/) { # Process #define lines:\r
- $line =~ s/#define//; # Remove #define token\r
- $line =~ s/^\s+//; # and leading & trailing whitespace\r
- $line =~ s/\s+$//;\r
- local @qr = split("\"", $line); # Try splitting with quotes\r
- if (exists $qr[1]) {\r
- $qr[0] =~ s/^\s+//; # Clean up whitespace\r
- $qr[0] =~ s/\s+$//;\r
- $config->{Versions}->{$qr[0]} = $qr[1]; # Save string\r
- }\r
- else { # No quotes, so\r
- local @ar = split(" ", $line); # split with space\r
- $ar[0] =~ s/^\s+//; # Clean up whitespace\r
- $ar[0] =~ s/\s+$//;\r
- $config->{Versions}->{$ar[0]} = $ar[1]; # and save numeric value\r
- }\r
- }\r
- }\r
-\r
- # Check that the versions we will need for site-local have been defined:\r
- my @required_versions = ('VER_PROD_MAJOR', 'VER_PROD_MINOR', 'VER_PROD_REV', \r
- 'VER_PROD_MAJOR_STR', 'VER_PROD_MINOR_STR', 'VER_PROD_REV_STR', \r
- 'VER_PRODUCTNAME_STR');\r
- my $requirements_met = 1;\r
- my $first_missing = 0;\r
- my $error_list = "";\r
- foreach my $required (@required_versions) {\r
- if (! exists $config->{Versions}->{$required}) {\r
- $requirements_met = 0;\r
- if (!$first_missing) {\r
- $first_missing = 1;\r
- $error_list = "Fatal -- The following version(s) are not defined in $src/$version_path.\n";\r
- }\r
- $error_list .= "$required\n";\r
- }\r
- }\r
- if (!$requirements_met) {\r
- print $error_list;\r
- exit(0);\r
- }\r
- # Apply any of these tags to filestem:\r
- my $filestem = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};\r
- $filestem =~ s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/;\r
- $filestem =~ s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/;\r
- $filestem =~ s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/;\r
- $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name} = $filestem;\r
- \r
- # The build results are copied to a staging area, where the packager expects to find them.\r
- # We put the staging area in the fixed area .../pismere/staging.\r
- my $prepackage = $config->{Stages}->{PrePackage};\r
- $wd = $paths[0]->{src}->{path}."\\pismere";\r
- my $staging_area = "$wd\\staging";\r
- chdir($wd) or die "Fatal -- couldn't chdir to $wd\n";\r
- if ($verbose) {print "Info -- chdir to $wd\n";}\r
- (-e $staging_area) or mkdir($staging_area);\r
- \r
- # Force Where From and To are relative to:\r
- $prepackage->{CopyList}->{Config}->{From}->{root} = "$src\\pismere\\athena";\r
- $prepackage->{CopyList}->{Config}->{To}->{root} = "$src\\pismere\\staging";\r
- copyFiles($prepackage->{CopyList}, $config); ## Copy any files [this step takes a while]\r
-\r
- chdir("staging\\install\\wix") or die "Fatal -- Couldn't cd to $wd\\staging\\install\\wix";\r
- # Correct errors in files.wxi:\r
- !system("sed 's/WorkingDirectory=\"\\[dirbin\\]\"/WorkingDirectory=\"dirbin\"/g' files.wxi > a.tmp") or die "Fatal -- Couldn't modify files.wxi.";\r
- !system("mv a.tmp files.wxi") or die "Fatal -- Couldn't update files.wxi.";\r
- \r
- # Make sed script to run on the site-local configuration files:\r
- local $tmpfile = "site-local.sed" ;\r
- system("del $tmpfile");\r
- # Basic substitutions:\r
- local $dblback_wd = $wd;\r
- $dblback_wd =~ s/\\/\\\\/g;\r
- !system("echo s/%BUILDDIR%/$dblback_wd/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- local $dblback_staging = "$wd\\staging";\r
- $dblback_staging =~ s/\\/\\\\/g;\r
- !system("echo s/%TARGETDIR%/$dblback_staging/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- local $dblback_sample = "$wd\\staging\\sample";\r
- $dblback_sample =~ s/\\/\\\\/g;\r
- !system("echo s/%CONFIGDIR-WIX%/$dblback_sample/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- !system("echo s/%CONFIGDIR-NSI%/$dblback_staging/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- !system("echo s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- !system("echo s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- !system("echo s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- # Strip out some defines so they can be replaced: [used for site-local.nsi]\r
- !system("echo /\^!define\.\*RELEASE\.\*\$/d >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- !system("echo /\^!define\.\*DEBUG\.\*\$/d >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
- !system("echo /\^!define\.\*BETA\.\*\$/d >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
-\r
- # Run the script on site-local.wxi:\r
- !system("sed -f $tmpfile site-local-tagged.wxi > site-local.wxi") or die "Fatal -- Couldn't modify site-local.wxi.";\r
-\r
- # Now update site-local.nsi:\r
- chdir "..\\nsis";\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- local $tmpfile = "site-local.sed" ;\r
- !system("sed -f ..\\wix\\$tmpfile site-local-tagged.nsi > b.tmp") or die "Fatal -- Couldn't modify site-local.wxi.";\r
- # Add DEBUG or RELEASE:\r
- if ($switches[0]->{debug}->{value}) { ## debug build\r
- !system("echo !define DEBUG >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
- }\r
- else { ## release build\r
- !system("echo !define RELEASE >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
- !system("echo !define NO_DEBUG >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
- }\r
- # Add BETA if present:\r
- if ( exists $config->{Versions}->{'BETA_STR'}) {\r
- !system("echo !define BETA $config->{Versions}->{'BETA_STR'} >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
- }\r
- !system("mv -f b.tmp site-local.nsi") or die "Fatal -- Couldn't replace site-local.nsi.";\r
-\r
- # Run the script on nsi-includes-tagged.nsi:\r
- !system("sed -f ..\\wix\\$tmpfile nsi-includes-tagged.nsi > nsi-includes.nsi") or die "Fatal -- Couldn't modify nsi-includes.nsi.";\r
-\r
- if ($verbose) {print "Info -- *** End prepackage.\n";}\r
- \r
- if ($verbose) {print "Info -- *** Begin package.\n";}\r
- # Make the msi:\r
- chdir("$wd\\staging\\install\\wix") or die "Fatal -- Couldn't cd to $wd\\staging\\install\\wix";\r
- print "Info -- *** Make .msi:\n" if ($verbose);\r
- !system("$MAKE") or die "Error -- msi installer build failed.";\r
- \r
- chdir("$wd\\staging\\install\\nsis") or die "Fatal -- Couldn't cd to $wd\\staging\\install\\nsis";\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- print "Info -- *** Make NSIS:\n" if ($verbose);\r
- !system("cl.exe killer.cpp advapi32.lib") or die "Error -- nsis killer.exe not built.";\r
- !system("rename killer.exe Killer.exe") or die "Error -- Couldn't rename killer.exe";\r
- !system("makensis kfw.nsi") or die "Error -- executable installer build failed.";\r
+ \r
+##++ Package action:\r
+ if ($switches[0]->{nopackage}->{value}) { ## If /clean, this switch will have been cleared.\r
+ print "Info -- *** Skipping packaging.";\r
+ }\r
+ else {\r
+ if ($verbose) {print "Info -- *** Begin prepackage.\n";}\r
+\r
+ # We read in the version information to be able to update the site-local files in the install build areas:\r
+ local $version_path = $config->{Stages}->{Package}->{Config}->{Paths}->{Versions}->{path};\r
+ open(DAT, "$src/$version_path") or die "Could not open $version_path.";\r
+ @raw = <DAT>;\r
+ close DAT;\r
+ foreach $line (@raw) {\r
+ chomp $line;\r
+ if ($line =~ /#define/) { # Process #define lines:\r
+ $line =~ s/#define//; # Remove #define token\r
+ $line =~ s/^\s+//; # and leading & trailing whitespace\r
+ $line =~ s/\s+$//;\r
+ local @qr = split("\"", $line); # Try splitting with quotes\r
+ if (exists $qr[1]) {\r
+ $qr[0] =~ s/^\s+//; # Clean up whitespace\r
+ $qr[0] =~ s/\s+$//;\r
+ $config->{Versions}->{$qr[0]} = $qr[1]; # Save string\r
+ }\r
+ else { # No quotes, so\r
+ local @ar = split(" ", $line); # split with space\r
+ $ar[0] =~ s/^\s+//; # Clean up whitespace\r
+ $ar[0] =~ s/\s+$//;\r
+ $config->{Versions}->{$ar[0]} = $ar[1]; # and save numeric value\r
+ }\r
+ }\r
+ }\r
+\r
+ # Check that the versions we will need for site-local have been defined:\r
+ my @required_versions = ('VER_PROD_MAJOR', 'VER_PROD_MINOR', 'VER_PROD_REV', \r
+ 'VER_PROD_MAJOR_STR', 'VER_PROD_MINOR_STR', 'VER_PROD_REV_STR', \r
+ 'VER_PRODUCTNAME_STR');\r
+ my $requirements_met = 1;\r
+ my $first_missing = 0;\r
+ my $error_list = "";\r
+ foreach my $required (@required_versions) {\r
+ if (! exists $config->{Versions}->{$required}) {\r
+ $requirements_met = 0;\r
+ if (!$first_missing) {\r
+ $first_missing = 1;\r
+ $error_list = "Fatal -- The following version(s) are not defined in $src/$version_path.\n";\r
+ }\r
+ $error_list .= "$required\n";\r
+ }\r
+ }\r
+ if (!$requirements_met) {\r
+ print $error_list;\r
+ exit(0);\r
+ }\r
+ # Apply any of these tags to filestem:\r
+ my $filestem = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};\r
+ $filestem =~ s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/;\r
+ $filestem =~ s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/;\r
+ $filestem =~ s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/;\r
+ $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name} = $filestem;\r
+ \r
+ # The build results are copied to a staging area, where the packager expects to find them.\r
+ # We put the staging area in the fixed area .../pismere/staging.\r
+ my $prepackage = $config->{Stages}->{PrePackage};\r
+ my $staging_area = "$wd\\staging";\r
+ chdir($wd) or die "Fatal -- couldn't chdir to $wd\n";\r
+ if ($verbose) {print "Info -- chdir to $wd\n";}\r
+ (-e $staging_area) or mkdir($staging_area);\r
+ \r
+ # Force Where From and To are relative to:\r
+ $prepackage->{CopyList}->{Config}->{From}->{root} = "$wd\\athena";\r
+ $prepackage->{CopyList}->{Config}->{To}->{root} = "$wd\\staging";\r
+ copyFiles($prepackage->{CopyList}, $config); ## Copy any files [this step takes a while]\r
+\r
+ chdir("staging\\install\\wix") or die "Fatal -- Couldn't cd to $wd\\staging\\install\\wix";\r
+ # Correct errors in files.wxi:\r
+ !system("sed 's/WorkingDirectory=\"\\[dirbin\\]\"/WorkingDirectory=\"dirbin\"/g' files.wxi > a.tmp") or die "Fatal -- Couldn't modify files.wxi.";\r
+ !system("mv a.tmp files.wxi") or die "Fatal -- Couldn't update files.wxi.";\r
+ \r
+ # Make sed script to run on the site-local configuration files:\r
+ local $tmpfile = "site-local.sed" ;\r
+ system("del $tmpfile");\r
+ # Basic substitutions:\r
+ local $dblback_wd = $wd;\r
+ $dblback_wd =~ s/\\/\\\\/g;\r
+ !system("echo s/%BUILDDIR%/$dblback_wd/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ local $dblback_staging = "$wd\\staging";\r
+ $dblback_staging =~ s/\\/\\\\/g;\r
+ !system("echo s/%TARGETDIR%/$dblback_staging/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ local $dblback_sample = "$wd\\staging\\sample";\r
+ $dblback_sample =~ s/\\/\\\\/g;\r
+ !system("echo s/%CONFIGDIR-WIX%/$dblback_sample/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ !system("echo s/%CONFIGDIR-NSI%/$dblback_staging/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ !system("echo s/%VERSION_MAJOR%/$config->{Versions}->{'VER_PROD_MAJOR_STR'}/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ !system("echo s/%VERSION_MINOR%/$config->{Versions}->{'VER_PROD_MINOR_STR'}/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ !system("echo s/%VERSION_PATCH%/$config->{Versions}->{'VER_PROD_REV_STR'}/ >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ # Strip out some defines so they can be replaced: [used for site-local.nsi]\r
+ !system("echo /\^!define\.\*RELEASE\.\*\$/d >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ !system("echo /\^!define\.\*DEBUG\.\*\$/d >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+ !system("echo /\^!define\.\*BETA\.\*\$/d >> $tmpfile") or die "Fatal -- Couldn't modify $tmpfile."; \r
+\r
+ # Run the script on site-local.wxi:\r
+ !system("sed -f $tmpfile site-local-tagged.wxi > site-local.wxi") or die "Fatal -- Couldn't modify site-local.wxi.";\r
+\r
+ # Now update site-local.nsi:\r
+ chdir "..\\nsis";\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ local $tmpfile = "site-local.sed" ;\r
+ !system("sed -f ..\\wix\\$tmpfile site-local-tagged.nsi > b.tmp") or die "Fatal -- Couldn't modify site-local.wxi.";\r
+ # Add DEBUG or RELEASE:\r
+ if ($switches[0]->{debug}->{value}) { ## debug build\r
+ !system("echo !define DEBUG >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
+ }\r
+ else { ## release build\r
+ !system("echo !define RELEASE >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
+ !system("echo !define NO_DEBUG >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
+ }\r
+ # Add BETA if present:\r
+ if ( exists $config->{Versions}->{'BETA_STR'}) {\r
+ !system("echo !define BETA $config->{Versions}->{'BETA_STR'} >> b.tmp") or die "Fatal -- Couldn't modify b.tmp."; \r
+ }\r
+ !system("mv -f b.tmp site-local.nsi") or die "Fatal -- Couldn't replace site-local.nsi.";\r
+\r
+ # Run the script on nsi-includes-tagged.nsi:\r
+ !system("sed -f ..\\wix\\$tmpfile nsi-includes-tagged.nsi > nsi-includes.nsi") or die "Fatal -- Couldn't modify nsi-includes.nsi.";\r
+\r
+ if ($verbose) {print "Info -- *** End prepackage.\n";}\r
+ \r
+ if ($verbose) {print "Info -- *** Begin package.\n";}\r
+ # Make the msi:\r
+ chdir("$wd\\staging\\install\\wix") or die "Fatal -- Couldn't cd to $wd\\staging\\install\\wix";\r
+ print "Info -- *** Make .msi:\n" if ($verbose);\r
+ !system("$MAKE") or die "Error -- msi installer build failed.";\r
+ \r
+ chdir("$wd\\staging\\install\\nsis") or die "Fatal -- Couldn't cd to $wd\\staging\\install\\nsis";\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ print "Info -- *** Make NSIS:\n" if ($verbose);\r
+ !system("cl.exe killer.cpp advapi32.lib") or die "Error -- nsis killer.exe not built.";\r
+ !system("rename killer.exe Killer.exe") or die "Error -- Couldn't rename killer.exe";\r
+ !system("makensis kfw.nsi") or die "Error -- executable installer build failed.";\r
\r
# Begin packaging extra items:\r
- my $fromRoot = $paths[0]->{src}->{path};\r
- my $toRoot = $paths[0]->{out}->{path};\r
- chdir($fromRoot); # Now in <src>.\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- system("rm -rf $toRoot") if (-d $toRoot);\r
- die "Fatal -- Couldn't remove $fromRoot\\$toRoot." if (-d $toRoot);\r
- mkdir($toRoot);\r
- my $zipsXML = $config->{Stages}->{PostPackage}->{Zips};\r
-\r
- $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{From}->{root} = "$src\\pismere"; ## Used after zips are made.\r
- $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{To}->{root} = "$src\\$toRoot\\ziptemp";\r
-\r
- local $i = 0;\r
- while ($zipsXML->{Zip}[$i]) {\r
- my $zip = $zipsXML->{Zip}[$i];\r
- if (exists $zip->{name}) { ## Ignore dummy entry.\r
- my $zipname = $zip->{filename};\r
- $zipname =~ s/%filestem%/$filestem/g;\r
- my $bMakeIt = 1;\r
- if (exists $zip->{Requires}) {\r
- local $j = 0;\r
- while ($zip->{Requires}->{Switch}[$j]) { ## Check Require switches\r
- local $switch = $zip->{Requires}->{Switch}[$j];\r
- if (exists $switch->{name}) { ## Ignore dummy entry\r
- # We handle REPOSITORY and CLEAN switches:\r
- if ($switch->{name} =~ /REPOSITORY/i) {\r
- $bMakeIt &&= ($switch->{value} =~ /$rverb/i); ## Repository verb must match requirement\r
- }\r
- elsif ($switch->{name} =~ /CLEAN/i) { ## Clean must be specified\r
- $bMakeIt &&= $clean;\r
- }\r
- else {print "Error -- Unsupported switch $switch->{name} in Requires in ".Dumper($zip);}\r
- }\r
- $j++;\r
- }\r
- if ( !$bMakeIt && (exists $zip->{Requires}->{ErrorMsg}) ) {\r
- print "Error -- $zip->{Requires}->{ErrorMsg}->{text}\n";\r
- }\r
- }\r
- if ($bMakeIt) {\r
- my $todir = "$src\\$toRoot\\ziptemp";\r
- system("rm -rf $todir") if (-d $todir);\r
- die "Fatal -- Couldn't remove $todir" if (-d $todir);\r
- mkdir($todir);\r
-# Add to the zip's config section. Don't copy Postpackage->Config, because the Zip's Config might contain substitution tags.\r
- $zip->{CopyList}->{Config}->{FileStem} = $config->{Stages}->{PostPackage}->{Config}->{FileStem}; ## Each zip uses the post package config.\r
- $zip->{CopyList}->{Config}->{From}->{root} = "$src\\pismere"; ## Used by zips\r
- $zip->{CopyList}->{Config}->{To}->{root} = "$src\\$toRoot\\ziptemp\\$zip->{topdir}";\r
- copyFiles($zip->{CopyList}, $config);\r
- # Drop down into <out>/ziptemp so the path to the added file won't include <out>:\r
- chdir $todir;\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
-\r
- # Prune any unwanted files or directories from the directory we're about to zip:\r
- if (exists $zip->{Prunes}) {\r
- # Use Unix find instead of Windows find. Save PATH so we can restore it when we're done:\r
- my $savedPATH = $ENV{PATH};\r
- $ENV{PATH} = $config->{CommandLine}->{Directories}->{unixfind}->{path}.";".$savedPATH;\r
- my $prunes = $zip->{Prunes};\r
- my $j=0;\r
- print "Info -- Processing prunes in ".`cd`."\n" if ($verbose);\r
- while ($prunes->{Prune}->[$j]) {\r
- if (exists $prunes->{Prune}->[$j]->{name}) { ## Don't process dummy entry!\r
- my $prune = $prunes->{Prune}->[$j]->{name};\r
- my $flags = $prunes->{Prune}->[$j]->{flags};\r
- $flags = "" if (!$flags);\r
- my $cmd = "find . -".$flags."name $prune";\r
- print "Info -- Looking for filenames containing $prune\n";\r
- my $list = `$cmd`;\r
- foreach $target (split("\n", $list)) {\r
- print "Info -- Pruning $target\n" if ($verbose);\r
- !system("rm -rf $target") or die "Error -- Couldn't remove $target.";;\r
- }\r
- }\r
- $j++;\r
- }\r
- $ENV{PATH} = $savedPATH;\r
- }\r
-\r
- my $zipfile = Archive::Zip->new();\r
- my $topdir = $zip->{topdir};\r
- $topdir =~ s/%filestem%/$filestem/g;\r
- $zipfile->addTree('.', $topdir);\r
- if (-e $zipname) {!system("rm -f $zipname") or die "Error -- Couldn't remove $zipname.";}\r
- $zipfile->writeToFileNamed($zipname);\r
- print "Info -- created $src\\$toRoot\\$zipname.\n" if ($verbose);\r
- !system("mv -f $zipname ..") or die "Error -- Couldn't move $zipname to ..";\r
- chdir ".."; ## Back to <out>\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- } ## End else OK to process zip\r
- } ## End not the dummy entry\r
- $i++; \r
- } ## End zip in xml.\r
- \r
- $todir = "$src\\$toRoot\\ziptemp"; ## Clean up any temp directory.\r
- system("rm -rf $todir") if (-d $todir);\r
- \r
- my $out = $config->{CommandLine}->{Directories}->{out}->{path};\r
- $config->{Stages}->{PostPackage}->{CopyList}->{Config} = $config->{Stages}->{PostPackage}->{Config}; ## Use the post package config.\r
- $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{From}->{root} = "$src\\pismere";\r
- $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{To}->{root} = "$src\\$out";\r
- copyFiles($config->{Stages}->{PostPackage}->{CopyList}, $config); ## Copy any files\r
- if ($verbose) {print "Info -- *** End package.\n";}\r
- }\r
- else {\r
- print "Info -- Package step skipped.";\r
- }\r
-\r
- system("rm -rf $src/a.tmp"); ## Clean up junk.\r
- \r
+ chdir($src); # Now in <src>.\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ system("rm -rf $toPath") if (-d $toPath);\r
+ die "Fatal -- Couldn't remove $src\\$toPath." if (-d $toPath);\r
+ mkdir($toPath);\r
+ my $zipsXML = $config->{Stages}->{PostPackage}->{Zips};\r
+\r
+ local $i = 0;\r
+ while ($zipsXML->{Zip}[$i]) {\r
+ local $zip = $zipsXML->{Zip}[$i];\r
+ makeZip($zip, $config) if (exists $zip->{name}); ## Ignore dummy entry.\r
+ $i++; \r
+ } ## End zip in xml.\r
+ \r
+ $ziptemp = "$src\\$toPath\\ziptemp"; ## Clean up any temp directory.\r
+ chdir("$src\\$toPath");\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ system("rm -rf $ziptemp") if (-d $ziptemp);\r
+ \r
+ my $out = $config->{CommandLine}->{Directories}->{out}->{path};\r
+ $config->{Stages}->{PostPackage}->{CopyList}->{Config} = $config->{Stages}->{PostPackage}->{Config}; ## Use the post package config.\r
+ $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{From}->{root} = "$src\\pismere";\r
+ $config->{Stages}->{PostPackage}->{CopyList}->{Config}->{To}->{root} = "$src\\$out";\r
+ copyFiles($config->{Stages}->{PostPackage}->{CopyList}, $config); ## Copy any files\r
+\r
+ if ($switches[0]->{sign}->{value}) {\r
+ signFiles($config->{Stages}->{PostPackage}->{Config}->{Signing}, $config);\r
+ }\r
+\r
+ if ($verbose) {print "Info -- *** End package.\n";}\r
+ }\r
+##-- Package action.\r
+\r
+ system("rm -rf $src/a.tmp"); ## Clean up junk.\r
+ system("rm -rf $src/$toPath/ziptemp"); ## Clean up junk.\r
+ \r
# End logging:\r
- if ($switches[0]->{logfile}->{value}) {$l->stop;}\r
+ if ($switches[0]->{logfile}->{value}) {$l->stop;}\r
\r
return 0;\r
- } ## End subroutine main.\r
+ } ## End subroutine main.\r
\r
$SIG{'INT'} = \&handler;\r
$SIG{'QUIT'} = \&handler;\r
use Data::Dumper;\r
\r
sub copyFiles {\r
- local ($xml, $config) = @_;\r
- local @switches = $config->{CommandLine}->{Options};\r
- local @files = $xml->{Files};\r
- # Check for includes:\r
- if (exists $xml->{Files}->{Include}->{path}) {\r
- my $includepath = $xml->{Files}->{Include}->{path};\r
- print "Info -- Including files from $includepath\n";\r
- my $savedDir = `cd`;\r
- $savedDir =~ s/\n//g;\r
- chdir $originalDir; ## Includes are relative to where we were invoked.\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
- my $tmp = new XML::Simple;\r
- my $includeXML = $tmp->XMLin($includepath);\r
- chdir $savedDir;\r
- print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ local ($xml, $config) = @_;\r
+ local @switches = $config->{CommandLine}->{Options};\r
+ local @files = $xml->{Files};\r
+ # Check for includes:\r
+ if (exists $xml->{Files}->{Include}->{path}) {\r
+ my $includepath = $xml->{Files}->{Include}->{path};\r
+ print "Info -- Including files from $includepath\n";\r
+ my $savedDir = `cd`;\r
+ $savedDir =~ s/\n//g;\r
+ chdir $originalDir; ## Includes are relative to where we were invoked.\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ my $tmp = new XML::Simple;\r
+ my $includeXML = $tmp->XMLin($includepath);\r
+ chdir $savedDir;\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
\r
- local $i = 0;\r
- while ($includeXML->{File}[$i]) { ## Copy File entries from includeXML.\r
- $files[0]->{File}[++$#{$files[0]->{File}}] = $includeXML->{File}[$i]; \r
- $i++;\r
- }\r
- delete $files->{Include};\r
- }\r
- ##++ Set up path substitution variables for use inside the copy loop:\r
- # A path can contain a variable part, which will be handled here. If the variable part is \r
- # the Always or BuildDependent tag, then the variable will be changed to the \r
- # build-type-dependent PathFragment.\r
- # If the variable part is the IgnoreTag, then the file will not be copied.\r
- # If the variable part is %filestem%, it will be replaced with Config->FileStem->name.\r
- my ($PathFragment, $BuildDependentTag, $IgnoreTag, $FileStemFragment, $fromRoot, $toRoot); \r
- my $bPathTags = (exists $xml->{Config}->{DebugArea}) && (exists $xml->{Config}->{ReleaseArea});\r
- my $bFileStem = (exists $xml->{Config}->{FileStem});\r
- \r
- if ($switches[0]->{debug}->{value}) { ## Debug build tags:\r
- $PathFragment = $xml->{Config}->{DebugArea}->{value};\r
- $BuildDependentTag = $xml->{Config}->{DebugTag}->{value};\r
- $IgnoreTag = $xml->{Config}->{ReleaseTag}->{value};\r
- }\r
- else { ## Release build tags:\r
- $PathFragment = $xml->{Config}->{ReleaseArea}->{value};\r
- $BuildDependentTag = $xml->{Config}->{ReleaseTag}->{value};\r
- $IgnoreTag = $xml->{Config}->{DebugTag}->{value};\r
- } \r
- my $AlwaysTag = $xml->{Config}->{AlwaysTag}->{value};\r
- $FileStemFragment = $xml->{Config}->{FileStem}->{name}; \r
- $fromRoot = $xml->{Config}->{From}->{root}; \r
- $toRoot = $xml->{Config}->{To}->{root}; \r
- ##-- Set up path substitution variables for use inside the copy loop.\r
- # For each file in the file list:\r
- # Substitute any variable parts of the path name.\r
- # Handle wildcards\r
- # Copy\r
+ local $i = 0;\r
+ while ($includeXML->{File}[$i]) { ## Copy File entries from includeXML.\r
+ $files[0]->{File}[++$#{$files[0]->{File}}] = $includeXML->{File}[$i]; \r
+ $i++;\r
+ }\r
+ delete $files->{Include};\r
+ }\r
+ ##++ Set up path substitution variables for use inside the copy loop:\r
+ # A path can contain a variable part, which will be handled here. If the variable part is \r
+ # the Always or BuildDependent tag, then the variable will be changed to the \r
+ # build-type-dependent PathFragment.\r
+ # If the variable part is the IgnoreTag, then the file will not be copied.\r
+ # If the variable part is %filestem%, it will be replaced with Config->FileStem->name.\r
+ my ($PathFragment, $BuildDependentTag, $IgnoreTag, $FileStemFragment, $fromRoot, $toRoot); \r
+ my $bPathTags = (exists $xml->{Config}->{DebugArea}) && (exists $xml->{Config}->{ReleaseArea});\r
+ my $bFileStem = (exists $xml->{Config}->{FileStem});\r
+ \r
+ if ($switches[0]->{debug}->{value}) { ## Debug build tags:\r
+ $PathFragment = $xml->{Config}->{DebugArea}->{value};\r
+ $BuildDependentTag = $xml->{Config}->{DebugTag}->{value};\r
+ $IgnoreTag = $xml->{Config}->{ReleaseTag}->{value};\r
+ }\r
+ else { ## Release build tags:\r
+ $PathFragment = $xml->{Config}->{ReleaseArea}->{value};\r
+ $BuildDependentTag = $xml->{Config}->{ReleaseTag}->{value};\r
+ $IgnoreTag = $xml->{Config}->{DebugTag}->{value};\r
+ } \r
+ my $AlwaysTag = $xml->{Config}->{AlwaysTag}->{value};\r
+ $FileStemFragment = $xml->{Config}->{FileStem}->{name}; \r
+ $fromRoot = $xml->{Config}->{From}->{root}; \r
+ $toRoot = $xml->{Config}->{To}->{root}; \r
+ ##-- Set up path substitution variables for use inside the copy loop.\r
+ # For each file in the file list:\r
+ # Substitute any variable parts of the path name.\r
+ # Handle wildcards\r
+ # Copy\r
\r
- local $i = 0;\r
- my $bOldDot = 1;\r
- my $bDot = 0;\r
- while ($files[0]->{File}[$i]) {\r
+ local $i = 0;\r
+ my $bOldDot = 1;\r
+ my $bDot = 0;\r
+ while ($files[0]->{File}[$i]) {\r
\r
- my ($name, $newname, $from, $to, $file);\r
- $file = $files[0]->{File}->[$i];\r
- $name = $file->{name};\r
- if (exists $file->{newname}) {$newname = $file->{newname};}\r
- else {$newname = $name;}\r
- if ($name && (! exists $file->{ignore})) { ## Ignore or process this entry?\r
- $from = "$fromRoot\\$file->{from}\\$name";\r
- $to = "$toRoot\\$file->{to}\\$newname";\r
- if ( $bPathTags || $bFileStem || (index($from.$to, $IgnoreTag) <0) ) { ## Copy this file?\r
- if ($bPathTags) { ## Apply PathTag substitutions:\r
- $from =~ s/$AlwaysTag/$PathFragment/g;\r
- $to =~ s/$AlwaysTag/$PathFragment/g;\r
- $from =~ s/$BuildDependentTag/$PathFragment/g;\r
- $to =~ s/$BuildDependentTag/$PathFragment/g;\r
- }\r
- if ($bFileStem) { ## FileStem substitution?\r
- $from =~ s/%filestem%/$FileStemFragment/g;\r
- $to =~ s/%filestem%/$FileStemFragment/g;\r
- } \r
- # %-DEBUG% substitution:\r
- local $DebugFragment = ($switches[0]->{debug}->{value}) ? "-DEBUG" : "";\r
-if ($from =~ /\-DEBUG/) {print "\n$from ... \n";}\r
- $from =~ s/%\-DEBUG%/$DebugFragment/g;\r
- $to =~ s/%\-DEBUG%/$DebugFragment/g;\r
-if ($from =~ /DEBUG/) {print "\n$from ... \n";}\r
- $to =~ s/\*.*//; ## Truncate to path before any wildcard\r
+ my ($name, $newname, $from, $to, $file);\r
+ $file = $files[0]->{File}->[$i];\r
+ $name = $file->{name};\r
+ if (exists $file->{newname}) {$newname = $file->{newname};}\r
+ else {$newname = $name;}\r
+ if ($name && (! exists $file->{ignore})) { ## Ignore or process this entry?\r
+ $from = "$fromRoot\\$file->{from}\\$name";\r
+ $to = "$toRoot\\$file->{to}\\$newname";\r
+ # Copy this file? Check for ignore tag [debug-only in release mode or vice versa].\r
+ if ( $bPathTags || $bFileStem || (index($from.$to, $IgnoreTag) <0) ) { \r
+ if ($bPathTags) { ## Apply PathTag substitutions:\r
+ $from =~ s/$AlwaysTag/$PathFragment/g;\r
+ $to =~ s/$AlwaysTag/$PathFragment/g;\r
+ $from =~ s/$BuildDependentTag/$PathFragment/g;\r
+ $to =~ s/$BuildDependentTag/$PathFragment/g;\r
+ }\r
+ if ($bFileStem) { ## FileStem substitution?\r
+ $from =~ s/%filestem%/$FileStemFragment/g;\r
+ $to =~ s/%filestem%/$FileStemFragment/g;\r
+ } \r
+ # %-DEBUG% substitution:\r
+ local $DebugFragment = ($switches[0]->{debug}->{value}) ? "-DEBUG" : "";\r
+ $from =~ s/%\-DEBUG%/$DebugFragment/g;\r
+ $to =~ s/%\-DEBUG%/$DebugFragment/g;\r
+ $to =~ s/\*.*//; ## Truncate to path before any wildcard\r
\r
- my $bCopyOK = 1;\r
- my $fromcheck = $from;\r
- my $bRequired = ! (exists $file->{notrequired});\r
- if ($name =~ /\*/) { ## Wildcard case\r
- $fromcheck =~ s/\*.*//;\r
- if ($bRequired && (! -d $fromcheck)) {\r
- if ($bDot) {print "\n";}\r
- die "Fatal -- Can't find $fromcheck";\r
- }\r
- $bCopyOK = !system("echo D | xcopy /D /F /Y /S $from $to > a.tmp 2>NUL");\r
- }\r
- else { ## Specific file case\r
- if ($bRequired && (! -e $fromcheck)) {\r
- if ($bDot) {print "\n";}\r
- die "Fatal -- Can't find $fromcheck";\r
- }\r
- $bCopyOK = !system("echo F | xcopy /D /F /Y $from $to > a.tmp 2>NUL");\r
- }\r
+ my $bCopyOK = 1;\r
+ my $fromcheck = $from;\r
+ my $bRequired = ! (exists $file->{notrequired});\r
+ if ($name =~ /\*/) { ## Wildcard case\r
+ $fromcheck =~ s/\*.*//;\r
+ if ($bRequired && (! -d $fromcheck)) {\r
+ if ($bDot) {print "\n";}\r
+ die "Fatal -- Can't find $fromcheck";\r
+ }\r
+ $bCopyOK = !system("echo D | xcopy /D /F /Y /S $from $to > a.tmp 2>NUL");\r
+ }\r
+ else { ## Specific file case\r
+ if ($bRequired && (! -e $fromcheck)) {\r
+ if ($bDot) {print "\n";}\r
+ die "Fatal -- Can't find $fromcheck";\r
+ }\r
+ $bCopyOK = !system("echo F | xcopy /D /F /Y $from $to > a.tmp 2>NUL");\r
+ }\r
\r
- if ($bCopyOK) { ## xcopy OK - show progress\r
- # To show progress when files aren't copied, print a string of dots.\r
- open(MYINPUTFILE, "<a.tmp");\r
- my(@lines) = <MYINPUTFILE>;\r
- foreach $line (@lines) { \r
- $bDot = ($line =~ /^0/);\r
- }\r
- close(MYINPUTFILE);\r
- if (!$bDot && $bOldDot) {print "\n";}\r
- if ($bDot) {print "."; STDOUT->flush;}\r
- else {print "$from copied to $to\n";}\r
- $bOldDot = $bDot;\r
- }\r
- else { ## xcopy failed\r
- if (!exists $file->{notrequired}) {\r
- if ($bDot) {print "\n";}\r
- die "Fatal -- Copy of $from to $to failed";\r
- }\r
- } ## End xcopy succeed or fail\r
- } ## End not dummy entry nor ignored\r
- }\r
- $i++;\r
- }\r
- if ($bDot) {print "\n";}\r
- }\r
+ if ($bCopyOK) { ## xcopy OK - show progress\r
+ # To show progress when files aren't copied, print a string of dots.\r
+ open(MYINPUTFILE, "<a.tmp");\r
+ my(@lines) = <MYINPUTFILE>;\r
+ foreach $line (@lines) { \r
+ $bDot = ($line =~ /^0/);\r
+ }\r
+ close(MYINPUTFILE);\r
+ if (!$bDot && $bOldDot) {print "\n";}\r
+ if ($bDot) {print "."; STDOUT->flush;}\r
+ else {print "$from copied to $to\n";}\r
+ $bOldDot = $bDot;\r
+ }\r
+ else { ## xcopy failed\r
+ if (!exists $file->{notrequired}) {\r
+ if ($bDot) {print "\n";}\r
+ die "Fatal -- Copy of $from to $to failed";\r
+ }\r
+ } ## End xcopy succeed or fail\r
+ } ## End not dummy entry nor ignored\r
+ }\r
+ $i++;\r
+ }\r
+ if ($bDot) {print "\n";}\r
+ }\r
\r
return 1;\r
<?xml version="1.0" encoding="utf-8" ?>\r
- <Files>\r
- <!-- File from paths are relative to <src>\pismere\athena -->\r
- <!-- File to paths are relative to <src>\pismere\staging -->\r
- <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
- <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
+ <Files>\r
+ <!-- File from paths are relative to <src>\pismere\athena -->\r
+ <!-- File to paths are relative to <src>\pismere\staging -->\r
+ <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
+ <!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
\r
- <!-- Build-dependent files (from release or debug build): -->\r
- <File name="netidmgr.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="netidmgr_version.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr"/>\r
- <File name="perfstat.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr"/>\r
- <File name="utils.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="sync.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="mstring.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="kplugin.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="kmq.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="kmm.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khuidefs.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khtracker.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khrescache.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khremote.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khprops.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khnewcred.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khmsgtypes.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khlist.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khhtlink.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="kherror.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="kherr.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khdefs.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khconfigui.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khalerts.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khactiondef.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="khaction.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="kcreddb.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="kconfig.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="hashtable.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
- <File name="nidmgr32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="xpprof32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="wshelp32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="loadfuncs.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="leashw32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="krbv4w32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="krbcc32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="krb5_32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="krb524.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="kclnt32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="gssapi32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="getopt.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="delaydlls.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="comerr32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
- <File name="netidmgr.pdb" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
- <File name="nidmgr32.pdb" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
- <File name="kfwcpcc.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kfwlogon.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="netidmgr.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="nidmgr32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb4cred.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb5cred.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="mit2ms.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kdeltkt.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kcpytkt.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="xpprof32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="wshelp32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="ms2mit.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="leashw32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="leash32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="leash32.chm" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kpasswd.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kvno.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krbv4w32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krbcc32s.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krbcc32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="k5sprt32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb5_32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb524.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="klist.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kinit.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kdestroy.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kclnt32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="k524init.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gssapi32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gss-server.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gss-client.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gss.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="comerr32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="netidmgr.exe" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
- <File name="nidmgr32.dll" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
- <File name="kfwcpcc.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kfwlogon.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="netidmgr.chm" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="netidmgr.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="netiddev.chm" from="..\target\bin\i386\%bldtype%\" to="\doc" />\r
- <File name="nidmgr32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb4cred_en_us.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb4cred.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb5cred_en_us.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb5cred.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="mit2ms.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kdeltkt.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kcpytkt.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="xpprof32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="wshelp32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="ms2mit.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="leashw32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="leash32.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kpasswd.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kvno.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krbv4w32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krbcc32s.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krbcc32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="k5sprt32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb5_32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="krb524.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="klist.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kinit.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kdestroy.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="kclnt32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="k524init.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gssapi32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gss-server.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gss-client.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="gss.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="comerr32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
- <File name="NetIddev.chm" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\doc\" to="\doc" newname="netiddev.chm" />\r
+ <!-- Build-dependent files (from release or debug build): -->\r
+ <File name="netidmgr_version.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr"/>\r
+ <File name="netidmgr.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="perfstat.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr"/>\r
+ <File name="utils.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="sync.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="mstring.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="kplugin.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="kmq.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="kmm.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khuidefs.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khtracker.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khrescache.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khremote.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khprops.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khnewcred.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khmsgtypes.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khlist.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khhtlink.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="kherror.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="kherr.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khdefs.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khconfigui.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khalerts.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khactiondef.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="khaction.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="kcreddb.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="kconfig.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="hashtable.h" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\inc\" to="\inc\netidmgr" />\r
+ <File name="nidmgr32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="xpprof32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="wshelp32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="loadfuncs.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="leashw32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="krbv4w32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="krbcc32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="krb5_32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="krb524.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="kclnt32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="gssapi32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="getopt.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="delaydlls.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="comerr32.lib" from="..\target\lib\i386\%bldtype%\" to="\lib\i386" />\r
+ <File name="netidmgr.exe" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
+ <File name="nidmgr32.dll" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
+ <File name="netidmgr.pdb" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
+ <File name="nidmgr32.pdb" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\w2k\" to="\bin\i386\w2k" />\r
+ <File name="kfwcpcc.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kfwlogon.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="netidmgr.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="nidmgr32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb4cred.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb5cred.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="mit2ms.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kdeltkt.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kcpytkt.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="xpprof32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="wshelp32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="ms2mit.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="leashw32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="leash32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="leash32.chm" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kpasswd.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kvno.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krbv4w32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krbcc32s.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krbcc32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="k5sprt32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb5_32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb524.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="klist.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kinit.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kdestroy.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kclnt32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="k524init.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gssapi32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gss-server.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gss-client.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gss.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="comerr32.pdb" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kfwcpcc.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kfwlogon.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="netidmgr.chm" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="netidmgr.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="nidmgr32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb4cred_en_us.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb4cred.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb5cred_en_us.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb5cred.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="mit2ms.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kdeltkt.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kcpytkt.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="xpprof32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="wshelp32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="ms2mit.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="leashw32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="leash32.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kpasswd.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kvno.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krbv4w32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krbcc32s.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krbcc32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="k5sprt32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb5_32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="krb524.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="klist.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kinit.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kdestroy.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="kclnt32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="k524init.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gssapi32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gss-server.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gss-client.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="gss.exe" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="comerr32.dll" from="..\target\bin\i386\%bldtype%\" to="\bin\i386" />\r
+ <File name="netiddev.chm" from="..\target\bin\i386\%bldtype%\" to="\doc" />\r
+ <File name="NetIddev.chm" from="auth\krb5\src\windows\identity\obj\i386\%bldtype%\doc\" to="\doc" newname="netiddev.chm" />\r
\r
- <!-- Build-INdependent files, always copied: -->\r
- <File name="relnotes.html" from="..\doc\kerberos\" to="\doc" />\r
- <File name="leash_userdoc.pdf" from="auth\leash\help\" to="\doc" />\r
- <File name="NetIdMgr.pdf" from="auth\krb5\src\windows\identity\doc\" to="\doc" newname="netidmgr_userdoc.pdf" />\r
- <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\" to="\sample\templates\credprov\" />\r
- <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\images\" to="\sample\templates\credprov\images" />\r
- <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\" to="\sample\templates\credprov\lang" />\r
- <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\en_us\" to="\sample\templates\credprov\lang\en_us" />\r
- <File name="kclient.h" from="auth\krb4\kclient\include\" to="\inc\kclient" />\r
- <File name="kcmacerr.h" from="auth\krb4\kclient\include\" to="\inc\kclient" />\r
- <File name="com_err.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="conf-pc.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="conf.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="des.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="kadm_err.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="krb.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="krberr.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="mit_copy.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="osconf.h" from="auth\krb4\include\" to="\inc\krb4" />\r
- <File name="com_err.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
- <File name="gssapi.h" from="auth\krb5\src\include\gssapi\" to="\inc\krb5\gssapi" />\r
- <File name="gssapi_generic.h" from="auth\krb5\src\include\gssapi\" to="\inc\krb5\gssapi" />\r
- <File name="gssapi_krb5.h" from="auth\krb5\src\include\gssapi\" to="\inc\krb5\gssapi" />\r
- <File name="des.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
- <File name="kadm_err.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
- <File name="krb_err.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
- <File name="krb.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
- <File name="mit-copyright.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
- <File name="krb5.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
- <File name="profile.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
- <File name="win-mac.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
- <File name="krb5.h" from="auth\krb5\src\include\krb5\" to="\inc\krb5\krb5" notrequired="true" />\r
- <File name="cacheapi.h" from="auth\krbcc\include\" to="\inc\krbcc" />\r
- <File name="leasherr.h" from="auth\leash\include\" to="\inc\leash" />\r
- <File name="leashinfo.h" from="auth\leash\include\" to="\inc\leash" />\r
- <File name="leashwin.h" from="auth\leash\include\" to="\inc\leash" />\r
- <File name="loadfuncs-afs.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-afs36.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-com_err.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-krb.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-krb5.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-krb524.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-leash.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-lsa.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-profile.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs-wshelper.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs.c" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="loadfuncs.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
- <File name="nameser.h" from="wshelper\include\arpa\" to="\inc\wshelper\arpa" />\r
- <File name="hesiod.h" from="wshelper\include\" to="\inc\wshelper" />\r
- <File name="mitwhich.h" from="wshelper\include\" to="\inc\wshelper" />\r
- <File name="resolv.h" from="wshelper\include\" to="\inc\wshelper" />\r
- <File name="wshelper.h" from="wshelper\include\" to="\inc\wshelper" />\r
- <File name="kfw-fixed.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="kfw.ico" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="kfw.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="KfWConfigPage.ini" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="KfWConfigPage2.ini" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="killer.cpp" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="licenses.rtf" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="site-local-tagged.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="nsi-includes-tagged.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="utils.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
- <File name="msi-deployment-guide.txt" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="config.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="features.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="files.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="kfw.wxs" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="Makefile" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="property.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="site-local-tagged.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
- <File name="bannrbmp.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="completi.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="custicon.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="dlgbmp.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="exclamic.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="info.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="insticon.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="new.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="removico.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="repairic.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="up.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
- <File name="custom.cpp" from="auth\krb5\src\windows\installer\wix\custom\" to="\install\wix\custom" />\r
- <File name="custom.h" from="auth\krb5\src\windows\installer\wix\custom\" to="\install\wix\custom" />\r
- <File name="config_1033.wxi" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
- <File name="strings_1033.wxl" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
- <File name="ui_1033.wxi" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
- <File name="license.rtf" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
- <File name="krb5.conf" from="auth\krb5\src\config-files\" to="\sample" newname="krb5.ini" />\r
- <File name="krb.con" from="auth\krb4\sample-config\" to="\sample" />\r
- <File name="krbrealm.con" from="auth\krb4\sample-config\" to="\sample" />\r
- </Files>
\ No newline at end of file
+ <!-- Build-INdependent files, always copied: -->\r
+ <File name="relnotes.html" from="..\doc\kerberos\" to="\doc" />\r
+ <File name="leash_userdoc.pdf" from="auth\leash\help\" to="\doc" />\r
+ <File name="NetIdMgr.pdf" from="auth\krb5\src\windows\identity\doc\" to="\doc" newname="netidmgr_userdoc.pdf" />\r
+ <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\" to="\sample\templates\credprov\" />\r
+ <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\images\" to="\sample\templates\credprov\images" />\r
+ <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\" to="\sample\templates\credprov\lang" />\r
+ <File name="*" from="auth\krb5\src\windows\identity\sample\templates\credprov\lang\en_us\" to="\sample\templates\credprov\lang\en_us" />\r
+ <File name="kclient.h" from="auth\krb4\kclient\include\" to="\inc\kclient" />\r
+ <File name="kcmacerr.h" from="auth\krb4\kclient\include\" to="\inc\kclient" />\r
+ <File name="com_err.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="conf-pc.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="conf.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="des.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="kadm_err.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="krb.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="krberr.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="mit_copy.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="osconf.h" from="auth\krb4\include\" to="\inc\krb4" />\r
+ <File name="com_err.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
+ <File name="krb5.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
+ <File name="profile.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
+ <File name="win-mac.h" from="auth\krb5\src\include\" to="\inc\krb5" />\r
+ <File name="krb5.h" from="auth\krb5\src\include\krb5\" to="\inc\krb5\krb5" notrequired="true" />\r
+ <File name="gssapi.h" from="auth\krb5\src\include\gssapi\" to="\inc\krb5\gssapi" />\r
+ <File name="gssapi_generic.h" from="auth\krb5\src\include\gssapi\" to="\inc\krb5\gssapi" />\r
+ <File name="gssapi_krb5.h" from="auth\krb5\src\include\gssapi\" to="\inc\krb5\gssapi" />\r
+ <File name="des.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
+ <File name="kadm_err.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
+ <File name="krb_err.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
+ <File name="krb.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
+ <File name="mit-copyright.h" from="auth\krb5\src\include\KerberosIV\" to="\inc\krb5\KerberosIV" />\r
+ <File name="cacheapi.h" from="auth\krbcc\include\" to="\inc\krbcc" />\r
+ <File name="leasherr.h" from="auth\leash\include\" to="\inc\leash" />\r
+ <File name="leashinfo.h" from="auth\leash\include\" to="\inc\leash" />\r
+ <File name="leashwin.h" from="auth\leash\include\" to="\inc\leash" />\r
+ <File name="loadfuncs-afs.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-afs36.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-com_err.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-krb.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-krb5.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-krb524.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-leash.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-lsa.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-profile.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs-wshelper.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs.c" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="loadfuncs.h" from="util\loadfuncs\" to="\inc\loadfuncs" />\r
+ <File name="nameser.h" from="wshelper\include\arpa\" to="\inc\wshelper\arpa" />\r
+ <File name="hesiod.h" from="wshelper\include\" to="\inc\wshelper" />\r
+ <File name="mitwhich.h" from="wshelper\include\" to="\inc\wshelper" />\r
+ <File name="resolv.h" from="wshelper\include\" to="\inc\wshelper" />\r
+ <File name="wshelper.h" from="wshelper\include\" to="\inc\wshelper" />\r
+ <File name="kfw-fixed.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="kfw.ico" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="kfw.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="KfWConfigPage.ini" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="KfWConfigPage2.ini" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="killer.cpp" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="licenses.rtf" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="site-local-tagged.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="nsi-includes-tagged.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="utils.nsi" from="auth\krb5\src\windows\installer\nsis\" to="\install\nsis" />\r
+ <File name="msi-deployment-guide.txt" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="config.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="features.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="files.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="kfw.wxs" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="Makefile" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="property.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="site-local-tagged.wxi" from="auth\krb5\src\windows\installer\wix\" to="\install\wix" />\r
+ <File name="bannrbmp.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="completi.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="custicon.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="dlgbmp.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="exclamic.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="info.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="insticon.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="new.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="removico.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="repairic.ico" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="up.bmp" from="auth\krb5\src\windows\installer\wix\Binary\" to="\install\wix\Binary" />\r
+ <File name="custom.cpp" from="auth\krb5\src\windows\installer\wix\custom\" to="\install\wix\custom" />\r
+ <File name="custom.h" from="auth\krb5\src\windows\installer\wix\custom\" to="\install\wix\custom" />\r
+ <File name="config_1033.wxi" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
+ <File name="strings_1033.wxl" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
+ <File name="ui_1033.wxi" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
+ <File name="license.rtf" from="auth\krb5\src\windows\installer\wix\lang\" to="\install\wix\lang" />\r
+ <File name="krb5.conf" from="auth\krb5\src\config-files\" to="\sample" newname="krb5.ini" />\r
+ <File name="krb.con" from="auth\krb4\sample-config\" to="\sample" />\r
+ <File name="krbrealm.con" from="auth\krb4\sample-config\" to="\sample" />\r
+ </Files>
\ No newline at end of file
--- /dev/null
+#!perl -w\r
+\r
+#use strict;\r
+use Data::Dumper;\r
+\r
+require "signfiles.pl";\r
+\r
+sub makeZip {\r
+ local ($zip, $config) = @_;\r
+\r
+ local $src = $config->{CommandLine}->{Directories}->{src}->{path};\r
+ local $toPath = $config->{CommandLine}->{Directories}->{out}->{path};\r
+ local @switches = $config->{CommandLine}->{Options};\r
+ local $zipname = $zip->{filename};\r
+ local $filestem = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};\r
+ $zipname =~ s/%filestem%/$filestem/g;\r
+ if (exists $zip->{Requires}) {\r
+ local $bMakeIt = 1;\r
+ local $rverb = $switches[0]->{repository}->{value};\r
+ local $j = 0;\r
+ while ($zip->{Requires}->{Switch}[$j]) { ## Check Require switches\r
+ local $switch = $zip->{Requires}->{Switch}[$j];\r
+ if (exists $switch->{name}) { ## Ignore dummy entry\r
+ # We handle REPOSITORY and CLEAN switches:\r
+ if ($switch->{name} =~ /REPOSITORY/i) {\r
+ $bMakeIt &&= ($switch->{value} =~ /$rverb/i); ## Repository verb must match requirement\r
+ }\r
+ elsif ($switch->{name} =~ /CLEAN/i) { ## Clean must be specified\r
+ $bMakeIt &&= $clean;\r
+ }\r
+ else {print "Error -- Unsupported switch $switch->{name} in Requires in ".Dumper($zip);\r
+ $bMakeIt = 0;\r
+ }\r
+ }\r
+ $j++;\r
+ } \r
+ if ( !$bMakeIt ) {\r
+ if (exists $zip->{Requires}->{ErrorMsg}) {\r
+ print "Error -- $zip->{Requires}->{ErrorMsg}->{text}\n";\r
+ }\r
+ else {\r
+ print "Error -- requirements not met for building $zipname.\n";\r
+ }\r
+ return 0;\r
+ }\r
+ }\r
+ \r
+ local $ziptemp = "$src\\$toPath\\ziptemp";\r
+ chdir "$src\\$toPath";\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+ system("rm -rf $ziptemp") if (-d $ziptemp);\r
+ die "Fatal -- Couldn't remove $ziptemp" if (-d $ziptemp);\r
+ mkdir($ziptemp);\r
+ # Set up the zip's config section:\r
+ $zip->{Config} = $config->{Stages}->{PostPackage}->{Config};\r
+ # Add to the copylist's config section. Don't copy Postpackage->Config, \r
+ # because the CopyList's Config might contain substitution tags.\r
+ $zip->{CopyList}->{Config}->{FileStem}->{name} = $config->{Stages}->{PostPackage}->{Config}->{FileStem}->{name};\r
+ $zip->{CopyList}->{Config}->{From}->{root} = "$src\\pismere"; ## Add zip-specific config settings.\r
+ $zip->{CopyList}->{Config}->{To}->{root} = "$ziptemp\\$zip->{topdir}";\r
+ copyFiles($zip->{CopyList}, $config);\r
+ # Drop down into <out>/ziptemp so the path to the added file won't include <out>:\r
+ chdir $ziptemp;\r
+ print "Info -- chdir to ".`cd`."\n" if ($verbose);\r
+\r
+ # Prune any unwanted files or directories from the directory we're about to zip:\r
+ if (exists $zip->{Prunes}) {\r
+ # Use Unix find instead of Windows find. Save PATH so we can restore it when we're done:\r
+ local $savedPATH = $ENV{PATH};\r
+ $ENV{PATH} = $config->{CommandLine}->{Directories}->{unixfind}->{path}.";".$savedPATH;\r
+ local $prunes = $zip->{Prunes};\r
+ local $j = 0;\r
+ print "Info -- Processing prunes in ".`cd`."\n" if ($verbose);\r
+ while ($prunes->{Prune}->[$j]) {\r
+ if (exists $prunes->{Prune}->[$j]->{name}) { ## Don't process dummy entry!\r
+ local $prune = $prunes->{Prune}->[$j]->{name};\r
+ local $flags = $prunes->{Prune}->[$j]->{flags};\r
+ $flags = "" if (!$flags);\r
+ local $cmd = "find . -".$flags."name $prune";\r
+ print "Info -- Looking for filenames containing $prune\n";\r
+ local $list = `$cmd`;\r
+ foreach $target (split("\n", $list)) {\r
+ print "Info -- Pruning $target\n" if ($verbose);\r
+ !system("rm -rf $target") or die "Error -- Couldn't remove $target.";;\r
+ }\r
+ }\r
+ $j++;\r
+ }\r
+ $ENV{PATH} = $savedPATH;\r
+ }\r
+ \r
+ # Sign files:\r
+ if ($switches[0]->{sign}->{value}) {\r
+ signFiles($zip->{Config}->{Signing}, $config);\r
+ }\r
+ \r
+ local $zipfile = Archive::Zip->new();\r
+ local $topdir = $zip->{topdir};\r
+ $topdir =~ s/%filestem%/$filestem/g;\r
+ $zipfile->addTree('.', $topdir);\r
+ if (-e $zipname) {!system("rm -f $zipname") or die "Error -- Couldn't remove $zipname.";}\r
+ $zipfile->writeToFileNamed($zipname);\r
+ print "Info -- created $src\\$toPath\\$zipname.\n" if ($verbose);\r
+ # move .zip from <src>/<out>/ziptemp to <src>/<out>.\r
+ !system("mv -f $zipname ..") or die "Error -- Couldn't move $zipname to ..";\r
+ }\r
+ \r
+return 1;
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>\r
<Files>\r
<!-- File from paths are relative to <src>/pismere. -->\r
- <!-- File to paths are relative to <out>. -->\r
- <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
+ <!-- File to paths are relative to <out>. -->\r
+ <File dummy="foo" /> <!-- Forces XML::Simple behavior -->\r
<!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->\r
\r
- <File name="relnotes.html" from="doc\kerberos" to="doc" />\r
- <File name="kclient.rtf" from="athena\auth\krb4\kclient\doc" to="doc" />\r
+ <File name="relnotes.html" from="doc\kerberos" to="doc" />\r
+ <File name="kclient.rtf" from="athena\auth\krb4\kclient\doc" to="doc" />\r
\r
- <File name="*.h" from="staging\inc" to="inc" />\r
-<!-- \r
- <File name="*.h" from="staging\inc\kclient" to="inc\kclient\" />\r
- <File name="*.h" from="staging\inc\krb4" to="inc\krb4\" />\r
- <File name="*.h" from="staging\inc\krb5" to="inc\krb5\" />\r
+ <File name="*.h" from="staging\inc" to="inc" />\r
\r
- <File name="gssapi.h" from="" to="" inc\krb5\gssapi\\r
- <File name="gssapi_generic.h" from="" to="" inc\krb5\gssapi\\r
- <File name="gssapi_krb5.h" from="" to="" inc\krb5\gssapi\\r
+ <File name="*.*" from="staging\install\nsis" to="install\nsis\" />\r
\r
- <File name="des.h" from="" to="" inc\krb5\KerberosIV\\r
- <File name="kadm_err.h" from="" to="" inc\krb5\KerberosIV\\r
- <File name="krb.h" from="" to="" inc\krb5\KerberosIV\\r
- <File name="krb_err.h" from="" to="" inc\krb5\KerberosIV\\r
- <File name="mit-copyright.h" from="" to="" inc\krb5\KerberosIV\\r
+ <File name="MITKerberosForWindows%-DEBUG%.exe"\r
+ from="staging\install\nsis" to="install\nsis\" newname="%filestem%.exe" />\r
+ <!-- We'll clean up the MITKerberosForWindows.exe in the target directory in a later step. -->\r
\r
- <File name="krb5.h" from="" to="" inc\krb5\krb5\\r
-\r
- <File name="cacheapi.h" from="" to="" inc\krbcc\\r
-\r
- <File name="leasherr.h" from="" to="" inc\leash\\r
- <File name="leashinfo.h" from="" to="" inc\leash\\r
- <File name="leashwin.h" from="" to="" inc\leash\\r
-\r
- <File name="loadfuncs.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-afs.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-afs36.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-com_err.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-krb.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-krb5.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-krb524.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-leash.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-lsa.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-profile.h" from="" to="" inc\loadfuncs\\r
- <File name="loadfuncs-wshelper.h" from="" to="" inc\loadfuncs\\r
-\r
- <File name="loadfuncs.c" from="" to="" inc\loadfuncs\\r
-\r
- <File name="hashtable.h" from="" to="" inc\netidmgr\\r
- <File name="kconfig.h" from="" to="" inc\netidmgr\\r
- <File name="kcreddb.h" from="" to="" inc\netidmgr\\r
- <File name="khaction.h" from="" to="" inc\netidmgr\\r
- <File name="khactiondef.h" from="" to="" inc\netidmgr\\r
- <File name="khalerts.h" from="" to="" inc\netidmgr\\r
- <File name="khconfigui.h" from="" to="" inc\netidmgr\\r
- <File name="khdefs.h" from="" to="" inc\netidmgr\\r
- <File name="kherr.h" from="" to="" inc\netidmgr\\r
- <File name="kherror.h" from="" to="" inc\netidmgr\\r
- <File name="khhtlink.h" from="" to="" inc\netidmgr\\r
- <File name="khlist.h" from="" to="" inc\netidmgr\\r
- <File name="khmsgtypes.h" from="" to="" inc\netidmgr\\r
- <File name="khnewcred.h" from="" to="" inc\netidmgr\\r
- <File name="khprops.h" from="" to="" inc\netidmgr\\r
- <File name="khremote.h" from="" to="" inc\netidmgr\\r
- <File name="khrescache.h" from="" to="" inc\netidmgr\\r
- <File name="khtracker.h" from="" to="" inc\netidmgr\\r
- <File name="khuidefs.h" from="" to="" inc\netidmgr\\r
- <File name="kmm.h" from="" to="" inc\netidmgr\\r
- <File name="kmq.h" from="" to="" inc\netidmgr\\r
- <File name="kplugin.h" from="" to="" inc\netidmgr\\r
- <File name="mstring.h" from="" to="" inc\netidmgr\\r
- <File name="netidmgr.h" from="" to="" inc\netidmgr\\r
- <File name="netidmgr_version.h" from="" to="" inc\netidmgr\\r
- <File name="perfstat.h" from="" to="" inc\netidmgr\\r
- <File name="sync.h" from="" to="" inc\netidmgr\\r
- <File name="utils.h" from="" to="" inc\netidmgr\\r
-\r
- <File name="nameser.h" from="" to="" inc\wshelper\arpa\\r
-\r
- <File name="hesiod.h" from="" to="" inc\wshelper\\r
- <File name="mitwhich.h" from="" to="" inc\wshelper\\r
- <File name="resolv.h" from="" to="" inc\wshelper\\r
- <File name="wshelper.h" from="" to="" inc\wshelper\\r
--->\r
-\r
- <File name="*.*" from="staging\install\nsis" to="install\nsis\" />\r
-<!-- <File name="kfw-fixed.nsi" from="" to="" install\nsis\\r
- <File name="kfw.ico" from="" to="" install\nsis\\r
- <File name="kfw.nsi" from="" to="" install\nsis\\r
- <File name="KfWConfigPage.ini" from="" to="" install\nsis\\r
- <File name="KfWConfigPage2.ini" from="" to="" install\nsis\\r
- <File name="killer.cpp" from="" to="" install\nsis\\r
- <File name="licenses.rtf" from="" to="" install\nsis\\r
- <File name="site-local.nsi" from="" to="" install\nsis\\r
- <File name="utils.nsi" from="" to="" install\nsis\\r
--->\r
-\r
- <File name="config.wxi" from="staging\install\wix" to="install\wix\" />\r
- <File name="features.wxi" from="staging\install\wix" to="install\wix\" />\r
- <File name="files.wxi" from="staging\install\wix" to="install\wix\" />\r
- <File name="kfw.wxs" from="staging\install\wix" to="install\wix\" />\r
- <File name="Makefile" from="staging\install\wix" to="install\wix\" />\r
+ <File name="config.wxi" from="staging\install\wix" to="install\wix\" />\r
+ <File name="features.wxi" from="staging\install\wix" to="install\wix\" />\r
+ <File name="files.wxi" from="staging\install\wix" to="install\wix\" />\r
+ <File name="kfw.wxs" from="staging\install\wix" to="install\wix\" />\r
+ <File name="Makefile" from="staging\install\wix" to="install\wix\" />\r
<File name="msi-deployment-guide.txt" from="staging\install\wix" to="install\wix\" />\r
- <File name="property.wxi" from="staging\install\wix" to="install\wix\" />\r
- <File name="site-local.wxi" from="staging\install\wix" to="install\wix\" />\r
+ <File name="property.wxi" from="staging\install\wix" to="install\wix\" />\r
+ <File name="site-local.wxi" from="staging\install\wix" to="install\wix\" />\r
\r
- <File name="*.*" from="staging\install\wix\Binary" to="install\wix\Binary\" />\r
-<!-- <File name="bannrbmp.bmp" from="" to="" install\wix\Binary\\r
- <File name="completi.ico" from="" to="" install\wix\Binary\\r
- <File name="custicon.ico" from="" to="" install\wix\Binary\\r
- <File name="dlgbmp.bmp" from="" to="" install\wix\Binary\\r
- <File name="exclamic.ico" from="" to="" install\wix\Binary\\r
- <File name="info.bmp" from="" to="" install\wix\Binary\\r
- <File name="insticon.ico" from="" to="" install\wix\Binary\\r
- <File name="new.bmp" from="" to="" install\wix\Binary\\r
- <File name="removico.ico" from="" to="" install\wix\Binary\\r
- <File name="repairic.ico" from="" to="" install\wix\Binary\\r
- <File name="up.bmp" from="" to="" install\wix\Binary\\r
---> \r
+ <File name="*.*" from="staging\install\wix\Binary" to="install\wix\Binary\" />\r
\r
- <File name="custom.cpp" from="staging\install\wix\custom" to="install\wix\custom\" />\r
- <File name="custom.h" from="staging\install\wix\custom" to="install\wix\custom\" />\r
+ <File name="custom.cpp" from="staging\install\wix\custom" to="install\wix\custom\" />\r
+ <File name="custom.h" from="staging\install\wix\custom" to="install\wix\custom\" />\r
\r
- <File name="config_1033.wxi" from="staging\install\wix\lang" to="install\wix\lang\" />\r
- <File name="strings_1033.wxl" from="staging\install\wix\lang" to="install\wix\lang\" />\r
- <File name="ui_1033.wxi" from="staging\install\wix\lang" to="install\wix\lang\" />\r
+ <File name="config_1033.wxi" from="staging\install\wix\lang" to="install\wix\lang\" />\r
+ <File name="strings_1033.wxl" from="staging\install\wix\lang" to="install\wix\lang\" />\r
+ <File name="ui_1033.wxi" from="staging\install\wix\lang" to="install\wix\lang\" />\r
<!-- Why not license.rtf? -->\r
\r
- <File name="*.lib" from="staging\lib\i386" to="lib\i386\" />\r
-<!-- \r
- <File name="comerr32.lib" from="" to="" lib\i386\\r
- <File name="delaydlls.lib" from="" to="" lib\i386\\r
- <File name="getopt.lib" from="" to="" lib\i386\\r
- <File name="gssapi32.lib" from="" to="" lib\i386\\r
- <File name="kclnt32.lib" from="" to="" lib\i386\\r
- <File name="krb524.lib" from="" to="" lib\i386\\r
- <File name="krb5_32.lib" from="" to="" lib\i386\\r
- <File name="krbcc32.lib" from="" to="" lib\i386\\r
- <File name="krbv4w32.lib" from="" to="" lib\i386\\r
- <File name="leashw32.lib" from="" to="" lib\i386\\r
- <File name="loadfuncs.lib" from="" to="" lib\i386\\r
- <File name="nidmgr32.lib" from="" to="" lib\i386\\r
- <File name="wshelp32.lib" from="" to="" lib\i386\\r
- <File name="xpprof32.lib" from="" to="" lib\i386\\r
---> \r
+ <File name="*.lib" from="staging\lib\i386" to="lib\i386\" />\r
\r
</Files>
\ No newline at end of file
--- /dev/null
+#!perl -w\r
+\r
+#use strict;\r
+use Data::Dumper;\r
+\r
+sub signFiles {\r
+ local ($signing, $config) = @_;\r
+ local $exprs = $signing->{FilePatterns}->{value};\r
+ local $template = $signing->{CommandTemplate}->{value};\r
+ # Use Unix find instead of Windows find. Save PATH so we can restore it when we're done:\r
+ local $savedPATH= $ENV{PATH};\r
+ $ENV{PATH} = $config->{CommandLine}->{Directories}->{unixfind}->{path}.";".$savedPATH;\r
+ foreach $expr (split(" ", $exprs)) { ## exprs is something like "*.exe *.dll"\r
+ local $cmd = "find . -iname \"$expr\"";\r
+ local $list = `$cmd`; ## $list is files matching *.exe, for example.\r
+ foreach $target (split("\n", $list)) {\r
+ $target =~ s|/|\\|g; ## Flip path separators from unix-style to windows-style.\r
+ local $template2 = $template;\r
+ $template2 =~ s/%filename%/$target/;\r
+ print "Info -- Signing $target\n" if ($verbose);\r
+ !system($template2) or die "Fatal -- Error signing $target.";\r
+ }\r
+ }\r
+ $ENV{PATH} = $savedPATH;\r
+ }\r
+\r
+return 1;
\ No newline at end of file