lwjgl/build.xml

380 lines
16 KiB
XML
Raw Normal View History

2003-11-25 17:34:07 -05:00
<project name="LWJGL" default="compile_java" basedir=".">
2003-11-13 18:16:58 -05:00
<!-- ================================================================== -->
<!-- Global properties for build -->
<!-- ================================================================== -->
<property name="lwjgl.src" value="./src"/>
2003-11-25 17:34:07 -05:00
<property name="lwjgl.src.headers" value="${lwjgl.src}/native/common"/>
<property name="lwjgl.src.native" value="./src/native"/>
2003-11-13 18:16:58 -05:00
<property name="lwjgl.bin" value="./bin"/>
2003-11-25 17:34:07 -05:00
<property name="lwjgl.lib" value="./libs"/>
2003-11-13 18:16:58 -05:00
<property name="lwjgl.dist" value="./dist"/>
<property name="lwjgl.docs" value="./doc"/>
<property name="lwjgl.temp" value="./temp"/>
<property name="lwjgl.res" value="./res"/>
<property name="lwjgl.version" value="0.8"/>
2002-12-21 17:52:34 -05:00
2003-11-13 18:16:58 -05:00
<!-- ================================================================== -->
<!-- Filesets used for targets -->
<!-- ================================================================== -->
<!-- Files to include in the lwjgl.jar file -->
<fileset id="lwjgl.fileset" dir="${lwjgl.bin}">
<include name="**"/>
<exclude name="**.*"/>
<exclude name="org/lwjgl/test/**"/>
</fileset>
<!-- Files to include in the lwjgl_test.jar file -->
<fileset id="lwjgl_test.fileset" dir="${lwjgl.bin}">
<exclude name="**.*"/>
<include name="org/lwjgl/test/**"/>
</fileset>
2003-11-13 18:16:58 -05:00
<!-- Files to make Javadoc from -->
<fileset id="lwjgl.javadoc.fileset" dir="${lwjgl.src}/java">
<include name="**/*.java" />
<exclude name="org/lwjgl/test/**"/>
</fileset>
<!-- Files to include in common package -->
<patternset id="lwjgl-common.fileset">
<include name="*.jar"/>
<include name="CREDITS"/>
<include name="LICENSE"/>
<include name="README"/>
</patternset>
2002-12-21 17:52:34 -05:00
2003-11-13 18:16:58 -05:00
<!-- Files to include in win32 package -->
<patternset id="lwjgl-win32.fileset">
<patternset refid="lwjgl-common.fileset"/>
<include name="lwjgl.dll"/>
<include name="lwjgl_d.dll"/>
<include name="lwjglaudio.dll"/>
</patternset>
2002-12-21 17:52:34 -05:00
2003-11-13 18:16:58 -05:00
<!-- Files to include in linux, glibc2.3 package -->
2003-11-25 17:34:07 -05:00
<patternset id="lwjgl-linux.fileset">
2003-11-13 18:16:58 -05:00
<patternset refid="lwjgl-common.fileset"/>
<include name="liblwjgl.so"/>
<include name="liblwjgl_d.so"/>
<include name="libopenal.so"/>
</patternset>
<!-- Files to include in mac os x package -->
<patternset id="lwjgl-macosx.fileset">
<patternset refid="lwjgl-common.fileset"/>
<include name="liblwjgl.jnilib"/>
<include name="liblwjgl_d.jnilib"/>
<include name="openal.dylib"/>
</patternset>
<!-- Files to include in source distribution -->
<fileset id="lwjgl.source.fileset" dir=".">
<include name="build.xml"/>
<include name="src/**"/>
<exclude name="**/*CVS*"/>
<exclude name="native/projb/**"/>
</fileset>
<!-- Files to include in media distribution -->
<fileset id="lwjgl.media.fileset" dir="${lwjgl.res}">
<include name="**"/>
<exclude name="**/*CVS*"/>
</fileset>
<!-- ================================================================== -->
<!-- Everything below this line is targets. -->
<!-- Do not modify, unless you know what you're doing -->
<!-- ================================================================== -->
2003-11-22 17:30:37 -05:00
<!-- ================================================================== -->
<!-- Initialize build -->
<!-- ================================================================== -->
<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.res}" taskname="initialiazing res folder"/>
<mkdir dir="${lwjgl.temp}" taskname="initialiazing temp folder"/>
</target>
2002-12-21 17:52:34 -05:00
2003-11-13 18:16:58 -05:00
<!-- Creates a splash screen -->
<target name="splash">
<splash imageurl="http://java-game-lib.sourceforge.net/images/logo.png" showduration="0" taskname="progressscreen"/>
</target>
2002-12-21 19:54:00 -05:00
2003-11-13 18:16:58 -05:00
<!-- Performs all the tasks needed for a distribution of LWJGL -->
<target name="all" depends="splash" description="compile. make jars. javadoc and distribute">
2003-02-09 16:14:17 -05:00
2003-11-13 18:16:58 -05:00
<!-- 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"/>
2003-11-22 17:30:37 -05:00
<antcall target="initialize"/>
<antcall target="compile_java"/>
<antcall target="compile_native"/>
2003-11-13 18:16:58 -05:00
<antcall target="jars"/>
<antcall target="distribution_application"/>
<antcall target="javadoc"/>
<antcall target="distribution_javadoc"/>
<antcall target="distribution_source"/>
<antcall target="internal_clean"/>
</target>
2003-11-13 18:16:58 -05:00
<!-- Cleans up any files created during the execution of this script -->
<target name="clean" description="Cleans the diectories controlled by this ant script (temp, dist, lib, javadoc, class files in bin)">
2003-11-25 17:34:07 -05:00
<delete dir="${lwjgl.temp}" quiet="true" failonerror="false" taskname="cleaning temp folder"/>
<delete dir="${lwjgl.dist}" quiet="true" failonerror="false" taskname="cleaning dist folder"/>
<delete dir="${lwjgl.docs}/javadoc" quiet="true" failonerror="false" taskname="cleaning javadoc folder"/>
<delete dir="${lwjgl.bin}/org" quiet="true" failonerror="false" taskname="cleaning bin folder"/>
<delete taskname="cleaning bin folder" failonerror="false">
2003-11-13 18:16:58 -05:00
<fileset dir="${lwjgl.bin}" includes="*.class"/>
</delete>
</target>
2003-11-13 18:16:58 -05:00
<!-- Compiles the code for LWJGL -->
2003-11-22 17:30:37 -05:00
<target name="compile" depends="initialize" description="Compiles code">
2003-11-13 18:16:58 -05:00
<antcall target="compile_java"/>
<antcall target="compile_native"/>
</target>
<!-- Compiles the Java source code -->
<target name="compile_java" description="Compiles the java source code">
<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/vector/**" source="1.4" taskname="vector"/>
<javac srcdir="${lwjgl.src}/java/" destdir="${lwjgl.bin}" includes="org/lwjgl/test/**" source="1.4" taskname="test"/>
</target>
<!-- Compiles the native files -->
<target name="compile_native" description="Compiles the native files">
<!-- check each platform, and run their build target -->
<condition property="lwjgl.platform.windows">
<os family="windows"/>
</condition>
<antcall target="compile_native_win32"/>
2003-11-13 18:16:58 -05:00
<condition property="lwjgl.platform.linux">
<os name="Linux"/>
</condition>
<antcall target="compile_native_linux"/>
2003-11-13 18:16:58 -05:00
<condition property="lwjgl.platform.mac">
<os name="Mac OS X"/>
</condition>
<antcall target="compile_native_mac"/>
</target>
<!-- Compiles LWJGL on Win32 platforms -->
<target name="compile_native_win32" description="Compiles LWJGL on Win32 platforms" if="lwjgl.platform.windows">
<echo>Sorry, LWJGL does not yet allow compilation of the win32 version via commandline</echo>
</target>
<!-- Compiles LWJGL on Linux platforms -->
<target name="compile_native_linux" description="Compiles LWJGL on Linux platforms" if="lwjgl.platform.linux">
<echo>Compiling Linux LWJGL version</echo>
2003-11-25 17:34:07 -05:00
<apply executable="sh" dir="${lwjgl.src.native}">
<fileset dir="${lwjgl.src.native}">
<include name="build.sh"/>
</fileset>
</apply>
<move file="${lwjgl.src.native}/.libs/liblwjgl.0.0.0" tofile="${lwjgl.lib}/liblwjgl.so"/>
<apply executable="sh" dir="${lwjgl.src.native}">
<fileset dir="${lwjgl.src.native}">
<include name="build_debug.sh"/>
</fileset>
</apply>
<move file="${lwjgl.src.native}/.libs/liblwjgl.0.0.0" tofile="${lwjgl.lib}/liblwjgl_d.so"/>
2003-11-13 18:16:58 -05:00
</target>
<!-- Compiles LWJGL on Mac OS X platforms -->
<target name="compile_native_mac" description="Compiles LWJGL on Mac OS X platforms" if="lwjgl.platform.mac">
<echo>Compiling Mac OS X LWJGL version</echo>
2003-11-25 17:34:07 -05:00
<apply executable="sh" dir="${lwjgl.src.native}">
<fileset dir="${lwjgl.src.native}">
<include name="build.sh"/>
</fileset>
</apply>
<move file="${lwjgl.src.native}/.libs/liblwjgl.0.0.0" tofile="${lwjgl.lib}/liblwjgl.jnilib"/>
<apply executable="sh" dir="${lwjgl.src.native}">
<fileset dir="${lwjgl.src.native}">
<include name="build_debug.sh"/>
</fileset>
</apply>
<move file="${lwjgl.src.native}/.libs/liblwjgl.0.0.0" tofile="${lwjgl.lib}/liblwjgl_d.jnilib"/>
2003-11-13 18:16:58 -05:00
</target>
<!-- Packages the files -->
2003-11-22 17:30:37 -05:00
<target name="jars" description="packages the java source files">
2003-11-13 18:16:58 -05:00
<!-- Create lwjgl.jar -->
<jar destfile="${lwjgl.lib}/lwjgl.jar" taskname="lwjgl.jar">
<fileset refid="lwjgl.fileset"/>
</jar>
<!-- Create lwjgl_test.jar -->
<jar destfile="${lwjgl.lib}/lwjgl_test.jar" taskname="lwjgl_test.jar">
<fileset refid="lwjgl_test.fileset"/>
</jar>
</target>
2003-11-13 18:16:58 -05:00
<!-- Creates the Javadoc -->
<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 refid="lwjgl.javadoc.fileset"/>
<doctitle><![CDATA[<h1>Lightweight Java Game Toolkit</h1>]]></doctitle>
<bottom><![CDATA[<i>Copyright &#169; 2003 lwjgl.org. All Rights Reserved.</i>]]></bottom>
</javadoc>
</target>
<!-- Creates a distribution from the compiled files -->
<target name="distribution" depends="jars" description="Creates a versioned distribution of lwjgl">
<antcall target="distribution_application"/>
<antcall target="distribution_javadoc"/>
<antcall target="distribution_source"/>
<antcall target="distribution_resources"/>
<antcall target="internal_clean"/>
</target>
<!-- Creates a build of LWJGL directly from CVS -->
<target name="cvsbuild" description="Builds lwjgl, by exporting files from cvs into a LWJGL folder and executing the package target on that folders build file">
<!-- Check that files do not exist BEFORE doing the CVS build -->
<available file="LWJGL/build.xml" property="lwjgl.preexistingfiles"/>
<available file="${lwjgl.src}/java/org/lwjgl/Sys.java" property="lwjgl.preexistingfiles"/>
<fail if="lwjgl.preexistingfiles" message="Cannot perform webbuild from nonempty folder"/>
2003-11-25 17:34:07 -05:00
2003-11-13 18:16:58 -05:00
<!-- checkout files and build using checked out buildfiles 'all' target -->
<cvs command="export -D 'now'" compressionlevel="3" cvsRoot=":pserver:anonymous@cvs.sf.net:/cvsroot/java-game-lib" package="LWJGL/build.xml" dest="."/>
<cvs command="export -D 'now'" compressionlevel="3" cvsRoot=":pserver:anonymous@cvs.sf.net:/cvsroot/java-game-lib" package="LWJGL/src" dest="."/>
<cvs command="export -D 'now'" compressionlevel="3" cvsRoot=":pserver:anonymous@cvs.sf.net:/cvsroot/java-game-lib" package="LWJGL/doc" dest="."/>
<ant dir="LWJGL" target="all"/>
</target>
<!-- Generates the native headers from source files -->
2003-11-25 17:34:07 -05:00
<target name="headers" description="invokes javah on java classes, producing the headers needed for native compilation" depends="compile_java">
2003-11-13 18:16:58 -05:00
<javah classpath="${lwjgl.bin}" destdir="${lwjgl.src.headers}" force="yes">
<class name="org.lwjgl.Display"/>
<class name="org.lwjgl.Sys"/>
<class name="org.lwjgl.input.Controller"/>
<class name="org.lwjgl.input.Cursor"/>
<class name="org.lwjgl.input.Keyboard"/>
<class name="org.lwjgl.input.Mouse"/>
<class name="org.lwjgl.openal.ALC"/>
<class name="org.lwjgl.openal.BaseAL"/>
<class name="org.lwjgl.openal.CoreAL"/>
<class name="org.lwjgl.openal.eax.BaseEAX"/>
<class name="org.lwjgl.openal.eax.CoreEAX"/>
<class name="org.lwjgl.openal.eax.EAXBufferProperties"/>
<class name="org.lwjgl.openal.eax.EAXListenerProperties"/>
<class name="org.lwjgl.opengl.CoreGL11"/>
<class name="org.lwjgl.opengl.CoreGL12"/>
<class name="org.lwjgl.opengl.CoreGL13"/>
<class name="org.lwjgl.opengl.CoreGL14"/>
<class name="org.lwjgl.opengl.GL"/>
<class name="org.lwjgl.opengl.GLU"/>
<class name="org.lwjgl.opengl.GLCaps"/>
2003-11-25 17:34:07 -05:00
<class name="org.lwjgl.opengl.Window"/>
2003-11-13 18:16:58 -05:00
<class name="org.lwjgl.opengl.Pbuffer"/>
</javah>
</target>
<!-- Creates a versioned distribution for all supported platforms -->
<target name="distribution_application">
<!-- check each platform, and run their copy target -->
<condition property="lwjgl.platform.windows">
<os family="windows"/>
</condition>
<antcall target="distribute_win32"/>
2003-11-13 18:16:58 -05:00
<condition property="lwjgl.platform.linux">
<os name="Linux"/>
</condition>
<antcall target="distribute_linux"/>
2002-12-21 17:52:34 -05:00
2003-11-13 18:16:58 -05:00
<condition property="lwjgl.platform.mac">
<os name="Mac OS X"/>
</condition>
<antcall target="distribute_macosx"/>
</target>
<!-- Distributes win32 files -->
<target name="distribute_win32" description="Distributes win32 files" if="lwjgl.platform.windows">
<!-- copy files from lib/platform to temp -->
<copy todir="${lwjgl.temp}/lwjgl-win32-${lwjgl.version}">
<fileset dir="${lwjgl.lib}">
<patternset refid="lwjgl-win32.fileset"/>
<patternset refid="lwjgl-common.fileset"/>
</fileset>
<fileset dir="${lwjgl.docs}">
<patternset refid="lwjgl-common.fileset"/>
</fileset>
</copy>
<zip destfile="${lwjgl.dist}/lwjgl-win32-${lwjgl.version}.zip" basedir="${lwjgl.temp}" includes="**"/>
</target>
<!-- Distributes linux files -->
<target name="distribute_linux" description="Distributes linux files" if="lwjgl.platform.linux">
<!-- copy files from lib/platform to temp -->
<copy todir="${lwjgl.temp}/lwjgl-linux-${lwjgl.version}">
<fileset dir="${lwjgl.lib}">
<patternset refid="lwjgl-linux.fileset"/>
<patternset refid="lwjgl-common.fileset"/>
</fileset>
<fileset dir="${lwjgl.docs}">
<patternset refid="lwjgl-common.fileset"/>
</fileset>
</copy>
<zip destfile="${lwjgl.dist}/lwjgl-linux-${lwjgl.version}.zip" basedir="${lwjgl.temp}" includes="**"/>
</target>
<!-- Distributes macosx files -->
<target name="distribute_macosx" description="Distributes macosx files" if="lwjgl.platform.macosx">
<!-- copy files from lib/platform to temp -->
<copy todir="${lwjgl.temp}/lwjgl-macosx-${lwjgl.version}">
<fileset dir="${lwjgl.lib}">
<patternset refid="lwjgl-macosx.fileset"/>
<patternset refid="lwjgl-common.fileset"/>
</fileset>
<fileset dir="${lwjgl.docs}">
<patternset refid="lwjgl-common.fileset"/>
</fileset>
</copy>
<zip destfile="${lwjgl.dist}/lwjgl-macosx-${lwjgl.version}.zip" basedir="${lwjgl.temp}" includes="**"/>
</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>
2003-11-13 18:16:58 -05:00
<!-- Creates a versioned distribution of the source code -->
<target name="distribution_source">
<zip destfile="${lwjgl.dist}/lwjgl-source-${lwjgl.version}.zip">
<fileset refid="lwjgl.source.fileset"/>
</zip>
</target>
<!-- Creates a versioned distribution of the resource files -->
<target name="distribution_resources">
<zip destfile="${lwjgl.dist}/lwjgl-media-${lwjgl.version}.zip">
<fileset refid="lwjgl.media.fileset"/>
</zip>
</target>
2002-12-21 17:52:34 -05:00
2003-11-13 18:16:58 -05:00
<!-- clean internal temporary directories -->
<target name="internal_clean">
<delete dir="${lwjgl.temp}" taskname="cleanup"/>
</target>
2002-12-21 19:54:00 -05:00
</project>