summaryrefslogtreecommitdiffstats
path: root/make/build-jogl.xml
diff options
context:
space:
mode:
Diffstat (limited to 'make/build-jogl.xml')
-rw-r--r--make/build-jogl.xml133
1 files changed, 78 insertions, 55 deletions
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
index a0a9c70f8..f7e83a489 100644
--- a/make/build-jogl.xml
+++ b/make/build-jogl.xml
@@ -62,6 +62,11 @@
<import file="build-common.xml"/>
+ <!-- needed for outofdate task -->
+ <taskdef resource="net/sf/antcontrib/antlib.xml">
+ <classpath> <pathelement location="${ant-contrib.jar}"/> </classpath>
+ </taskdef>
+
<!-- ================================================================== -->
<!--
- Base initialization and detection of operating system.
@@ -920,7 +925,7 @@
<!-- Blow away the DebugGL*.java and TraceGL*.java sources if GL*.class has changed
(the uptodate element doesn't support arbitrary source and destination files) -->
<dependset>
- <srcfilelist dir="${classes}/com/jogamp/opengl/util/glsl/fixedfunc" files="FixedFuncHook.class" />
+ <srcfilelist dir="${classes}/jogamp/opengl/util/glsl/fixedfunc" files="FixedFuncHook.class" />
<srcfilelist dir="${classes}/javax/media/opengl" files="GL2ES1.class" />
<srcfilelist dir="${classes}/javax/media/opengl" files="GL2ES2.class" />
<targetfileset dir="${src.generated.java}/jogamp/opengl/util/glsl/fixedfunc"
@@ -1250,56 +1255,78 @@
<echo message="Compiling @{output.lib.name}" />
- <cc outtype="shared"
- objdir="${obj.joglsub}"
- outfile="${obj.jogl}/@{output.lib.name}"
- optimize="${c.compiler.optimise}"
- debug="${c.compiler.debug}"
- multithreaded="true"
- exceptions="false"
- rtti="false">
-
- <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/khr"/>
- <includepath path="stub_includes/egl"/>
- <includepath path="stub_includes/opengl"/>
- <includepath path="stub_includes/openmax" if="useOpenMAX"/>
- <includepath path="stub_includes/cg" if="jogl.cg"/>
-
- <!-- 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}/MacOSX" if="isOSX"/>
- <includepath path="${src.generated.c}/Windows" if="isWindows"/>
- <includepath path="${src.generated.c.openmax}" if="useOpenMAX"/>
-
- <!-- 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.platform}" libs="jawt" if="@{output.lib.name}.useLibJAWT"/>
- <syslibset dir="${java.lib.platform}/server" libs="jvm" if="@{output.lib.name}.useLibJVM"/>
- </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.jogl}/obj/lib@{output.lib.name}.dylib" />
- <param name="dest" value="${build.jogl}/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.jogl}/obj/lib@{output.lib.name}.so" />
- <param name="dest" value="${build.jogl}/obj/@{output.lib.name}.dll" />
- </antcall>
+ <!-- have to wrap cc task with outofdate, because otherwise cc links a new library
+ even when no files have been compiled -->
+ <outofdate>
+ <sourcefiles>
+ <fileset dir="${project.root}"><patternset refid="@{c.compiler.src.files}"/></fileset>
+ </sourcefiles>
+ <targetfiles>
+ <fileset dir="${obj.jogl}" includes="lib@{output.lib.name}.so"/>
+ <fileset dir="${obj.jogl}" includes="@{output.lib.name}.dll"/>
+ <fileset dir="${obj.jogl}" includes="lib@{output.lib.name}.jnilib"/>
+ </targetfiles>
+ <sequential>
+ <cc outtype="shared"
+ objdir="${obj.joglsub}"
+ outfile="${obj.jogl}/@{output.lib.name}"
+ optimize="${c.compiler.optimise}"
+ debug="${c.compiler.debug}"
+ multithreaded="true"
+ exceptions="false"
+ rtti="false">
+
+ <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/khr"/>
+ <includepath path="stub_includes/egl"/>
+ <includepath path="stub_includes/opengl"/>
+ <includepath path="stub_includes/openmax" if="useOpenMAX"/>
+ <includepath path="stub_includes/cg" if="jogl.cg"/>
+
+ <!-- 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}/MacOSX" if="isOSX"/>
+ <includepath path="${src.generated.c}/Windows" if="isWindows"/>
+ <includepath path="${src.generated.c.openmax}" if="useOpenMAX"/>
+
+ <!-- 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.platform}" libs="jawt" if="@{output.lib.name}.useLibJAWT"/>
+ <syslibset dir="${java.lib.platform}/server" libs="jvm" if="@{output.lib.name}.useLibJVM"/>
+ </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="${obj.jogl}/lib@{output.lib.name}.dylib" />
+ <param name="dest" value="${obj.jogl}/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="${obj.jogl}/lib@{output.lib.name}.so" />
+ <param name="dest" value="${obj.jogl}/@{output.lib.name}.dll" />
+ </antcall>
+
+ <!-- this stripping may be called more than once on the same library dir,
+ but that should cause no harm, and doing it here inside outofdate
+ prevents the JARs from always being rebuilt even if no source code changes -->
+ <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true">
+ <param name="libdir" value="${obj.jogl}"/>
+ </antcall>
+
+ </sequential>
+ </outofdate>
</sequential>
</macrodef>
@@ -1354,10 +1381,6 @@
</target>
<target name="c.build.jogl" depends="c.configure,c.build.jogl.prepare,c.build.jogl.desktop,c.build.jogl.es2,c.build.jogl.es1,c.build.jogl.cg">
- <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true">
- <param name="libdir" value="${obj.jogl}"/>
- </antcall>
-
<antcall target="c.manifest" inheritRefs="true" />
</target>