summaryrefslogtreecommitdiffstats
path: root/src/windows/build/BKWconfig.xml
blob: 9d8ed193e90b598f016d50e66a2d1a1395e28deb (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
150
151
152
153
154
155
156
157
158
159
160
161
162
<?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" />
            <sign       value="0" timestampserver="" />
            <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!! -->
                <USERNAME   name="" />              <!-- Needed for svn/plink.  Override from command line -->
                </Config>
        </FetchSources>
        <Make>
            <Prunes> <!-- Files to be removed from current build to match what is in the 3.1 distribution:    -->
                <Prune dummy="foo" />       <!-- Force XML::Simple behavior -->
                <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>

            <Config>

                <Paths>    

                    <Versions path="pismere/athena/include/kerberos.ver" /> <!-- Relative to <src>. -->

                    </Paths>

                </Config>

            <MSI></MSI>

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

        </Package>

        <PostPackage>

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

                <FileStem name="kfw-%VERSION_MAJOR%-%VERSION_MINOR%-%VERSION_PATCH%" /> <!-- <FileStem> will be substituted for %filestem%. -->

                <Signing>

                    <CommandTemplate    value="signtool sign /a /d &quot;MIT Kerberos for Windows&quot; /du &quot;http://web.mit.edu/kerberos&quot; /t TIMESTAMPSERVERGOESHERE %filename%" />

                    <FilePatterns       value="*.exe *.dll *.cpl *.msi" />

                    </Signing>

                </Config>

            <Zips>

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

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

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

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

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

                    <CopyList>

                        <Config>

                            <DebugArea   value="dbg" />

                            <ReleaseArea value="rel" />

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

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

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

                            </Config>

                        <Files>

                            <Include path="corebinaryfiles.xml" />  <!-- Includeed file is relative to location of bkw.pl. -->

                            </Files> 

                        </CopyList>

                </Zip>

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

                    <CopyList>

                        <Files>

                            <Include path="sdkfiles.xml" />         <!-- Included file is relative to location of bkw.pl. -->

                            </Files>

                        </CopyList>

                    <Prunes> 

                        <Prune dummy="foo" />

                        <Prune name="*.exe" />

                        <Prune name="*.msi" />

                        </Prunes>

                </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 /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%-DEBUG%.exe" from="staging\install\nsis" to="" newname="%filestem%%-DEBUG%.exe" />

                    </Files>

                </CopyList>

            </PostPackage>

    </Stages>

</BKW_Config>