diff options
-rw-r--r-- | make/build-jogl.xml | 131 | ||||
-rw-r--r-- | make/build-nativewindow.xml | 123 | ||||
-rw-r--r-- | make/build-newt.xml | 133 | ||||
-rw-r--r-- | make/build-test.xml | 3 |
4 files changed, 228 insertions, 162 deletions
diff --git a/make/build-jogl.xml b/make/build-jogl.xml index 7376c469d..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. @@ -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> diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml index 50ed109a2..9c54021ef 100644 --- a/make/build-nativewindow.xml +++ b/make/build-nativewindow.xml @@ -53,9 +53,14 @@ --> <project name="NativeWindow" basedir="." default="all"> - <import file="build-common.xml"/> + <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. --> @@ -544,50 +549,72 @@ <echo message="Compiling @{output.lib.name}" /> - <cc outtype="shared" - objdir="${obj.nativewindow}" - outfile="${obj.nativewindow}/@{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}"/> - <!-- 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.c}"/> - - <!-- 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="@{output.lib.name}.useLibJAWT"/> - <syslibset dir="${java.lib.dir.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.nativewindow}/obj/lib@{output.lib.name}.dylib" /> - <param name="dest" value="${build.nativewindow}/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.nativewindow}/obj/lib@{output.lib.name}.so" /> - <param name="dest" value="${build.nativewindow}/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.nativewindow}" includes="lib@{output.lib.name}.so"/> + <fileset dir="${obj.nativewindow}" includes="@{output.lib.name}.dll"/> + <fileset dir="${obj.nativewindow}" includes="lib@{output.lib.name}.jnilib"/> + </targetfiles> + <sequential> + <cc outtype="shared" + objdir="${obj.nativewindow}" + outfile="${obj.nativewindow}/@{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}"/> + <!-- 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.c}"/> + + <!-- 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="@{output.lib.name}.useLibJAWT"/> + <syslibset dir="${java.lib.dir.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.nativewindow}/lib@{output.lib.name}.dylib" /> + <param name="dest" value="${obj.nativewindow}/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.nativewindow}/lib@{output.lib.name}.so" /> + <param name="dest" value="${obj.nativewindow}/@{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.nativewindow}"/> + </antcall> + + </sequential> + </outofdate> </sequential> </macrodef> @@ -639,10 +666,6 @@ </target> <target name="c.build.nativewindow" depends="c.configure,c.build.nativewindow.windowlib,c.build.nativewindow.awt"> - <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true"> - <param name="libdir" value="${obj.nativewindow}"/> - </antcall> - <antcall target="c.fixup.jawt.version.macosx" inheritrefs="true" /> <antcall target="c.manifest" inheritRefs="true" /> </target> diff --git a/make/build-newt.xml b/make/build-newt.xml index c91a2fda1..e135d2700 100644 --- a/make/build-newt.xml +++ b/make/build-newt.xml @@ -58,6 +58,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. @@ -438,57 +443,79 @@ <echo message="Compiling @{output.lib.name}" /> - <cc outtype="shared" - objdir="${obj.newt}" - outfile="${obj.newt}/@{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"/> - <!-- This is for finding Xrandr.h on Solaris. --> - <includepath path="/usr/X11/include" /> - <!-- 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}/KD" if="useKD" /> - <includepath path="${src.generated.c}/IntelGDL" if="useIntelGDL" /> - <includepath path="stub_includes/embedded/IntelGDL" if="useIntelGDL" /> - <includepath path="${src.generated.c}/BroadcomEGL" if="useBroadcomEGL" /> - - <!-- 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.newt}/lib@{output.lib.name}.dylib" /> - <param name="dest" value="${obj.newt}/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.newt}/lib@{output.lib.name}.so" /> - <param name="dest" value="${obj.newt}/@{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.newt}" includes="lib@{output.lib.name}.so"/> + <fileset dir="${obj.newt}" includes="@{output.lib.name}.dll"/> + <fileset dir="${obj.newt}" includes="lib@{output.lib.name}.jnilib"/> + </targetfiles> + <sequential> + <cc outtype="shared" + objdir="${obj.newt}" + outfile="${obj.newt}/@{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"/> + <!-- This is for finding Xrandr.h on Solaris. --> + <includepath path="/usr/X11/include" /> + <!-- 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}/KD" if="useKD" /> + <includepath path="${src.generated.c}/IntelGDL" if="useIntelGDL" /> + <includepath path="stub_includes/embedded/IntelGDL" if="useIntelGDL" /> + <includepath path="${src.generated.c}/BroadcomEGL" if="useBroadcomEGL" /> + + <!-- 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.newt}/lib@{output.lib.name}.dylib" /> + <param name="dest" value="${obj.newt}/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.newt}/lib@{output.lib.name}.so" /> + <param name="dest" value="${obj.newt}/@{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.newt}"/> + </antcall> + + </sequential> + </outofdate> </sequential> </macrodef> @@ -536,10 +563,6 @@ </target> <target name="c.build.newt" depends="c.configure,c.build.newt.prepare,c.build.newt.natives"> - <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true"> - <param name="libdir" value="${obj.newt}"/> - </antcall> - <antcall target="c.manifest" inheritRefs="true" /> </target> diff --git a/make/build-test.xml b/make/build-test.xml index 93f0d0e7e..2d1813668 100644 --- a/make/build-test.xml +++ b/make/build-test.xml @@ -83,9 +83,6 @@ <classpath refid="junit_jogl_newt.compile.classpath"/> <src path="${src.test}" /> </javac> - <delete includeEmptyDirs="true" quiet="true"> - <fileset file="${jogl.test.jar}" /> - </delete> <jar destfile="${jogl.test.jar}" filesonly="true"> <!-- get all class files, but skip any resource files that external tools might have copied into the class directory (otherwise, it's possible |