summaryrefslogtreecommitdiffstats
path: root/make/build.xml
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2010-04-08 02:22:12 +0200
committerSven Gothel <[email protected]>2010-04-08 02:22:12 +0200
commit7cc4bb2a8bcc4c16b6a12826abbd874bf38f9dc1 (patch)
treeeb932553d0f9b36dbe6d703356502bf352cc6eca /make/build.xml
parent82ac66ba1e7494b0a76a2063f0d56d3b785c6c31 (diff)
http://jogamp.org/bugzilla/show_bug.cgi?id=393
Fixed junit test: test1 - Create seperate native libraries to reflect a real world example: test1 - the library to bind to (no more declaring __stdcall @nn functions) BindingTest1p1 - the dynamic fixed linkage binding test1p1, references dynamic library test1 at linktime. BindingTest1p2 - the dynamic runtime linkage binding test1p2, loads dynamic library test1 at runtime. Generic: - gluegen-cpptasks-base.xml - target 'gluegen.cpptasks.detect.os' Set new property 'system.env.library.path' DYLD_LIBRARY_PATH (macosx) LD_LIBRARY_PATH (unix) PATH (windows) - target 'gluegen.cpptasks.striplibs' Strips the symbols out of the native libraries in case c.compiler.debug is false. Maybe configured with the properties: c.strip.tool, c.strip.args - Using system.env.library.path in junit call to find the test1 library in case of runtime linkage and lookup (test1p2). - Use gluegen.cpptasks.striplibs for all native libs .. - Added macosx32 in analogy to macosx64, both defaults to true now - com.jogamp.common.os.WindowsDynamicLinkerImpl:lookupSymbol() - Added lookup for __stdcall @nn (stepping alignment 4, max-args: 12) in case no undecorated __cdecl symbol is found. Fixed Windows platform: - Use proper path.seperator on Windows. - test1.dll needs proper soname inside for fixed linkage (test1p1) hence the output name must be test1.dll, not libtest1.so +++ http://jogamp.org/bugzilla/show_bug.cgi?id=394 Fix MacOsX platform: The commit of cpptasks.jar, git hash 129e783741d91e9ee5cd7da5d5c962c32ec96b0b, broke the universal binary build on MacOSX. The above change used cpptasks-1.05b with a few patches in regards to crosscompilation, but missed one, which accepts the '-arch' argument for GccLinker undecorated. The new cpptasks.jar is vanilla 1.05b + cpptasks-1.0b5-darwin-patch.diff, the latter a more refined one. This version accepts the '-arch' argument undecorated on the darwin platform. +++
Diffstat (limited to 'make/build.xml')
-rwxr-xr-xmake/build.xml22
1 files changed, 14 insertions, 8 deletions
diff --git a/make/build.xml b/make/build.xml
index 6b51f7e..c41f21c 100755
--- a/make/build.xml
+++ b/make/build.xml
@@ -51,6 +51,9 @@
<property name="src.java" value="../src/java" />
<property name="build" value="../${rootrel.build}" />
+ <property name="gluegen.lib.dir" value="${build}/obj"/>
+
+
<!-- The generated source directories. -->
<property name="src.generated" value="${build}/gensrc" />
<property name="src.generated.java" value="${src.generated}/java" />
@@ -341,10 +344,7 @@
<condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition>
- <!--namespace can be overwritten from outside-->
- <property name="namespace" value=""/>
-
- <mkdir dir="${build}/obj/${namespace}" />
+ <mkdir dir="${gluegen.lib.dir}"/>
<property name="c.compiler.src.files.common" value="src/native/common/*.c" />
@@ -352,8 +352,8 @@
<echo message="user.dir=${user.dir}" />
<cc outtype="shared"
- objdir="${build}/obj/${namespace}"
- outfile="${build}/obj/${namespace}/${output.lib.name}"
+ objdir="${gluegen.lib.dir}"
+ outfile="${gluegen.lib.dir}/${output.lib.name}"
optimize="${c.compiler.optimise}"
debug="${c.compiler.debug}"
multithreaded="true"
@@ -385,6 +385,11 @@
<antcall target="c.rename.lib.mingw" inheritRefs="true" />
<antcall target="c.rename.lib.macosx" inheritRefs="true" />
+
+ <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true">
+ <param name="libdir" value="${gluegen.lib.dir}"/>
+ </antcall>
+
<antcall target="c.manifest" inheritRefs="true" />
<!-- Create Java Web Start jar file from built file -->
<jar destfile="${build}/gluegen-rt-natives-${os.and.arch}.jar">
@@ -572,7 +577,7 @@
</delete>
</target>
- <target name="test" depends="init, junit.run">
+ <target name="test" depends="init, gluegen.cpptasks.detect.os, junit.run">
<mkdir dir="${build}/test/build/classes"/>
<mkdir dir="${build}/test/results"/>
@@ -583,7 +588,8 @@
</javac>
<junit forkmode="once" showoutput="true" fork="true">
- <jvmarg value="-Djava.library.path=${build}/test/build/natives"/>
+ <env key="${system.env.library.path}" path="${gluegen.lib.dir}${path.separator}${build}/test/build/natives"/>
+ <jvmarg value="-Djava.library.path=${gluegen.lib.dir}${path.separator}${build}/test/build/natives"/>
<jvmarg value="-Drootrel.build=${rootrel.build}"/>
<jvmarg value="-Dos.arch=${os.arch}"/>
<jvmarg value="-Dgluegen.user.compiler.file=${gluegen.user.compiler.file}"/>