diff options
author | Sven Gothel <[email protected]> | 2010-04-08 02:22:12 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2010-04-08 02:22:12 +0200 |
commit | 7cc4bb2a8bcc4c16b6a12826abbd874bf38f9dc1 (patch) | |
tree | eb932553d0f9b36dbe6d703356502bf352cc6eca /make | |
parent | 82ac66ba1e7494b0a76a2063f0d56d3b785c6c31 (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')
-rw-r--r-- | make/build-junit.xml | 103 | ||||
-rwxr-xr-x | make/build.xml | 22 | ||||
-rwxr-xr-x | make/gluegen-cpptasks-base.xml | 100 | ||||
-rwxr-xr-x | make/gluegen-cpptasks.xml | 3 | ||||
-rwxr-xr-x | make/gluegen-properties.xml | 20 | ||||
-rwxr-xr-x | make/gluegen.properties | 46 | ||||
-rw-r--r-- | make/lib/CppTasksGCCNamespaceHack.jar-mbien-129e783741d91e9ee5cd7da5d5c962c32ec96b0b (renamed from make/lib/CppTasksGCCNamespaceHack.jar) | bin | 7810 -> 7810 bytes | |||
-rw-r--r-- | make/lib/cpptasks-1.0b5-darwin-patch.diff | 39 | ||||
-rw-r--r-- | make/lib/cpptasks-1.0b5.zip | bin | 0 -> 2221439 bytes | |||
-rw-r--r-- | make/lib/cpptasks-patch-orig-c91f003551542c2aab62dd8ef89a7894c7e50689.tar.gz (renamed from make/lib/cpptasks-patch.tar.gz) | bin | 7743 -> 7743 bytes | |||
-rw-r--r-- | make/lib/cpptasks.jar | bin | 363963 -> 364113 bytes | |||
-rw-r--r-- | make/lib/cpptasks.jar-mbien-129e783741d91e9ee5cd7da5d5c962c32ec96b0b | bin | 0 -> 363963 bytes | |||
-rwxr-xr-x | make/lib/cpptasks.jar-orig-c91f003551542c2aab62dd8ef89a7894c7e50689 | bin | 0 -> 345356 bytes | |||
-rw-r--r-- | make/make.gluegen.all.macosx.sh | 2 | ||||
-rw-r--r-- | make/make.gluegen.all.win32.bat | 17 |
15 files changed, 264 insertions, 88 deletions
diff --git a/make/build-junit.xml b/make/build-junit.xml index f1f3b6f..2da5997 100644 --- a/make/build-junit.xml +++ b/make/build-junit.xml @@ -121,10 +121,8 @@ <property name="linker.cfg.id" value="${linker.cfg.id.base}" /> </target> - <target name="rename.mingw.dll" if="isMingW"> - <move file="${src}" tofile="${dest}" /> - </target> - + <!-- 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 --> <target name="rename.dylib" if="isOSX"> <move file="${src}" tofile="${dest}" /> </target> @@ -172,33 +170,30 @@ <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_t.lib}/lib@{output.lib.name}.dylib" /> - <param name="dest" value="${build_t.lib}/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_t.lib}/lib@{output.lib.name}.so" /> - <param name="dest" value="${build_t.lib}/@{output.lib.name}.dll" /> - </antcall> </sequential> </macrodef> - <target name="junit.compile" depends="init, java.generate, java.build, c.build"/> + <target name="junit.compile" depends="init, java.generate, java.build, native.build"/> + + <target name="junit.run" depends="init,gluegen.cpptasks.detect.os"> + <!-- Use absolute path --> + <property name="gluegen.lib.abs" location="${gluegen.lib}" /> + <property name="build_t.lib.abs" location="${build_t.lib}" /> + - <target name="junit.run" depends="init"> <!-- Perform the junit tests--> <mkdir dir="${results}"/> <junit forkmode="once" showoutput="true" fork="true"> - <jvmarg value="-Djava.library.path=${gluegen.lib}:${build_t.lib}"/> + <env key="${system.env.library.path}" path="${gluegen.lib.abs}${path.separator}${build_t.lib.abs}"/> + <jvmarg value="-Djava.library.path=${gluegen.lib.abs}${path.separator}${build_t.lib.abs}"/> <jvmarg value="-Drootrel.build=${rootrel.build}"/> - <!--jvmarg value="-Dgluegen.debug.NativeLibrary=true"/--> - <!--jvmarg value="-Dgluegen.debug.ProcAddressHelper=true"/--> + <!-- + <jvmarg value="-Dgluegen.debug.NativeLibrary=true"/> + <jvmarg value="-Dgluegen.debug.ProcAddressHelper=true"/> + <jvmarg value="-verbose:jni"/> + <jvmarg value="-client"/> + <jvmarg value="-d32"/> + --> <formatter usefile="false" type="plain"/> <formatter usefile="true" type="xml"/> <classpath refid="junit.run.classpath"/> @@ -221,7 +216,12 @@ <target name="java.generate" depends="junit.test1.java.generate"/> - <target name="c.build" depends="c.configure, junit.test1.c.build" unless="build.javaonly" /> + <target name="native.build" depends="c.configure, junit.test1.c.build" unless="build.javaonly"> + <antcall target="gluegen.cpptasks.striplibs" inheritRefs="true"> + <param name="libdir" value="${build_t.lib}"/> + </antcall> + </target> + <!-- @@ -266,30 +266,71 @@ </gluegen> </target> - <target name="junit.test1.c.build" depends="junit.test1p1.c.build, junit.test1p2.c.build" unless="build.javaonly" /> + <target name="junit.test1.c.build" depends="junit.test1i.c.build, junit.test1p1.c.build, junit.test1p2.c.build" unless="build.javaonly" /> + + <!-- this is the test1 implementation --> + <target name="junit.test1i.c.build"> + <patternset id="junit.test1i.c.src.files"> + <include name="${test.junit.rootrel}/generation/test1.c"/> + </patternset> + + <!-- Windows hacks ro make a proper DLL --> + <linker id="linker.test1.dll.cfg.id" extends="${linker.cfg.id}"> + <linkerarg value="-Wl,-soname=test1.dll" if="isMingW"/> + <linkerarg value="-Wl,--output=test1.dll" if="isMingW"/> + </linker> + <c.build c.compiler.src.files="junit.test1i.c.src.files" + output.lib.name="test1" + compiler.cfg.id="${compiler.cfg.id}" + linker.cfg.id="linker.test1.dll.cfg.id"/> + </target> + + <!-- this is a fixed binding to the test1 implementation --> <target name="junit.test1p1.c.build"> + <linker id="linker.test1.fixed.cfg.id" extends="${linker.cfg.id}"> + <linkerarg value="-Wl,-soname=BindingTest1p1.dll" if="isMingW"/> + <linkerarg value="-Wl,--output=BindingTest1p1.dll" if="isMingW"/> + <syslibset dir="${build_t.lib}" libs="test1"/> + </linker> + <patternset id="junit.test1p1.c.src.files"> - <include name="${test.junit.rootrel}/generation/test1.c"/> <include name="${build_t.gen.rootrel}/native/BindingTest1p1Impl_JNI.c"/> </patternset> <c.build c.compiler.src.files="junit.test1p1.c.src.files" - output.lib.name="test1p1" + output.lib.name="BindingTest1p1" compiler.cfg.id="${compiler.cfg.id}" - linker.cfg.id="${linker.cfg.id}"/> + linker.cfg.id="linker.test1.fixed.cfg.id"/> + + <antcall target="rename.dylib" inheritRefs="true"> + <param name="src" value="${build_t.lib}/libBindingTest1p1.dylib" /> + <param name="dest" value="${build_t.lib}/libBindingTest1p1.jnilib" /> + </antcall> + </target> + <!-- this is a dynamic lookup binding to the test1 implementation --> <target name="junit.test1p2.c.build"> + <linker id="linker.test1.runtime.cfg.id" extends="${linker.cfg.id}"> + <linkerarg value="-Wl,-soname=BindingTest1p2.dll" if="isMingW"/> + <linkerarg value="-Wl,--output=BindingTest1p2.dll" if="isMingW"/> + </linker> + <patternset id="junit.test1p2.c.src.files"> - <include name="${test.junit.rootrel}/generation/test1.c"/> <include name="${build_t.gen.rootrel}/native/BindingTest1p2Impl_JNI.c"/> </patternset> <c.build c.compiler.src.files="junit.test1p2.c.src.files" - output.lib.name="test1p2" + output.lib.name="BindingTest1p2" compiler.cfg.id="${compiler.cfg.id}" - linker.cfg.id="${linker.cfg.id}"/> + linker.cfg.id="linker.test1.runtime.cfg.id"/> + + <antcall target="rename.dylib" inheritRefs="true"> + <param name="src" value="${build_t.lib}/libBindingTest1p2.dylib" /> + <param name="dest" value="${build_t.lib}/libBindingTest1p2.jnilib" /> + </antcall> + </target> <!-- 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}"/> diff --git a/make/gluegen-cpptasks-base.xml b/make/gluegen-cpptasks-base.xml index 9eedcd1..5375306 100755 --- a/make/gluegen-cpptasks-base.xml +++ b/make/gluegen-cpptasks-base.xml @@ -24,7 +24,6 @@ - isLinuxX86 - isOSX - isOSXPPC - - isOSXUniversal (if macosxfat=true) - isSolaris - isSolaris32Bit - isSolarisAMD64 @@ -116,21 +115,37 @@ --> <project name="GlueGen-cpptasks-base" basedir="."> - <!-- Detect OS and compiler configuration --> - <target name="gluegen.cpptasks.detect.os.1" depends="gluegen.properties.load.user" unless="gluegen.cpptasks.detected.os"> - <condition property="isOSX"> - <and> - <os family="mac"/> - <os family="unix"/> - </and> - </condition> + <target name="gluegen.cpptasks.initialize" depends="gluegen.properties.load.user"> + <!-- NOTE: the value of the debug attribute will not be overridden if already set externally --> + <property name="c.compiler.debug" value="false" /> + + <condition property="c.strip.libraries"><isfalse value="${c.compiler.debug}"/></condition> + + <!-- NOTE: the values of the macos<arch> attributes will not be overridden if already set externally --> + <property name="macosppc" value="false" /> + <property name="macosx32" value="true" /> + <property name="macosx64" value="true" /> + <!-- Need a way to be able to disable the macosx64 property specification in a build.xml --> <condition property="use.macosppc"> <istrue value="${macosppc}" /> </condition> + <condition property="use.macosx32"> + <istrue value="${macosx32}" /> + </condition> <condition property="use.macosx64"> <istrue value="${macosx64}" /> </condition> + </target> + + <!-- Detect OS and compiler configuration --> + <target name="gluegen.cpptasks.detect.os.1" depends="gluegen.cpptasks.initialize" unless="gluegen.cpptasks.detected.os"> + <condition property="isOSX"> + <and> + <os family="mac"/> + <os family="unix"/> + </and> + </condition> <condition property="isUnix"> <and> <os family="unix" /> @@ -265,6 +280,7 @@ <echo message="LinuxX86=${isLinuxX86}" /> <echo message="OS X=${isOSX}" /> <echo message="OS X PPC=${use.macosppc}" /> + <echo message="OS X x32=${use.macosx32}" /> <echo message="OS X x64=${use.macosx64}" /> <echo message="Solaris=${isSolaris}" /> <echo message="Solaris32Bit=${isSolaris32Bit}" /> @@ -347,6 +363,26 @@ <target name="gluegen.cpptasks.detect.os" depends="gluegen.properties.load.user,gluegen.cpptasks.detect.os.1,gluegen.cpptasks.detect.os.2"> <property name="gluegen.cpptasks.detected.os" value="true" /> <property name="gluegen.cpptasks.detected.os.2" value="true" /> + + <!-- Set the OS search library environment variable --> + <condition property="system.env.library.path" + value="DYLD_LIBRARY_PATH"> + <isset property="isOSX"/> + </condition> + <condition property="system.env.library.path" + value="LD_LIBRARY_PATH"> + <isset property="isUnix"/> + </condition> + <condition property="system.env.library.path" + value="PATH"> + <isset property="isWindows"/> + </condition> + + <!-- NOTE: the value of the c.strip.tool and c.strip.args attribute will not be overridden if already set externally --> + <property name="c.strip.tool" value="strip" /> + <condition property="c.strip.args" value="-S -x"><isset property="isOSX"/></condition> + <property name="c.strip.args" value="" /> + </target> <!-- Detect compiler setup, in particular on Windows; separated @@ -424,9 +460,6 @@ <echo message="VC9=${isVC9}" /> <echo message="MingW=${isMingW}" /> - <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally --> - <property name="c.compiler.debug" value="false" /> - <condition property="isVC7Debug"> <and> <istrue value="${isVC7}" /> @@ -473,12 +506,14 @@ <compilerarg value="-m64"/> </compiler> - <compiler id="compiler.cfg.linux64.mingw64" classname="net.sf.antcontrib.cpptasks.gcc.Gcc64CCompiler"> + <!--compiler id="compiler.cfg.linux64.mingw64" classname="net.sf.antcontrib.cpptasks.gcc.Gcc64CCompiler"--> + <compiler id="compiler.cfg.linux64.mingw64" classname="net.sf.antcontrib.cpptasks.gcc.GccCCompiler"> <compilerarg value="-fPIC"/> <compilerarg value="-m64"/> </compiler> - <compiler id="compiler.cfg.linux64.mingw32" classname="net.sf.antcontrib.cpptasks.gcc.Gcc32CCompiler"> + <!--compiler id="compiler.cfg.linux64.mingw32" classname="net.sf.antcontrib.cpptasks.gcc.Gcc32CCompiler"--> + <compiler id="compiler.cfg.linux64.mingw32" classname="net.sf.antcontrib.cpptasks.gcc.GccCCompiler"> <compilerarg value="-m32"/> </compiler> @@ -561,8 +596,8 @@ <!-- Note: Apple doesn't seem to provide ppc binaries on Snow Leopard --> <compilerarg value="-arch" if="use.macosppc"/> <compilerarg value="ppc" if="use.macosppc"/> - <compilerarg value="-arch" /> - <compilerarg value="i386" /> + <compilerarg value="-arch" if="use.macosx32"/> + <compilerarg value="i386" if="use.macosx32"/> <compilerarg value="-arch" if="use.macosx64"/> <compilerarg value="x86_64" if="use.macosx64"/> <!-- Note: Apple doesn't seem to provide ppc64 binaries on Leopard --> @@ -611,13 +646,15 @@ <linkerarg value="-m64"/> </linker> - <linker id="linker.cfg.linux64.mingw64" classname="net.sf.antcontrib.cpptasks.gcc.Gcc64Linker"> + <!--linker id="linker.cfg.linux64.mingw64" classname="net.sf.antcontrib.cpptasks.gcc.Gcc64Linker"--> + <linker id="linker.cfg.linux64.mingw64" classname="net.sf.antcontrib.cpptasks.gcc.GccLinker"> <linkerarg value="-m64"/> </linker> - <linker id="linker.cfg.linux64.mingw32" classname="net.sf.antcontrib.cpptasks.gcc.Gcc32Linker"> + <!--linker id="linker.cfg.linux64.mingw32" classname="net.sf.antcontrib.cpptasks.gcc.Gcc32Linker"--> + <linker id="linker.cfg.linux64.mingw32" classname="net.sf.antcontrib.cpptasks.gcc.GccLinker"> <linkerarg value="-m32"/> - <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names --> + <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names, ie no __stdcall @nn --> </linker> <!-- <linker id="linker.cfg.solaris" name="suncc"> @@ -633,7 +670,7 @@ --> <linker id="linker.cfg.win32.mingw" name="gcc" incremental="false"> <linkerarg value="-m32"/> - <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names --> + <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names, ie no __stdcall @nn --> </linker> <linker id="linker.cfg.win32.msvc" name="msvc" incremental="false"> @@ -647,10 +684,11 @@ </linker> <linker id="linker.cfg.macosx" name="gcc"> + <!-- Note: Apple doesn't seem to provide ppc binaries on Snow Leopard --> <linkerarg value="-arch" if="use.macosppc"/> <linkerarg value="ppc" if="use.macosppc"/> - <linkerarg value="-arch" /> - <linkerarg value="i386" /> + <linkerarg value="-arch" if="use.macosx32"/> + <linkerarg value="i386" if="use.macosx32"/> <linkerarg value="-arch" if="use.macosx64"/> <linkerarg value="x86_64" if="use.macosx64"/> <!-- Note: Apple doesn't seem to provide ppc64 binaries on Leopard --> @@ -783,6 +821,24 @@ <!-- ================================================================== --> <!-- + - Helper strip.libraries for stripping off debug information + --> + <target name="gluegen.cpptasks.striplibs" depends="gluegen.cpptasks.initialize" if="c.strip.libraries"> + <echo message="Strip symbols from libs in ${libdir}" /> + <apply dir="${libdir}" executable="${c.strip.tool}" parallel="false" + failonerror="true"> + <arg line="${c.strip.args}"/> + <fileset dir="${libdir}"> + <include name="**/*.so"/> <!-- unix --> + <include name="**/*.dll"/> <!-- windows --> + <include name="**/*.dylib"/> <!-- macosx --> + <include name="**/*.jnilib"/> <!-- macosx --> + </fileset> + </apply> + </target> + + <!-- ================================================================== --> + <!-- - Helper macrodef for installing manifest in generated DLLs, needed for VC8 and later --> <macrodef name="msvc.manifest"> diff --git a/make/gluegen-cpptasks.xml b/make/gluegen-cpptasks.xml index f569ea7..f4278d4 100755 --- a/make/gluegen-cpptasks.xml +++ b/make/gluegen-cpptasks.xml @@ -23,7 +23,8 @@ <import file="gluegen-properties.xml" /> <!-- import cpptasks --> - <typedef resource="net/sf/antcontrib/cpptasks/antlib.xml" classpath="${gluegen.root}/make/lib/cpptasks.jar;${gluegen.root}/make/lib/CppTasksGCCNamespaceHack.jar"/> + <!--typedef resource="net/sf/antcontrib/cpptasks/antlib.xml" classpath="${gluegen.root}/make/lib/cpptasks.jar;${gluegen.root}/make/lib/CppTasksGCCNamespaceHack.jar"/--> + <typedef resource="net/sf/antcontrib/cpptasks/antlib.xml" classpath="${gluegen.root}/make/lib/cpptasks.jar"/> <condition property="gluegen-cpptasks.file" value="${gluegen.root}/make/gluegen-cpptasks-base.xml"> diff --git a/make/gluegen-properties.xml b/make/gluegen-properties.xml index 19483bb..2afc533 100755 --- a/make/gluegen-properties.xml +++ b/make/gluegen-properties.xml @@ -11,14 +11,22 @@ - c.compiler.debug: - set to "true" if debug version of the compiled - C code is desired. + - + - MacOsX libraries can be universal / fat binaries. + - The following switches enables/disables a target platform. + - If non of them is enabled, the default + - compiler target platform is used for a thin binary. + - - macosppc: - - set to "true" if ppc universal / fat binaries are desired - - on Mac OS X. Requires support for cross-compilation from the - - underlying C compiler. Note: Unsupported on Snow Leopard! + - set to "true" for ppc support, + - default is 'false' + - Note: Unsupported on Snow Leopard! + - macosx32: + - set to "false" to disable x86 32-bit support, + - default is 'true' - macosx64: - - set to "true" if 64-bit universal / fat binaries are desired - - on Mac OS X. Requires support for cross-compilation from the - - underlying C compiler. + - set to "false" to disable x86 64-bit support, + - default is 'true' - --> <project name="GlueGen-properties" basedir="."> diff --git a/make/gluegen.properties b/make/gluegen.properties index 8d667b4..2f319bc 100755 --- a/make/gluegen.properties +++ b/make/gluegen.properties @@ -13,13 +13,13 @@ # including the name of the jar # # Windows -antlr.jar=C:/Users/kbr/ANTLR/antlr-2.7.2/antlr.jar -# Linux -# antlr.jar=/home/kbr/antlr-2.7.2/antlr.jar +antlr.jar=C:/JOGL/lib/antlr-2.7.2.jar +# Linux / Solaris / .. +# antlr.jar=/home/sven/projects/JOGL/lib/antlr-2.7.7.jar # Mac OS X -# antlr.jar=/Users/kbr/antlr-2.7.2/antlr.jar -# Solaris -# antlr.jar=/export/kbr/ANTLR/antlr-2.7.2/antlr.jar +# antlr.jar=/JOGL/lib/antlr-2.7.2.jar + +junit.jar=/home/sven/projects/JOGL/lib/junit-4.5.jar # If you are building the native code for the GlueGen run-time library # on Windows and have the Microsoft Visual C++ compilers installed, @@ -28,19 +28,27 @@ antlr.jar=C:/Users/kbr/ANTLR/antlr-2.7.2/antlr.jar # "mingw". # win32.c.compiler=vc6 -# If you are building on a Mac OS X system supporting -# cross-compilation and want to generate fat binaries containing -# x86_64 code, uncomment the property below -# macosx64=true - -# If you are building on a Mac OS X system supporting -# cross-compilation and want to generate fat binaries containing -# ppc code, uncomment the property below. -# Note: Unsupported on Snow Leopard! +# MacOsX libraries can be universal / fat binaries. +# The following switches enables/disables a target platform. +# If non of them is enabled, the default +# compiler target platform is used for a thin binary. +# +# macosppc: +# set to "true" for ppc support, +# default is 'false' +# Note: Unsupported on Snow Leopard! # macosppc=true +# +# macosx32: +# set to "false" to disable x86 32-bit support, +# default is 'true' +# macosx32=false +# +# macosx64: +# set to "false" to disable x86 64-bit support, +# default is 'true' +# macosx64=false +# -# isX11 is selected for a platform where: !isWindows && !isOSX. -# To avoid X11 related builds you need to set 'noX11' to true. -# noX11=true -#user.compiler.import="${user.home}/gluegen.compiler.xml" +#gluegen-cpptasks.file="${user.home}/gluegen-cpptasks-linux-32bit.xml" diff --git a/make/lib/CppTasksGCCNamespaceHack.jar b/make/lib/CppTasksGCCNamespaceHack.jar-mbien-129e783741d91e9ee5cd7da5d5c962c32ec96b0b Binary files differindex c31779e..c31779e 100644 --- a/make/lib/CppTasksGCCNamespaceHack.jar +++ b/make/lib/CppTasksGCCNamespaceHack.jar-mbien-129e783741d91e9ee5cd7da5d5c962c32ec96b0b diff --git a/make/lib/cpptasks-1.0b5-darwin-patch.diff b/make/lib/cpptasks-1.0b5-darwin-patch.diff new file mode 100644 index 0000000..1544fcc --- /dev/null +++ b/make/lib/cpptasks-1.0b5-darwin-patch.diff @@ -0,0 +1,39 @@ +diff -Nur cpptasks-1.0b5/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java cpptasks-1.0b5-patched-01/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java +--- cpptasks-1.0b5/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java 2008-04-02 19:26:44.000000000 +0200 ++++ cpptasks-1.0b5-patched-01/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java 2010-04-07 22:16:03.330794801 +0200 +@@ -17,6 +17,8 @@ + package net.sf.antcontrib.cpptasks.gcc; + import java.io.File; + import java.util.Vector; ++import java.util.HashSet; ++import java.util.Arrays; + + import net.sf.antcontrib.cpptasks.CUtil; + import net.sf.antcontrib.cpptasks.compiler.LinkType; +@@ -36,6 +38,7 @@ + "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s", + "-static", "-shared", "-symbolic", "-Xlinker", + "--export-all-symbols", "-static-libgcc",}; ++ private static String[] darwinLinkerOptions = new String[]{"-arch", }; + private static final GccLinker dllLinker = new GccLinker("gcc", objFiles, + discardFiles, "lib", ".so", false, new GccLinker("gcc", objFiles, + discardFiles, "lib", ".so", true, null)); +@@ -97,12 +100,13 @@ + break; + default : + boolean known = false; +- for (int i = 0; i < linkerOptions.length; i++) { +- if (linkerOptions[i].equals(arg)) { +- known = true; +- break; +- } ++ HashSet allLinkerOptions = new HashSet(); ++ allLinkerOptions.addAll(Arrays.asList(linkerOptions)); ++ if (isDarwin()) { ++ allLinkerOptions.addAll(Arrays.asList(darwinLinkerOptions)); + } ++ known = allLinkerOptions.contains(arg); ++ + if (!known) { + buf.setLength(0); + buf.append("-Wl,"); diff --git a/make/lib/cpptasks-1.0b5.zip b/make/lib/cpptasks-1.0b5.zip Binary files differnew file mode 100644 index 0000000..21f8c07 --- /dev/null +++ b/make/lib/cpptasks-1.0b5.zip diff --git a/make/lib/cpptasks-patch.tar.gz b/make/lib/cpptasks-patch-orig-c91f003551542c2aab62dd8ef89a7894c7e50689.tar.gz Binary files differindex 22f1cde..22f1cde 100644 --- a/make/lib/cpptasks-patch.tar.gz +++ b/make/lib/cpptasks-patch-orig-c91f003551542c2aab62dd8ef89a7894c7e50689.tar.gz diff --git a/make/lib/cpptasks.jar b/make/lib/cpptasks.jar Binary files differindex dec6c13..f1bf393 100644 --- a/make/lib/cpptasks.jar +++ b/make/lib/cpptasks.jar diff --git a/make/lib/cpptasks.jar-mbien-129e783741d91e9ee5cd7da5d5c962c32ec96b0b b/make/lib/cpptasks.jar-mbien-129e783741d91e9ee5cd7da5d5c962c32ec96b0b Binary files differnew file mode 100644 index 0000000..dec6c13 --- /dev/null +++ b/make/lib/cpptasks.jar-mbien-129e783741d91e9ee5cd7da5d5c962c32ec96b0b diff --git a/make/lib/cpptasks.jar-orig-c91f003551542c2aab62dd8ef89a7894c7e50689 b/make/lib/cpptasks.jar-orig-c91f003551542c2aab62dd8ef89a7894c7e50689 Binary files differnew file mode 100755 index 0000000..005691c --- /dev/null +++ b/make/lib/cpptasks.jar-orig-c91f003551542c2aab62dd8ef89a7894c7e50689 diff --git a/make/make.gluegen.all.macosx.sh b/make/make.gluegen.all.macosx.sh index 3086733..1078cec 100644 --- a/make/make.gluegen.all.macosx.sh +++ b/make/make.gluegen.all.macosx.sh @@ -8,4 +8,4 @@ fi ant -v \ -Drootrel.build=build-macosx \ - $* 2>&1 | tee make.gluegen.all.macosx-x86.log + $* 2>&1 | tee make.gluegen.all.macosx.log diff --git a/make/make.gluegen.all.win32.bat b/make/make.gluegen.all.win32.bat new file mode 100644 index 0000000..2c97baf --- /dev/null +++ b/make/make.gluegen.all.win32.bat @@ -0,0 +1,17 @@ +set THISDIR="C:\JOGL"
+
+set J2RE_HOME=c:\jre1.6.0_19
+set JAVA_HOME=c:\jdk1.6.0_19
+set ANT_PATH=C:\apache-ant-1.7.1
+
+set PATH=%JAVA_HOME%\bin;%ANT_PATH%\bin;c:\mingw\bin;%PATH%
+
+set LIB_GEN=%THISDIR%\lib
+set CLASSPATH=.;%THISDIR%\build-win32\classes
+REM -Dc.compiler.debug=true
+REM -DuseOpenMAX=true
+REM -DuseKD=true
+REM -Djogl.cg=1 -D-Dwindows.cg.lib=C:\Cg-2.2
+
+ant -Drootrel.build=build-win32 %1 %2 %3 %4 %5 %6 %7 %8 %9 > make.gluegen.all.win32.log 2>&1
+
|