1 <project name="xwt" default="run" basedir=".">
3 <!-- required so that libgcj.jar doesn't interfere with non-gcj compilation -->
4 <property name="build.sysclasspath" value="first"/>
6 <property name="gcc-path" value="/usr/local/gcc"/>
7 <property name="build.compiler" value="jikes"/>
8 <property environment="env"/>
10 <!-- the hostname of a cygwin machine running sshd; used for running Win32 binaries -->
11 <property name="cygwin-host" value="vmware"/>
13 <!-- a path on ${cygwin-host} which maps to the root of this XWT tree; usually exported from the build machine using samba -->
14 <property name="cygwin-path" value="z:/xwt"/>
16 <!-- set up our classpath -->
18 <pathelement path="${envCLASSPATH}"/>
19 <pathelement path="bin/"/>
20 <fileset dir="www/webapps/lib">
21 <include name="**/*.jar"/>
24 <include name="**/*.jar"/>
28 <!-- purges binaries we've built -->
31 find . -name \*\~ | xargs rm -f
32 find . -name \#\*\# | xargs rm -f
33 rm -rf bin-* bin xwt/html/dist/
37 <!-- creates javadoc documentation -->
38 <target name="genjavadoc" unless="javadoc_ok">
39 <javadoc sourcepath="src" destdir="www/html/javadoc/" package="yes" protected="no" packagenames="org.xwt.*"/>
42 <!-- creates javasrc documentation -->
43 <target name="genjavasrc" unless="javasrc_ok">
44 <java classname="javasrc.app.JavaSrc" fork="yes">
45 <classpath refid="classpath"/>
46 <jvmarg value="-Doutdir=www/html/javasrc/"/>
47 <arg value="src/org/xwt/"/>
51 <!-- compiles all .java files into .class files; all other tasks predepend on this since they need the <taskdef/>'s -->
52 <target name="compile">
54 <echo message="compiling .java -> .class"/>
55 <javac destdir="bin/" deprecation="no">
57 <include name="**/*.java"/>
59 <!-- don't EVER include the following line anywhere else; it causes really bizarre errors -->
60 <pathelement location="${gcc-path}/share/libgcj.jar"/>
61 <path refid="classpath"/>
64 <taskdef name="bash" classname="org.xwt.tasks.BashTask">
65 <classpath path="bin/"/>
69 <target name="build" depends="compile">
70 <mkdir dir="www/html/dist/"/>
71 <ant dir="." antfile="src/org/xwt/plat/${plat}.xml" target="build"/>
74 <target name="run" depends="compile,build">
75 <ant dir="." antfile="src/org/xwt/plat/${plat}.xml" target="run"/>
78 <!-- rebuild the www/ area -->
79 <target name="staging">
80 <property name="staging-flag" value="-Dstaging"/>
81 <property name="host" value="xwt-staging.org"/>
82 <antcall target="really-push"/>
85 <target name="production">
86 <mkdir dir="www/html/javadoc/"/>
87 <mkdir dir="www/html/javasrc/"/>
88 <uptodate property="javadoc_ok" targetfile="www/html/javadoc/index.html">
89 <srcfiles dir= "src/" includes="**/*.java"/>
91 <uptodate property="javasrc_ok" targetfile="www/html/javasrc/index.html">
92 <srcfiles dir= "src/" includes="**/*.java"/>
94 <antcall target="genjavadoc"/>
95 <antcall target="genjavasrc"/>
96 <property name="staging-flag" value=""/>
98 <property name="host" value="gosset.megacz.com"/>
100 <property name="host" value="xwt.org"/>
101 <antcall target="really-push"/>
104 <target name="newbuild" depends="compile">
105 <taskdef name="build-id" classname="org.xwt.tasks.BuildIdTask">
106 <classpath path="bin/"/>
109 <bash> cvs commit -m "automatically updated build-id via org.xwt.tasks.BuildIdTask" build.properties </bash>
110 <property file="build.properties"/>
112 <mkdir dir="www/html/dist/"/>
114 <!-- rebuild distributions -->
115 <property name="plat" value="Win32"/>
116 <ant dir="." antfile="src/org/xwt/plat/Win32.xml" target="build"/>
117 <ant dir="." antfile="src/org/xwt/plat/Win32.xml" target="dist"/>
118 <property name="plat" value="Java2"/>
119 <ant dir="." antfile="src/org/xwt/plat/Java12.xml" target="build"/>
120 <ant dir="." antfile="src/org/xwt/plat/Java12.xml" target="dist"/>
122 <property name="plat" value="Linux"/>
123 <ant dir="." antfile="src/org/xwt/plat/Linux.xml" target="build"/>
124 <ant dir="." antfile="src/org/xwt/plat/Linux.xml" target="dist"/>
127 <bash> /home/megacz/bin/sign/sign ${build-id} </bash>
130 <!-- required packages: bind, apache, libapache-mod-ssl, libapache-mod-jk, sshd, rsync, j2sdk, tomcat, gnuchess -->
131 <target name="really-push" depends="compile">
133 <!-- update demo xwars -->
134 <zip update="true" zipfile="www/html/demo.xwar" basedir="src" includes="org/xwt/demo/**,xwt/standard/**,org/xwt/themes/**"/>
135 <zip update="true" zipfile="www/html/demo.xwar" basedir="src/org/xwt/demo/" includes="main.xwt"/>
136 <zip update="true" zipfile="www/html/chess.xwar" basedir="src" includes="org/xwt/chess/**,xwt/standard/**,org/xwt/themes/**"/>
137 <zip update="true" zipfile="www/html/chess.xwar" basedir="src/org/xwt/chess/" includes="main.xwt"/>
138 <zip update="true" zipfile="www/html/mail.xwar" basedir="src"
139 includes="org/xwt/mail/**,xwt/standard/**,org/xwt/themes/**,org/gimp/tigert/**,org/xwt/fonts/**"
140 excludes="org/xwt/mail/main.xwt"
142 <zip update="true" zipfile="www/html/mail.xwar" basedir="src/org/xwt/mail/" includes="main.xwt"/>
143 <zip update="true" zipfile="www/html/k5.xwar" basedir="src" includes="xwt/**,org/xwt/themes/**,org/gimp/**,org/xwt/x5t/**"/>
144 <zip update="true" zipfile="www/html/k5.xwar" basedir="src/org/xwt/x5t/" includes="main.xwt"/>
146 <mkdir dir="www/webapps/classes/"/>
147 <copy todir="www/webapps/classes/">
148 <fileset dir="bin/" includes="org/xwt/server/**"/>
152 # throw on the prefix/suffix where needed
153 for A in `find www/html -name \*.html_`
154 do (cat www/html/prefix.html; cat $A; cat www/html/suffix.html; cat "$A"_ 2>/dev/null; cat www/html/tagline.html) > `echo $A | sed s/_\$//g`
158 <bash host="root@${host}">
159 # first, clone the currently running copy of xwt, so we can use rsync to save bandwidth
164 tar cf - . | tar xf - -C /xwt-new
168 # tidy up and rsync our changes
169 find www/html -name \*~ | xargs rm -f
170 rm www/html/tmp.[0-9]
171 rsync -Pv --delete --exclude=html/dist/\* -rze ssh www/ root@${host}:/xwt-new/www/
172 rsync -u -Pv -rze ssh www/html/dist/ root@${host}:/xwt-new/www/html/dist/
175 <bash host="root@${host}">
178 /etc/init.d/xwt-cluster stop
180 rm -rf /xwt-`date +%d-%b-%H:%M`
181 mv /xwt /xwt-`date +%d-%b-%H:%M`
183 find /xwt-* -prune -type d -mtime +10 | xargs rm -rf
185 mkdir /var/log/xwt &>/dev/null
186 chown www-data /var/log/xwt/
188 ln -s /xwt/www/webapps /xwt/www/webapps/ROOT
189 ln -s /xwt/www/webapps /xwt/www/webapps/WEB-INF
190 ln -s /xwt/www/launch /xwt/www/launch/ROOT
191 ln -s /xwt/www/launch /xwt/www/launch/WEB-INF
192 ln -s /xwt/www/wiki /xwt/www/wiki/ROOT
193 ln -s /xwt/www/wiki /xwt/www/wiki/WEB-INF
195 test ${host} == "xwt-staging.org" && echo -e "User-agent: *\nDisallow: /\n" > /xwt/www/html/robots.txt
196 echo ${staging-flag} > /xwt/staging-flag
198 /etc/init.d/xwt-cluster start
207 <!-- old javago optimization code - - reintegrate at some point
208 lib/javago.`uname` -threshold 300 -not-inline-constructor -not-use-invokespecial org/xwt/Box.class
209 lib/javago.`uname` -threshold 300 -not-inline-constructor -not-use-invokespecial org/xwt/Box.class
210 lib/javago.`uname` -threshold 200 -not-inline-constructor -not-use-invokespecial org/xwt/Surface.class
211 lib/javago.`uname` -threshold 50 -not-inline-constructor -not-use-invokespecial org/xwt/GetPutHandler*
212 lib/javago.`uname` -threshold 200 -not-inline-constructor -not-use-invokespecial org/xwt/util/DirtyList.class