diff options
-rw-r--r-- | make/build.xml | 584 |
1 files changed, 277 insertions, 307 deletions
diff --git a/make/build.xml b/make/build.xml index 5dce7d8ae..d6d47d617 100644 --- a/make/build.xml +++ b/make/build.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Ant build for JOGL. This build has been tested with ANT 1.5.3. The + - Ant build for JOGL. This build has been tested with ANT 1.7.0. The - optional.jar that contains the optional ANT tasks must be in the ANT - classpath (typically the ant/lib directory). - @@ -90,11 +90,7 @@ <!-- - Base initialization and detection of operating system. --> - <target name="base.init" depends="gluegen.cpptasks.detect.os"> - - <echo message="isX11: ${isX11}" /> - <echo message="isWindows: ${isWindows}" /> - <echo message="isOSX: ${isOSX}" /> + <target name="base.init"> <condition property="jogl.noes"> <and> @@ -486,105 +482,6 @@ </target> <!-- ================================================================== --> - <!-- - - Platform specific declares - COMPILER - --> - <target name="declare.win32.vc" if="isVCFamily"> - <echo message="Win32.VC" /> - <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> - <property name="linker.cfg.id.core" value="linker.cfg.win32.msvc" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.win32.msvc.jogl" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.win32.msvc.jogl" /> - </target> - - <target name="declare.win32.mingw" if="isMingW"> - <echo message="Win32.MingW" /> - <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" /> - <property name="linker.cfg.id.core" value="linker.cfg.win32.mingw" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.win32.mingw.jogl" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.win32.mingw.jogl" /> - </target> - - <target name="declare.linux.x86" if="isLinuxX86"> - <echo message="Linux.x86" /> - <property name="compiler.cfg.id" value="compiler.cfg.linux" /> - <property name="linker.cfg.id.core" value="linker.cfg.linux" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" /> - </target> - - <target name="declare.linux.amd64" if="isLinuxAMD64"> - <echo message="Linux.AMD64" /> - <property name="compiler.cfg.id" value="compiler.cfg.linux.amd64" /> - <property name="linker.cfg.id.core" value="linker.cfg.linux.amd64" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.linux.amd64.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.linux.amd64.jogl.gl2" /> - </target> - - <target name="declare.linux.ia64" if="isLinuxIA64"> - <echo message="Linux.IA64" /> - <property name="compiler.cfg.id" value="compiler.cfg.linux" /> - <property name="linker.cfg.id.core" value="linker.cfg.linux" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" /> - </target> - - <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64,declare.x11" if="isLinux" /> - - <target name="declare.solaris32" depends="declare.x11" if="isSolaris32Bit"> - <echo message="Solaris" /> - <property name="compiler.cfg.id" value="compiler.cfg.solaris" /> - <property name="linker.cfg.id.core" value="linker.cfg.solaris" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.jogl.gl2" /> - </target> - - - <target name="declare.solaris.sparcv9" depends="declare.x11" if="isSolarisSparcv9"> - <echo message="SolarisSparcv9" /> - <property name="compiler.cfg.id" value="compiler.cfg.solaris.sparcv9" /> - <property name="linker.cfg.id.core" value="linker.cfg.solaris.sparcv9" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.sparcv9.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.sparcv9.jogl.gl2" /> - </target> - - - <target name="declare.solaris.amd64" depends="declare.x11" if="isSolarisAMD64"> - <echo message="SolarisAMD64" /> - <property name="compiler.cfg.id" value="compiler.cfg.solaris.amd64" /> - <property name="linker.cfg.id.core" value="linker.cfg.solaris.amd64" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.amd64.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.amd64.jogl.gl2" /> - </target> - - <target name="declare.freebsd" depends="declare.x11" if="isFreeBSD"> - <echo message="FreeBSD" /> - <property name="compiler.cfg.id" value="compiler.cfg.freebsd.jogl" /> - <property name="linker.cfg.id.core" value="linker.cfg.linux" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" /> - </target> - - <target name="declare.hpux" depends="declare.x11" if="isHPUX"> - <echo message="HP-UX" /> - <property name="compiler.cfg.id" value="compiler.cfg.hpux" /> - <property name="linker.cfg.id.core" value="linker.cfg.hpux" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.hpux.jogl.x11" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.hpux.jogl.gl2" /> - </target> - - <target name="declare.win32" depends="declare.win32.vc,declare.win32.mingw" if="isWindows" /> - - <target name="declare.x11" depends="init" if="isX11" /> - - <target name="declare.macosx" depends="init" if="isOSX"> - <property name="compiler.cfg.id" value="compiler.cfg.macosx" /> - <property name="linker.cfg.id.core" value="linker.cfg.macosx" /> - <property name="linker.cfg.id.oswin" value="linker.cfg.macosx.jogl" /> - <property name="linker.cfg.id.gl2" value="linker.cfg.macosx.jogl" /> - </target> - - <!-- ================================================================== --> <!-- - Initialize all parameters required for the build and create any - required directories. @@ -609,8 +506,6 @@ <mkdir dir="${obj.cg}" /> </target> - <target name="declare" depends="init,declare.win32,declare.linux,declare.solaris32,declare.solaris.sparcv9,declare.solaris.amd64,declare.macosx,declare.freebsd,declare.hpux" /> - <!-- ================================================================== --> <!-- GlueGen and BuildStaticGLInfo creation, task setup and Java file generation --> <!-- @@ -1106,7 +1001,7 @@ - Compile the native C code for JOGL (and optionally the Cg binding). --> - <target name="c.configure" depends="gluegen.cpptasks.setup.compiler" unless="jogl.compiler.present"> + <target name="c.configure.1" depends="gluegen.cpptasks.detect.os,gluegen.cpptasks.setup.compiler" unless="jogl.compiler.present"> <!-- compiler configuration --> <!-- Note that we can use the base setups in the gluegen-cpptasks for most of these --> @@ -1187,173 +1082,266 @@ </linker> </target> - <target name="rename.mingw.dll" if="isMingW"> - <move file="${src}" tofile="${dest}" /> + <target name="c.configure.win32.vc" if="isVCFamily"> + <echo message="Win32.VC" /> + <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" /> + <property name="linker.cfg.id.core" value="linker.cfg.win32.msvc" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.win32.msvc.jogl" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.win32.msvc.jogl" /> + </target> + + <target name="c.configure.win32.mingw" if="isMingW"> + <echo message="Win32.MingW" /> + <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" /> + <property name="linker.cfg.id.core" value="linker.cfg.win32.mingw" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.win32.mingw.jogl" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.win32.mingw.jogl" /> </target> - <target name="rename.dylib" if="isOSX"> - <move file="${src}" tofile="${dest}" /> + <target name="c.configure.linux.x86" if="isLinuxX86"> + <echo message="Linux.x86" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux" /> + <property name="linker.cfg.id.core" value="linker.cfg.linux" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" /> + </target> + + <target name="c.configure.linux.amd64" if="isLinuxAMD64"> + <echo message="Linux.AMD64" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux.amd64" /> + <property name="linker.cfg.id.core" value="linker.cfg.linux.amd64" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.linux.amd64.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.linux.amd64.jogl.gl2" /> + </target> + + <target name="c.configure.linux.ia64" if="isLinuxIA64"> + <echo message="Linux.IA64" /> + <property name="compiler.cfg.id" value="compiler.cfg.linux" /> + <property name="linker.cfg.id.core" value="linker.cfg.linux" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" /> </target> - <target name="c.build" depends="c.configure"> - <fail message="Requires '${c.compiler.src.files}'" unless="c.compiler.src.files"/> - <fail message="Requires '${compiler.cfg.id}'" unless="compiler.cfg.id"/> - <fail message="Requires '${linker.cfg.id}'" unless="linker.cfg.id"/> - <fail message="Requires '${output.lib.name}'" unless="output.lib.name"/> + <target name="c.configure.linux" depends="c.configure.linux.x86,c.configure.linux.amd64,c.configure.linux.ia64,c.configure.x11" if="isLinux" /> - <echo message="Output lib name = ${output.lib.name}" /> + <target name="c.configure.solaris32" depends="c.configure.x11" if="isSolaris32Bit"> + <echo message="Solaris" /> + <property name="compiler.cfg.id" value="compiler.cfg.solaris" /> + <property name="linker.cfg.id.core" value="linker.cfg.solaris" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.jogl.gl2" /> + </target> + + + <target name="c.configure.solaris.sparcv9" depends="c.configure.x11" if="isSolarisSparcv9"> + <echo message="SolarisSparcv9" /> + <property name="compiler.cfg.id" value="compiler.cfg.solaris.sparcv9" /> + <property name="linker.cfg.id.core" value="linker.cfg.solaris.sparcv9" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.sparcv9.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.sparcv9.jogl.gl2" /> + </target> + - <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally --> - <property name="c.compiler.debug" value="false" /> - <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } --> - <property name="c.compiler.optimise" value="none" /> + <target name="c.configure.solaris.amd64" depends="c.configure.x11" if="isSolarisAMD64"> + <echo message="SolarisAMD64" /> + <property name="compiler.cfg.id" value="compiler.cfg.solaris.amd64" /> + <property name="linker.cfg.id.core" value="linker.cfg.solaris.amd64" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.amd64.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.amd64.jogl.gl2" /> + </target> + + <target name="c.configure.freebsd" depends="c.configure.x11" if="isFreeBSD"> + <echo message="FreeBSD" /> + <property name="compiler.cfg.id" value="compiler.cfg.freebsd.jogl" /> + <property name="linker.cfg.id.core" value="linker.cfg.linux" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" /> + </target> - <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition> + <target name="c.configure.hpux" depends="c.configure.x11" if="isHPUX"> + <echo message="HP-UX" /> + <property name="compiler.cfg.id" value="compiler.cfg.hpux" /> + <property name="linker.cfg.id.core" value="linker.cfg.hpux" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.hpux.jogl.x11" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.hpux.jogl.gl2" /> + </target> - <condition property="c.compiler.needs-libjvm"> - <and> - <isset property="isHPUX"/> - <isset property="c.compiler.use-jawt"/> - </and> - </condition> + <target name="c.configure.win32" depends="c.configure.win32.vc,c.configure.win32.mingw" if="isWindows" /> - <patternset id="c.src.files.jogl.awt"> - <include name="${rootrel.src.c.jogl}/JAWT*.c"/> + <target name="c.configure.x11" if="isX11" /> - <include name="${rootrel.generated.c.jogl}/X11/JAWT*.c" if="isX11"/> + <target name="c.configure.macosx" if="isOSX"> + <property name="compiler.cfg.id" value="compiler.cfg.macosx" /> + <property name="linker.cfg.id.core" value="linker.cfg.macosx" /> + <property name="linker.cfg.id.oswin" value="linker.cfg.macosx.jogl" /> + <property name="linker.cfg.id.gl2" value="linker.cfg.macosx.jogl" /> + </target> + + <target name="c.configure.2" depends="c.configure.win32,c.configure.linux,c.configure.solaris32,c.configure.solaris.sparcv9,c.configure.solaris.amd64,c.configure.macosx,c.configure.freebsd,c.configure.hpux" /> - <include name="${rootrel.generated.c.jogl}/OSX/JAWT*.c" if="isOSX"/> + <target name="c.configure" depends="c.configure.1,c.configure.2" /> - <include name="${rootrel.generated.c.jogl}/Windows/JAWT*.c" if="isWindows"/> - </patternset> + <target name="rename.mingw.dll" if="isMingW"> + <move file="${src}" tofile="${dest}" /> + </target> - <patternset id="c.src.files.newt"> - <!-- FIXME: NEWT should be moved to another library --> - <include name="${rootrel.src.c.newt}/WindowsWindow.c" if="isWindows"/> - <include name="${rootrel.src.c.newt}/X11Window.c" if="isX11"/> - <include name="${rootrel.src.c.newt}/OSXWindow.c" if="isOSX"/> - </patternset> + <target name="rename.dylib" if="isOSX"> + <move file="${src}" tofile="${dest}" /> + </target> - <patternset id="c.src.files.jogl.gl2"> - <include name="${rootrel.src.c.jogl}/XineramaHelper.c" if="isX11"/> - <!-- Xinerama supporting functions for Linux only (for now) --> - <!-- Also supported on Solaris, but works differently --> - <include name="${rootrel.src.c.jogl}/Xinerama.c" if="isLinux"/> - - <include name="${rootrel.src.c.jogl}/MacOSXWindowSystemInterface.m" if="isOSX"/> - - <include name="${rootrel.generated.c.jogl}/X11/X11Lib_JNI.c" if="isX11"/> - - <include name="${rootrel.src.c.jogl}/InternalBufferUtils.c"/> - - <include name="${rootrel.src.c.jogl}/ContextUpdater.m" if="isOSX"/> - - <include name="${rootrel.generated.c.jogl}/gl2/GL2Impl_JNI.c"/> - <!--include name="${rootrel.generated.c.jogl}/GLU_JNI.c"/ EMPTY --> - <include name="${rootrel.generated.c.jogl}/gl2/GLUgl2_JNI.c"/> - - <include name="${rootrel.generated.c.jogl}/X11/GLX*.c" if="isX11"/> - <include name="${rootrel.generated.c.jogl}/OSX/CGL*.c" if="isOSX"/> - <include name="${rootrel.generated.c.jogl}/Windows/WGL*.c" if="isWindows"/> - - <!-- FIXME: the Mixer should be moved to another library --> - <!--include name="${rootrel.src.c.jogl}/Mixer.cpp" if="isWindows"/--> - </patternset> - - <patternset id="c.src.files.jogl.es2"> - <include name="${rootrel.src.c.jogl}/XineramaHelper.c" if="isX11"/> - <!-- Xinerama supporting functions for Linux only (for now) --> - <!-- Also supported on Solaris, but works differently --> - <include name="${rootrel.src.c.jogl}/Xinerama.c" if="isLinux"/> - - <include name="${rootrel.generated.c.jogl}/X11/X11Lib_JNI.c" if="isX11"/> - - <include name="${rootrel.generated.c.jogl}/es2/GLES2Impl_JNI.c"/> - - <include name="${rootrel.generated.c.jogl}/egl/EGL_JNI.c"/> - <include name="${rootrel.src.c.jogl}/InternalBufferUtils.c"/> - </patternset> - - <patternset id="c.src.files.jogl.es1"> - <include name="${rootrel.src.c.jogl}/XineramaHelper.c" if="isX11"/> - <!-- Xinerama supporting functions for Linux only (for now) --> - <!-- Also supported on Solaris, but works differently --> - <include name="${rootrel.src.c.jogl}/Xinerama.c" if="isLinux"/> - - <include name="${rootrel.generated.c.jogl}/X11/X11Lib_JNI.c" if="isX11"/> - - <include name="${rootrel.generated.c.jogl}/egl/EGL_JNI.c"/> - <include name="${rootrel.src.c.jogl}/InternalBufferUtils.c"/> - - <include name="${rootrel.generated.c.jogl}/es1/GLES1Impl_JNI.c"/> - <!--include name="${rootrel.generated.c.jogl}/GLU_JNI.c"/ EMPTY --> - <!--include name="${rootrel.generated.c.jogl}/es1/GLUes1_JNI.c" EMPTY /--> - </patternset> - - <patternset id="c.src.files.cg"> - <include name="${rootrel.generated.c.cg}/*.c"/> - </patternset> - - <cc outtype="shared" - objdir="${obj.jogl}" - outfile="${obj}/${output.lib.name}" - optimize="${c.compiler.optimise}" - debug="${c.compiler.debug}" - multithreaded="true" - exceptions="false" - rtti="false"> - - <!-- TODO: versioninfo companyname="java.net" - legalcopyright="Copyright" - productname="JOGL" - productversion="x.y.z" - description="Description" - fileversion="x.y.z" - filecomments="File Comment" /--> - - <fileset dir="${project.root}"><patternset refid="${c.compiler.src.files}"/></fileset> - - <compiler extends="${compiler.cfg.id}" > - <sysincludepath path="${java.includes.dir}"/> - <sysincludepath path="${java.includes.dir.platform}"/> - <includepath path="stub_includes/opengl"/> - <includepath path="stub_includes/egl"/> - <includepath path="stub_includes/cg" if="c.compiler.use-cglib"/> - - <!-- This is for the generated headers for handwritten C code --> - <includepath path="${src.generated.c}" /> - <includepath path="${src.generated.c}/X11" if="isX11"/> - <includepath path="${src.generated.c}/OSX" if="isOSX"/> - <includepath path="${src.generated.c}/Windows" if="isWindows"/> - <includepath path="${src.generated.c.newt}" /> - <includepath path="${src.generated.c.newt}/X11" if="isX11"/> - <includepath path="${src.generated.c.newt}/OSX" if="isOSX"/> - <includepath path="${src.generated.c.newt}/Windows" if="isWindows"/> - - <!-- This must come last to not override real include paths --> - <!-- includepath path="stub_includes/macosx" if="isOSX" / --> - </compiler> - - <linker extends="${linker.cfg.id}"> - <syslibset dir="${java.lib.dir.platform}" libs="jawt" if="c.compiler.use-jawt"/> - <syslibset dir="${java.lib.dir.platform}/server" libs="jvm" if="c.compiler.needs-libjvm"/> - </linker> - </cc> - - <!-- FIXME: this is a hack; the cpptask should have an option to change the - suffix or at least understand the override from dylib to jnilib --> - <antcall target="rename.dylib" inheritRefs="true"> - <param name="src" value="${build}/obj/lib${output.lib.name}.dylib" /> - <param name="dest" value="${build}/obj/lib${output.lib.name}.jnilib" /> - </antcall> - - <!-- FIXME: this is a hack; the cpptask should have an option to change the - suffix or at least understand the override from dylib to jnilib --> - <antcall target="rename.mingw.dll" inheritRefs="true"> - <param name="src" value="${build}/lib${output.lib.name}.so" /> - <param name="dest" value="${build}/${output.lib.name}.dll" /> - </antcall> - </target> + <macrodef name="c.build"> + <attribute name="c.compiler.src.files" /> + <attribute name="compiler.cfg.id" /> + <attribute name="linker.cfg.id" /> + <attribute name="output.lib.name" /> + <attribute name="c.compiler.use-jawt" default="false" /> + <sequential> + <echo message="Output lib name = @{output.lib.name}" /> + + <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally --> + <property name="c.compiler.debug" value="false" /> + <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } --> + <property name="c.compiler.optimise" value="none" /> + + <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition> + + <condition property="useJAWT"> + <and> + <istrue value="@{c.compiler.use-jawt}" /> + </and> + </condition> + + <condition property="c.compiler.needs-libjvm"> + <and> + <isset property="isHPUX"/> + <isset property="useJAWT"/> + </and> + </condition> + + <patternset id="c.src.files.jogl.awt"> + <include name="${rootrel.src.c.jogl}/JAWT*.c"/> + <include name="${rootrel.generated.c.jogl}/X11/JAWT*.c" if="isX11"/> + <include name="${rootrel.generated.c.jogl}/OSX/JAWT*.c" if="isOSX"/> + <include name="${rootrel.generated.c.jogl}/Windows/JAWT*.c" if="isWindows"/> + </patternset> + + <patternset id="c.src.files.newt"> + <!-- FIXME: NEWT should be moved to another library --> + <include name="${rootrel.src.c.newt}/WindowsWindow.c" if="isWindows"/> + <include name="${rootrel.src.c.newt}/X11Window.c" if="isX11"/> + <include name="${rootrel.src.c.newt}/OSXWindow.c" if="isOSX"/> + </patternset> + + <patternset id="c.src.files.jogl.gl2"> + <include name="${rootrel.src.c.jogl}/XineramaHelper.c" if="isX11"/> + <!-- Xinerama supporting functions for Linux only (for now) --> + <!-- Also supported on Solaris, but works differently --> + <include name="${rootrel.src.c.jogl}/Xinerama.c" if="isLinux"/> + <include name="${rootrel.src.c.jogl}/MacOSXWindowSystemInterface.m" if="isOSX"/> + <include name="${rootrel.generated.c.jogl}/X11/X11Lib_JNI.c" if="isX11"/> + <include name="${rootrel.src.c.jogl}/InternalBufferUtils.c"/> + <include name="${rootrel.src.c.jogl}/ContextUpdater.m" if="isOSX"/> + <include name="${rootrel.generated.c.jogl}/gl2/GL2Impl_JNI.c"/> + <!--include name="${rootrel.generated.c.jogl}/GLU_JNI.c"/ EMPTY --> + <include name="${rootrel.generated.c.jogl}/gl2/GLUgl2_JNI.c"/> + <include name="${rootrel.generated.c.jogl}/X11/GLX*.c" if="isX11"/> + <include name="${rootrel.generated.c.jogl}/OSX/CGL*.c" if="isOSX"/> + <include name="${rootrel.generated.c.jogl}/Windows/WGL*.c" if="isWindows"/> + <!-- FIXME: the Mixer should be moved to another library --> + <!--include name="${rootrel.src.c.jogl}/Mixer.cpp" if="isWindows"/--> + </patternset> + + <patternset id="c.src.files.jogl.es2"> + <include name="${rootrel.src.c.jogl}/XineramaHelper.c" if="isX11"/> + <!-- Xinerama supporting functions for Linux only (for now) --> + <!-- Also supported on Solaris, but works differently --> + <include name="${rootrel.src.c.jogl}/Xinerama.c" if="isLinux"/> + <include name="${rootrel.generated.c.jogl}/X11/X11Lib_JNI.c" if="isX11"/> + <include name="${rootrel.generated.c.jogl}/es2/GLES2Impl_JNI.c"/> + <include name="${rootrel.generated.c.jogl}/egl/EGL_JNI.c"/> + <include name="${rootrel.src.c.jogl}/InternalBufferUtils.c"/> + </patternset> + + <patternset id="c.src.files.jogl.es1"> + <include name="${rootrel.src.c.jogl}/XineramaHelper.c" if="isX11"/> + <!-- Xinerama supporting functions for Linux only (for now) --> + <!-- Also supported on Solaris, but works differently --> + <include name="${rootrel.src.c.jogl}/Xinerama.c" if="isLinux"/> + <include name="${rootrel.generated.c.jogl}/X11/X11Lib_JNI.c" if="isX11"/> + <include name="${rootrel.generated.c.jogl}/egl/EGL_JNI.c"/> + <include name="${rootrel.src.c.jogl}/InternalBufferUtils.c"/> + <include name="${rootrel.generated.c.jogl}/es1/GLES1Impl_JNI.c"/> + <!--include name="${rootrel.generated.c.jogl}/GLU_JNI.c"/ EMPTY --> + <!--include name="${rootrel.generated.c.jogl}/es1/GLUes1_JNI.c" EMPTY /--> + </patternset> + + <patternset id="c.src.files.cg"> + <include name="${rootrel.generated.c.cg}/*.c"/> + </patternset> + + <echo message="Compiling ${output.lib.name}" /> + + <cc outtype="shared" + objdir="${obj.jogl}" + outfile="${obj}/@{output.lib.name}" + optimize="${c.compiler.optimise}" + debug="${c.compiler.debug}" + multithreaded="true" + exceptions="false" + rtti="false"> + + <!-- TODO: versioninfo companyname="java.net" + legalcopyright="Copyright" + productname="JOGL" + productversion="x.y.z" + description="Description" + fileversion="x.y.z" + filecomments="File Comment" /--> + + <fileset dir="${project.root}"><patternset refid="@{c.compiler.src.files}"/></fileset> + + <compiler extends="@{compiler.cfg.id}" > + <sysincludepath path="${java.includes.dir}"/> + <sysincludepath path="${java.includes.dir.platform}"/> + <includepath path="stub_includes/opengl"/> + <includepath path="stub_includes/egl"/> + <includepath path="stub_includes/cg" if="c.compiler.use-cglib"/> + + <!-- This is for the generated headers for handwritten C code --> + <includepath path="${src.generated.c}" /> + <includepath path="${src.generated.c}/X11" if="isX11"/> + <includepath path="${src.generated.c}/OSX" if="isOSX"/> + <includepath path="${src.generated.c}/Windows" if="isWindows"/> + <includepath path="${src.generated.c.newt}" /> + <includepath path="${src.generated.c.newt}/X11" if="isX11"/> + <includepath path="${src.generated.c.newt}/OSX" if="isOSX"/> + <includepath path="${src.generated.c.newt}/Windows" if="isWindows"/> + + <!-- This must come last to not override real include paths --> + <!-- includepath path="stub_includes/macosx" if="isOSX" / --> + </compiler> + + <linker extends="@{linker.cfg.id}"> + <syslibset dir="${java.lib.dir.platform}" libs="jawt" if="useJAWT"/> + <syslibset dir="${java.lib.dir.platform}/server" libs="jvm" if="c.compiler.needs-libjvm"/> + </linker> + </cc> + + <!-- FIXME: this is a hack; the cpptask should have an option to change the + suffix or at least understand the override from dylib to jnilib --> + <antcall target="rename.dylib" inheritRefs="true"> + <param name="src" value="${build}/obj/lib${output.lib.name}.dylib" /> + <param name="dest" value="${build}/obj/lib${output.lib.name}.jnilib" /> + </antcall> + + <!-- FIXME: this is a hack; the cpptask should have an option to change the + suffix or at least understand the override from dylib to jnilib --> + <antcall target="rename.mingw.dll" inheritRefs="true"> + <param name="src" value="${build}/lib${output.lib.name}.so" /> + <param name="dest" value="${build}/${output.lib.name}.dll" /> + </antcall> + </sequential> + </macrodef> <target name="c.fixup.jawt.version.macosx" if="isOSX"> <!-- Edit the link to the JAWT version in the resulting jnilib @@ -1385,58 +1373,47 @@ </target> <target name="c.build.jogl.awt"> - <antcall target="c.build" inheritRefs="true"> - <param name="c.compiler.src.files" value="c.src.files.jogl.awt"/> - <param name="c.compiler.use-jawt" value="true"/> - <param name="output.lib.name" value="jogl_awt"/> - <param name="linker.cfg.id" value="${linker.cfg.id.oswin}"/> - </antcall> + <c.build c.compiler.src.files="c.src.files.jogl.awt" + c.compiler.use-jawt="true" + output.lib.name="jogl_awt" + compiler.cfg.id="${compiler.cfg.id}" + linker.cfg.id="${linker.cfg.id.oswin}"/> </target> <!-- There is no native newt library on OS X --> <target name="c.build.newt" unless="isOSX"> - <antcall target="c.build" inheritRefs="true"> - <param name="c.compiler.src.files" value="c.src.files.newt"/> - <param name="c.compiler.use-newt" value="true"/> - <param name="output.lib.name" value="newt"/> - <param name="linker.cfg.id" value="${linker.cfg.id.oswin}"/> - </antcall> + <c.build c.compiler.src.files="c.src.files.newt" + output.lib.name="newt" + compiler.cfg.id="${compiler.cfg.id}" + linker.cfg.id="${linker.cfg.id.oswin}"/> </target> <target name="c.build.jogl.gl2" unless="jogl.nogl2"> - <antcall target="c.build" inheritRefs="true"> - <param name="c.compiler.src.files" value="c.src.files.jogl.gl2"/> - <param name="c.compiler.use-gl2" value="true"/> - <param name="output.lib.name" value="jogl_gl2"/> - <param name="linker.cfg.id" value="${linker.cfg.id.gl2}"/> - </antcall> + <c.build c.compiler.src.files="c.src.files.jogl.gl2" + output.lib.name="jogl_gl2" + compiler.cfg.id="${compiler.cfg.id}" + linker.cfg.id="${linker.cfg.id.gl2}"/> </target> <target name="c.build.jogl.es2" unless="jogl.noes1"> - <antcall target="c.build" inheritRefs="true"> - <param name="c.compiler.src.files" value="c.src.files.jogl.es2"/> - <param name="c.compiler.use-es2" value="true"/> - <param name="output.lib.name" value="jogl_es2"/> - <param name="linker.cfg.id" value="${linker.cfg.id.core}"/> - </antcall> + <c.build c.compiler.src.files="c.src.files.jogl.es2" + output.lib.name="jogl_es2" + compiler.cfg.id="${compiler.cfg.id}" + linker.cfg.id="${linker.cfg.id.base}"/> </target> <target name="c.build.jogl.es1" unless="jogl.noes2"> - <antcall target="c.build" inheritRefs="true"> - <param name="c.compiler.src.files" value="c.src.files.jogl.es1"/> - <param name="c.compiler.use-es1" value="true"/> - <param name="output.lib.name" value="jogl_es1"/> - <param name="linker.cfg.id" value="${linker.cfg.id.core}"/> - </antcall> + <c.build c.compiler.src.files="c.src.files.jogl.es1" + output.lib.name="jogl_es1" + compiler.cfg.id="${compiler.cfg.id}" + linker.cfg.id="${linker.cfg.id.base}"/> </target> <target name="c.build.jogl.cg" if="jogl.cg"> - <antcall target="c.build" inheritRefs="true"> - <param name="c.compiler.src.files" value="c.src.files.cg"/> - <param name="c.compiler.use-cglib" value="true"/> - <param name="output.lib.name" value="jogl_cg"/> - <param name="linker.cfg.id" value="${linker.cfg.id.gl2}"/> - </antcall> + <c.build c.compiler.src.files="c.src.files.cg" + output.lib.name="jogl_cg" + compiler.cfg.id="${compiler.cfg.id}" + linker.cfg.id="${linker.cfg.id.gl2}"/> </target> <target name="c.manifest.cg" if="jogl.cg"> @@ -1462,7 +1439,7 @@ <antcall target="c.manifest.cg" inheritRefs="true" /> </target> - <target name="c.build.jogl" depends="c.build.jogl.prepare,c.build.jogl.awt,c.build.newt,c.build.jogl.gl2,c.build.jogl.es2,c.build.jogl.es1,c.build.jogl.cg"> + <target name="c.build.jogl" depends="c.configure,c.build.jogl.prepare,c.build.jogl.awt,c.build.newt,c.build.jogl.gl2,c.build.jogl.es2,c.build.jogl.es1,c.build.jogl.cg"> <antcall target="c.fixup.jawt.version.macosx" inheritrefs="true" /> <antcall target="c.manifest" inheritRefs="true" /> </target> @@ -1698,7 +1675,7 @@ </javadoc> </target> - <target name="javadoc.dev.all" depends="load.user.properties,init,declare,javadoc.dev.nocg,javadoc.dev.cg" /> + <target name="javadoc.dev.all" depends="load.user.properties,init,javadoc.dev.nocg,javadoc.dev.cg" /> <!-- ================================================================== --> <!-- @@ -2158,14 +2135,7 @@ <!-- - Build everything. --> - <target name="all" description="Build JOGL JAR file(s) and native libraries." depends="load.user.properties,init,declare"> - <!-- Generate, compile, and build the jar for the Java sources. --> - <antcall target="jar" inheritRefs="true" /> - - <!-- Compile the native C sources . --> - <antcall target="c.build.jogl" inheritRefs="true" /> - </target> - + <target name="all" description="Build JOGL JAR file(s) and native libraries." depends="load.user.properties,init,jar,c.build.jogl" /> <!-- ================================================================== --> <!-- |