]> git.saurik.com Git - wxWidgets.git/blame - build/buildbot/config/include/testdrive-unix.xml
turn wxUSE_STD_IOSTREAM on by default (except for the compilers which are too broken)
[wxWidgets.git] / build / buildbot / config / include / testdrive-unix.xml
CommitLineData
c005fb28
MW
1<?xml version="1.0" encoding="utf-8"?>
2
3<!--
801be649
MW
4 Name: include/testdrive-unix.xml
5 Purpose: Declarations for the testdrive unix build slave
c005fb28
MW
6 Author: Mike Wetherell
7 RCS-ID: $Id$
8 Copyright: (c) 2007 Mike Wetherell
9 Licence: wxWidgets licence
10-->
11
12<bot xmlns:xi="http://www.w3.org/2001/XInclude"
13 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
c005fb28
MW
14 xsl:version="1.0">
15
801be649 16<xi:include href="testdrive.xml"/>
c005fb28
MW
17
18<!--
801be649 19 post-checkout - post checkout <command> run by <checkout>
c005fb28 20
801be649 21 Usage: <post-checkout/>
c005fb28 22
801be649
MW
23 The command is executed inside the shared checkout dir, and normally it
24 is used to make a private copy.
c005fb28 25-->
c005fb28
MW
26<xsl:template name="post-checkout">
27<command>
28mkdir -p $TOPDIR
29chown $USER $TOPDIR
30rm -rf $BUILDDIR
31cp -pR . $BUILDDIR || { cd; rm -rf $BUILDDIR; exit 1; }
32</command>
33</xsl:template>
34
35<!--
36 configure - make disable-precomp-headers a default configure option for
37 the testdrive, and post process the Makefiles to use ccache.
38
39 Usage: <configure options="-with-foobar"/>
40-->
41<xsl:template name="configure">
42 <xsl:param name="content"/>
43 <xsl:param name="options"/>
44 <configure>
45 <copy-with-defaults content="{$content}">
801be649 46 <command>./configure --disable-precomp-headers <xsl:value-of select="normalize-space($options)"/></command>
c005fb28
MW
47 </copy-with-defaults>
48 <command>find . -name Makefile | xargs perl -pi -e 's/^(?:CC|CXX) = /$&amp;ccache /'</command>
49 </configure>
50</xsl:template>
51
52<!--
53 setup - a build step that makes sure any prerequisites are set up for
54 the current testdrive build.
55
56 Usage: <setup/>
57 <setup cppunit-options="-host=i686-apple-darwin8"/>
58
59 One of the things it sets up is cppunit. There is more than one compiler
60 available on some of the testdrive machines, and generally speaking
61 cppuint needs to be compiled by the same one that will be used for the
62 build.
63-->
64<xsl:template name="setup">
65<xsl:param name="content"/>
66<xsl:param name="options"/>
67<xsl:param name="ccache-configure" select="'./configure INSTALL=./install-sh\ -c --prefix=$HOME --bindir=$OPTDIR/bin'"/>
68<xsl:param name="ccache-options"/>
69<xsl:param name="cppunit-configure" select="'./configure INSTALL=config/install-sh\ -c --prefix=$HOME --bindir=$OPTDIR/bin --libdir=$OPTDIR/lib --disable-static'"/>
70<xsl:param name="cppunit-options"/>
71<shellcommand>
72<description>setting up</description>
73<descriptionDone>set up</descriptionDone>
74<haltOnFailure/>
75<command>
76MINSPACE=1000000
77DSPACE=`df -Pk $BUILDDIR | tail -1 | awk '{ print $4 }'`
78if [ $DSPACE -lt $MINSPACE ]; then
79 echo "Disk space low, skipping build"
80 exit 1
81fi
82if [ -z "$CCACHE_DIR" ]; then
83 gunzip -c $HOME/src/ccache-*.tar.gz | tar xf -
84 cd ccache-*
85 <xsl:value-of select="concat($ccache-configure, ' ', $ccache-options, ' ', $options)"/>
86 make
87 strip ccache
88 make install
89 cd $BUILDDIR
90 rm -r ccache-*
91fi
92if { cppunit-config --version || "$CPPUNIT_CONFIG" --version; } 2>/dev/null; then
93 HAVE_CPPUNIT=1
94fi
95if [ -z "$HAVE_CPPUNIT" ]; then
96 gunzip -c $HOME/src/cppunit-*.tar.gz | tar xf -
97 cd cppunit-*
98 <xsl:value-of select="concat($cppunit-configure, ' ', $cppunit-options, ' ', $options)"/>
99 make install-strip
100 chmod +x $OPTDIR/bin/cppunit-config
101 cd $BUILDDIR
102 rm -rf cppunit-*
103fi
104</command>
105</shellcommand>
106</xsl:template>
107
108<!--
801be649 109 profile - see <steps>.
c005fb28
MW
110-->
111<xsl:template name="profile">
112<command>
113set -e
114uname -smnr
115umask 022
116LANG=C
801be649 117TOPDIR=<get-builddir/>
c005fb28
MW
118BUILDDIR=$TOPDIR/build
119OPTDIR=$HOME/opt/<basename><get name="builddir"/></basename>
120</command>
121</xsl:template>
122
123<!--
801be649 124 prologue - see <steps>.
c005fb28
MW
125-->
126<xsl:template name="prologue">
127<command>
128INSTALLDIR=$TOPDIR/install
129case `uname -sm` in
130 Linux*86*) PATH=$HOME/linux-x86/bin:$PATH ;;
131esac
132PATH=$OPTDIR/bin:$PATH
133LD_LIBRARY_PATH=$BUILDDIR/lib:$OPTDIR/lib:$LD_LIBRARY_PATH
134export LD_LIBRARY_PATH
135if { ccache -V; } >/dev/null 2>&amp;1; then
136 CCACHE_DIR=$TOPDIR/ccache
137 export CCACHE_DIR
138 ccache -M 90M
139fi
140cd $BUILDDIR
141<if-del-on-fail>trap 'cd; rm -rf $BUILDDIR' EXIT</if-del-on-fail>
142</command>
143</xsl:template>
144
145<!--
801be649 146 epilogue - see <steps>.
c005fb28
MW
147-->
148<xsl:template name="epilogue">
149 <xsl:if test="position() != last()">
150 <if-del-on-fail>
151 <command>trap '' EXIT</command>
152 </if-del-on-fail>
153 </xsl:if>
154</xsl:template>
155
156<!--
801be649
MW
157 builddir - override <builddir> to accept a full path
158
159 Usage: <builddir>/tmp/wx/foobar</builddir>
c005fb28 160
801be649
MW
161 Normally builddir is a single directory name not a full path. Override
162 to allow a working directory to be selected on the remote testdrive
163 machine.
c005fb28 164
801be649
MW
165 The actual builddir (i.e. last part 'foobar') as usual must be unique
166 across all the builds of all the slaves.
c005fb28 167-->
801be649 168<xsl:template name="builddir">
c005fb28 169 <xsl:param name="content"/>
801be649
MW
170 <builddir>
171 <basename><xsl:copy-of select="$content"/></basename>
172 </builddir>
c005fb28
MW
173</xsl:template>
174
175<!--
801be649
MW
176 Put builds under /tmp/wx on the remote machines by default.
177
178 If the <builddir> element specifies a full path then returns that
179 as-is, otherwise prepends '/tmp/wx/'.
c005fb28 180-->
801be649
MW
181<xsl:template name="get-builddir">
182 <xsl:variable name="builddir"><get name="builddir"/></xsl:variable>
183 <xsl:if test="substring($builddir, 1, 1) != '/'">
184 <xsl:text>/tmp/wx/</xsl:text>
c005fb28 185 </xsl:if>
801be649 186 <xsl:value-of select="$builddir"/>
c005fb28
MW
187</xsl:template>
188
189<!--
190 basename - returns the final component of a path
191
192 Usage: <basename>/foo/bar</basename>
193
194 Evaluates to 'bar'.
195-->
196<xsl:template name="basename">
197 <xsl:param name="path"/>
198 <xsl:choose>
199 <xsl:when test="contains($path, '/')">
200 <xsl:call-template name="basename">
201 <xsl:with-param name="path" select="substring-after($path, '/')"/>
202 </xsl:call-template>
203 </xsl:when>
204 <xsl:otherwise>
205 <xsl:value-of select="$path"/>
206 </xsl:otherwise>
207 </xsl:choose>
208</xsl:template>
209
210</bot>