initial stab at ant build script

This commit is contained in:
Brian Matzon 2002-12-21 22:52:34 +00:00
parent 5aa8eeba3f
commit c044b30998
1 changed files with 205 additions and 38 deletions

243
build.xml
View File

@ -1,47 +1,214 @@
<!-- Designed using ant 1.4 -->
<project name="LWJGL" default="build website" basedir=".">
<project name="LWJGL" default="compile" basedir=".">
<!-- set global properties for this build -->
<property name="src" value="./src"/>
<property name="bin" value="./bin"/>
<property name="lib" value="./lib"/>
<property name="finish" value="."/>
<property name="docs" value="./docs"/>
<property name="website" value="./website"/>
<property name="resources" value="./content"/>
<property name="ver" value="0_0_1"/>
<property name="lwjgl.src" value="./src"/>
<property name="lwjgl.bin" value="./bin"/>
<property name="lwjgl.lib" value="./lib"/>
<property name="lwjgl.dist" value="./dist"/>
<property name="lwjgl.docs" value="./doc"/>
<property name="lwjgl.temp" value="./temp"/>
<property name="lwjgl.test" value="./test"/>
<property name="lwjgl.version" value="0.4"/>
<!-- Temporary directorys -->
<property name="build" value="./tmp"/>
<property name="dist" value="./dist/tmp"/>
<!-- Creates a splash screen -->
<target name="splash">
<splash imageurl="http://java-game-lib.sourceforge.net/images/logo.png" showduration="0" taskname="progressscreen"/>
</target>
<!-- Initializes whatever needs to be done before any targets are executed -->
<target name="initialize">
<mkdir dir="${lwjgl.bin}" taskname="initialiazing bin folder"/>
<mkdir dir="${lwjgl.lib}" taskname="initialiazing lib folder"/>
<mkdir dir="${lwjgl.dist}" taskname="initialiazing dist folder"/>
<mkdir dir="${lwjgl.docs}/javadoc" taskname="initialiazing docs folder"/>
<mkdir dir="${lwjgl.test}" taskname="initialiazing test folder"/>
<mkdir dir="${lwjgl.temp}" taskname="initialiazing temp folder"/>
</target>
<target name="all" depends="splash" description="compile. package. javadoc and distribute">
<!--
Though we perform all targets, we do it in somewhat mixed.
This is because we want the 'distribution_application' target to be
executed as soon as possible, since this target is most likely to fail.
That way we don't spend time doing javadocs, if the 'distribution_application'
target is going to fail anyway. However we cannot call the 'distribution' before
the javadoc target, since the 'distribution' target will try to create the javadoc
archive.
-->
<antcall target="clean"/>
<antcall target="compile"/>
<antcall target="package"/>
<antcall target="distribution_application"/>
<antcall target="javadoc"/>
<antcall target="distribution_javadoc"/>
<antcall target="distribution_source"/>
<antcall target="internal_clean"/>
</target>
<target name="build website">
<echo> Generating Docs / Website files </echo>
<delete>
<fileset dir="${website}">
<include name="*.html"/>
</fileset>
<target name="clean" description="Cleans the diectories controlled by this ant script (temp, dist, lib, javadoc, class files in bin)">
<delete dir="${lwjgl.temp}" quiet="true" taskname="cleaning temp folder"/>
<delete dir="${lwjgl.dist}" quiet="true" taskname="cleaning dist folder"/>
<delete dir="${lwjgl.docs}/javadoc" quiet="true" taskname="cleaning javadoc folder"/>
<delete dir="${lwjgl.bin}/org" quiet="true" taskname="cleaning bin folder"/>
<delete taskname="cleaning bin folder">
<fileset dir="${lwjgl.bin}" includes="*.class"/>
</delete>
<style basedir="${resources}" destdir="${website}" extension=".html" style="${resources}/simple.xsl">
<include name="*.xml"/>
</style>
</target>
<!-- Targets below could be used to build the main project -->
<target name="compile" >
<echo>Not Implemented</echo>
</target>
<target name="build distribution" depends="compile">
<echo>Not Implemented</echo>
<target name="compile" depends="initialize" description="Compiles the java source directory">
<javac srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/**.java" source="1.4" taskname="lwjgl"/>
<javac srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/input/**" source="1.4" taskname="input"/>
<javac srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/openal/**" source="1.4" taskname="openal"/>
<javac srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/opengl/**" source="1.4" taskname="opengl"/>
<javac srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/test/**" source="1.4" taskname="test"/>
<javac srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/vector/**" source="1.4" taskname="vector"/>
<javac srcdir="examples/" destdir="${lwjgl.bin}/" includes="**" source="1.4" taskname="examples"/>
</target>
<target name="package" depends="compile" description="packages the java source files">
<!-- Create lwjgl.jar -->
<jar destfile="${lwjgl.lib}/lwjgl.jar" taskname="lwjgl.jar">
<fileset dir="${lwjgl.bin}">
<include name="**"/>
<exclude name="**.*"/>
<exclude name="org/lwjgl/test/**"/>
</fileset>
</jar>
<!-- Create lwjgl_test.jar -->
<jar destfile="${lwjgl.lib}/lwjgl_test.jar" taskname="lwjgl_test.jar">
<fileset dir="${lwjgl.bin}">
<exclude name="**.*"/>
<include name="org/lwjgl/test/**"/>
</fileset>
</jar>
<!-- Create examples.jar -->
<jar destfile="${lwjgl.lib}/examples.jar" taskname="examples.jar">
<fileset dir="${lwjgl.bin}">
<include name="**.class"/>
</fileset>
</jar>
<!-- copy dll/so to lib directory -->
<copy todir="${lwjgl.lib}" taskname="libraries">
<fileset dir="${lwjgl.bin}">
<include name="lwjgl.*"/>
<include name="lwjgl_d.*"/>
</fileset>
</copy>
<!-- Copy relevant files to test directory -->
<copy todir="${lwjgl.test}" taskname="jar">
<fileset dir="${lwjgl.lib}"/>
</copy>
<!-- copy data files for example -->
<copy todir="${lwjgl.test}/data" taskname="data">
<fileset dir="examples/data"/>
</copy>
</target>
</project>
<target name="javadoc" description="Creates javadoc from java source code">
<javadoc destdir="${lwjgl.docs}/javadoc" author="true" version="true" use="true" source="1.4" windowtitle="LWJGL API">
<fileset dir="${lwjgl.src}/java">
<include name="**" />
<exclude name="org/lwjgl/test/**"/>
</fileset>
<doctitle><![CDATA[<h1>Lightweight Java Game Toolkit</h1>]]></doctitle>
<bottom><![CDATA[<i>Copyright &#169; 2002 lwjgl.org. All Rights Reserved.</i>]]></bottom>
</javadoc>
</target>
<target name="distribution" depends="package" description="Creates a versioned distribution of lwjgl">
<antcall target="distribution_application"/>
<antcall target="distribution_javadoc"/>
<antcall target="distribution_source"/>
<antcall target="internal_clean"/>
</target>
<!-- Creates a versioned distribution of dll's and jars -->
<target name="distribution_application">
<!-- check for file presence -->
<available file="${lwjgl.lib}/OpenAL32.dll" property="lwjgl.OpenAL32_dll.exists"/>
<fail unless="lwjgl.OpenAL32_dll.exists" message="Missing OpenAL32.dll in lib directory"/>
<available file="${lwjgl.lib}/OpenAL32.so" property="lwjgl.OpenAL32_so.exists"/>
<fail unless="lwjgl.OpenAL32_so.exists" message="Missing OpenAL32.so in lib directory"/>
<available file="${lwjgl.lib}/lwjgl.dll" property="lwjgl.lwjgl_dll.exists"/>
<fail unless="lwjgl.lwjgl_dll.exists" message="Missing lwjgl.dll in lib directory"/>
<available file="${lwjgl.lib}/lwjgl_d.dll" property="lwjgl.lwjgl_d_dll.exists"/>
<fail unless="lwjgl.lwjgl_d_dll.exists" message="Missing lwjgl_d.dll in lib directory"/>
<available file="${lwjgl.lib}/lwjgl.so" property="lwjgl.lwjgl_so.exists"/>
<fail unless="lwjgl.lwjgl_so.exists" message="Missing lwjgl.so in lib directory"/>
<available file="${lwjgl.lib}/lwjgl_d.so" property="lwjgl.lwjgl_d_so.exists"/>
<fail unless="lwjgl.lwjgl_d_so.exists" message="Missing lwjgl_d.so in lib directory"/>
<available file="${lwjgl.lib}/lwjgl.jar" property="lwjgl.lwjgl_jar.exists"/>
<fail unless="lwjgl.lwjgl_jar.exists" message="Missing lwjgl.jar in lib directory"/>
<available file="${lwjgl.lib}/lwjgl_test.jar" property="lwjgl.lwjgl_test_jar.exists"/>
<fail unless="lwjgl.lwjgl_test_jar.exists" message="Missing lwjgl_test.jar in lib directory"/>
<available file="${lwjgl.lib}/examples.jar" property="lwjgl.examples_jar.exists"/>
<fail unless="lwjgl.examples_jar.exists" message="Missing examples.jar in lib directory"/>
<mkdir dir="${lwjgl.temp}/lwjgl-${lwjgl.version}"/>
<!-- copy files to lwjgl directory for proper zipping -->
<copy todir="${lwjgl.temp}/lwjgl-${lwjgl.version}">
<fileset dir="${lwjgl.lib}/">
<include name="lwjgl.dll"/>
<include name="lwjgl_d.dll"/>
<include name="lwjgl.so"/>
<include name="lwjgl_d.so"/>
<include name="lwjgl.jar"/>
<include name="lwjgl_test.jar"/>
<include name="examples.jar"/>
</fileset>
<fileset dir="${lwjgl.docs}">
<include name="CREDITS"/>
<include name="LICENSE"/>
<include name="README"/>
</fileset>
</copy>
<!-- zip 'em up -->
<zip destfile="${lwjgl.dist}/lwjgl-${lwjgl.version}.zip" basedir="${lwjgl.temp}/"/>
</target>
<!-- Creates a versioned distribution of javadocs -->
<target name="distribution_javadoc">
<zip destfile="${lwjgl.dist}/lwjgl-docs-${lwjgl.version}.zip" basedir="${lwjgl.docs}" includes="javadoc/**"/>
</target>
<!-- Creates a versioned distribution of the source code -->
<target name="distribution_source">
<zip destfile="${lwjgl.dist}/lwjgl-source-${lwjgl.version}.zip">
<fileset dir="${lwjgl.src}/">
<patternset>
<include name="**/*.java"/>
<include name="**/*.cpp"/>
<include name="**/*.c"/>
<include name="**/*.h"/>
<include name="**/*.am"/>
<exclude name="**/*CVS*"/>
<exclude name="**/.*"/>
</patternset>
</fileset>
</zip>
</target>
<!-- clean internal temporary directories -->
<target name="internal_clean">
<delete dir="${lwjgl.temp}" taskname="cleanup"/>
</target>
</project>