2003-11-25 17:34:07 -05:00
<project name= "LWJGL" default= "compile_java" basedir= "." >
2002-08-11 19:38:49 -04:00
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>
2002-08-11 19:38:49 -04:00
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>
2002-08-11 19:38:49 -04:00
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>
2002-08-11 19:38:49 -04:00
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-05-04 16:53:37 -04:00
2003-11-13 18:16:58 -05:00
<condition property= "lwjgl.platform.linux" >
<os name= "Linux" />
</condition>
<antcall target= "compile_native_linux" />
2003-05-04 16:53:37 -04:00
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-05-04 16:53:37 -04:00
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 © 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-05-04 16:53:37 -04:00
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>
2002-08-11 19:38:49 -04:00
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>