summaryrefslogtreecommitdiffstats
path: root/src/windows/build/BKWconfig.xml
blob: c7296ece4fe90b9eab3514456068133158ded08f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?xml version="1.0" encoding="utf-8" ?>
<!-- BKW: Build Kerberos for Windows -->
<BKW_Config>
	<CommandLine>
		<!-- The most changeable parameters can be specified on the command line.	-->
		<Tags>
			<cvs value="" />
			<svn value=""/>
			</Tags>
		<Directories>
			<!--	Sources will be checked out of repositories into <src>.  The structure
						of the repositories will cause pismere/athena to be created under <src>.	-->
			<src			path	="C:\projects\Autobuild" />
			<out			path	="public" /> <!-- Relative to src. -->
			<unixfind	path	="c:\cygwin\bin" />
			</Directories>
		<Options>
			<debug value="0" />
			<logfile value="1" path="bkw.pl.log" />
			<repository value="skip" />
			<clean value="0" />
			<nomake value="0" />
			<nopackage value="0" />
			<verbose value="0" />
			<vverbose value="0" />
			</Options>
		</CommandLine>
	<Stages>
		<FetchSources>
			<Config>
				<CVSROOT name=":kserver:cvs.mit.edu:/cvs/pismere" />
				<SVNURL name="svn.mit.edu" /> <!-- NB:  No protocol or slashes!! -->
				<KERBEROS_ID name="kpkoch" />
				<KRB_PLINK name="c:\downloads\plink.exe" /> <!-- Path to a kerberized plink, needed for svn. -->
				</Config>
		</FetchSources>
		<Make>
			<Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution:	-->
				<Prune dummy="foo" />
				<Prune name="afsauth" />
				<Prune name="aklog" />
				<Prune name="vs" />
				</Prunes>
			</Make>
		<PrePackage>
			<CopyList>
				<Config>
					<!--	Debug and Release build results go in different places.
								The otherwise identical paths differ in one section.  For example:
								.../target/bin/i386/bin/rel/filename and .../target/bin/i386/dbg/filename.
								Here we define the two differing sections:	-->
					<DebugArea value="dbg" />
					<ReleaseArea value="rel" />
					<!--	Paths in the file list that include <AlwaysTag> will always have the tag replaced 
								with <DebugArea> or <ReleaseArea>, depending on the type of build.
								Paths that include <DebugTag> (or <ReleaseTag>) will only have the tag substituted 
								and be copied when doing a debug (or release) build.  Examples:
								Will always be copied, from a build-dependent directory:
						  		<File name="kfwlogon.dll"	from="..\target\bin\i386\%bldtype%\"	to="\bin\i386" /> 

						  		Will only be copied in debug build:

								<File name="netidmgr.exe.static.manifest"	from="..\target\bin\i386\%debug%\"	to="\bin\i386" notrequired="true" />
								Will always be copied, from a build-independent directory:
								<File name="des.h"	from="auth\krb4\include\"	to="\inc\krb4" newname="foo.h"/>

								-->

					<AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->

					<DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. -->

					<ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. -->

					</Config>

				<Files>

					<Include path="copyfiles.xml" />

					</Files> <!-- Relative to location of bkw.pl. -->

			</CopyList>

		</PrePackage>

		<Package>

			<MSI></MSI>

			<NSIS></NSIS> <!-- NB:  Most config is done in site-local.nsi.	-->

			<!-- Theoretically, writing site-local.nsi from xml settings could be done, but isn't.	-->

		</Package>

		<PostPackage>

			<Config>													<!-- This config info will be copied into each CopyList in PostPackage. -->

				<FileStem name="kfw-3-2-0" />		<!--	<FileStem> will be substituted for %filestem%.	-->

				</Config>

			<Zips>

				<Zip dummy="foo" /> <!-- To force desired XML::Simple behavior	-->

				<!--	Files will be copied into directory <topdir>; <topdir> will appear in the paths of the files.	-->

				<!-- File from	paths are relative to <src>/pismere.	-->

				<!-- File to			paths are relative to <out>.					-->

				<Zip name="Core Binaries" filename="%filestem%.zip" topdir="%filestem%-final">

					<CopyList>

						<Config>

							<DebugArea value="dbg" />

							<ReleaseArea value="rel" />

							<AlwaysTag value="%bldtype%" /> <!-- Pick a string that won't appear in a path. -->

							<DebugTag value="%debug%" /> <!-- Pick a string that won't appear in a path. -->

							<ReleaseTag value="%release%" /> <!-- Pick a string that won't appear in a path. -->

							</Config>

						<Files>

							<Include path="corebinaryfiles.xml" />

							</Files> <!-- Relative to location of bkw.pl. -->

						</CopyList>

				</Zip>

				<Zip name="SDK" filename="%filestem%-sdk.zip" topdir="%filestem%-final">

					<CopyList>

						<Files>

							<Include path="sdkfiles.xml" />

							</Files> <!-- Relative to location of bkw.pl. -->

						</CopyList>

				</Zip>

				<Zip name="SRC" filename="%filestem%-src.zip" topdir="%filestem%-final">

					<CopyList>

						<Files>

							<!-- File from	paths are relative to <src>/pismere.	-->

							<!-- File to			paths are relative to <out>.					-->

							<File dummy="foo" /> <!-- Forces XML::Simple behavior -->

							<!-- Without this, XML::Simple does not make an anonymous array and I can't figure out how to iterate over it. -->

							<File name="*.*" from="athena" to="src\athena" />

							<File name="*.*" from="doc" to="src\doc" />

							<File name="*.*" from="scripts" to="src\scripts" />

							</Files>

					</CopyList>

					<Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution:	-->

						<Prune dummy="foo" />

						<Prune name="CVS" />

						<Prune name=".cvsignore" flags="i" />

						<Prune name="Changelog" flags="i" />

						<Prune name="obj" />

						<Prune name="site" />

						</Prunes>

					<Requires>

						<Switch dummy="foo" />

						<Switch name="REPOSITORY" value="CHECKOUT"/>

						<ErrorMsg text="Can't build source zip unless both /REPOSITORY CHECKOUT is specified." />

						</Requires>

					</Zip>

				</Zips>			

			<CopyList>			<!-- Copied at end of post-package step.	-->

				<Files>

					<File dummy="foo" />

					<!-- File from	paths are relative to <src>/pismere.	-->

					<!-- File to			paths are relative to <out>.					-->

					<File name="msi-deployment-guide.txt" from="staging\install\wix\" to="" />
					<File name="netidmgr_userdoc.pdf" from="staging\doc" to="." />
					<File name="kfw.msi" from="staging\install\wix\" to="" newname="%filestem%.msi" />

					<File name="MITKerberosForWindows.exe" from="staging\install\nsis" to="" newname="%filestem%.exe" />

					</Files>

				</CopyList>

			</PostPackage>

	</Stages>

</BKW_Config>