summaryrefslogtreecommitdiffstats
path: root/make/build.xml
Commit message (Collapse)AuthorAgeFilesLines
* Jar Manifest: Seal all packages ; Each jar is 'standalone' as required by ↵Sven Gothel2014-01-251-2/+0
| | | | 'sealed packages': gluegen-rt.jar < gluegen-rt-android.jar < gluegen.jar
* Fix Bug 865: Safari >= 6.1 [OSX]: May employ xattr on 'com.apple.quarantine' ↵Sven Gothel2013-10-231-4/+1
| | | | | | | | | on 'PluginProcess.app' - IOUtil.getTempDir(..): Don't test executable caps on OSX for java_io_tmpdir - JarUtil.extract(..): Issue native fixNativeLibAttribs(..) on OSX for native library files, i.e. remove xattr 'com.apple.quarantine'
* artifact.properties: Add gluegen.build.version:=jogamp.versionSven Gothel2013-10-041-1/+2
|
* Fix build issue on OSX w/ Java6. target.rt.jar is not enough for ↵Sven Gothel2013-09-211-3/+9
| | | | compile-time classes (host), since com.sun.tools.doclets.Taglet is required.
* Fix Bug 835: Use target.[sourcelevel,targetlevel,rt.jar] for all javac tasks.Sven Gothel2013-09-191-3/+3
| | | | | | | Before we bumped java language version to 1.6, i.e. target == 1.5, we required to compile some parts w/ the host level (1.6). This is no more required.
* Platform: Add accurate currentTimeMillis() and currentTimeMicros() native ↵Sven Gothel2013-08-151-2/+3
| | | | methods, based on 'gettimeofday(..)'
* Javadoc: Use JogAmp Stylesheet / Colors ..Sven Gothel2013-07-171-1/+5
|
* Bug 758: Fix scripts and ant build files to work w/ Java7 (default now) ↵Sven Gothel2013-06-201-1/+18
| | | | producing Java6 bytecode ; Apply JAR Manifest tags: Sealed, Permissions and Codebase
* Complete 5d211c6fa6a0452cc4569712e436184e34504a88: Remove ↵Sven Gothel2013-06-171-52/+0
| | | | generate.nativelibrary.sources and dynlink* gluegen files due to manual impl.
* Fix DynamicLinker Impl: Add Bionic specialization using Bionic's non POSIX ↵Sven Gothel2013-06-161-4/+2
| | | | | | | | | | | | | | | values; Using same pattern for Mac OS X. Add Bionic specialization using Bionic's non POSIX values - derive from UnixDynamicLinkerImpl - specify own flag and mode values - use UnixDynamicLinkerImpl native code Using same pattern for Mac OS X - derive from UnixDynamicLinkerImpl - specify own flag and mode values - use UnixDynamicLinkerImpl native code - drop MacOSXDynamicLinkerImpl native code
* GlueGen (Compile Time): Add 'CStruct' Annotation Processor (APT) to ↵Sven Gothel2013-06-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'gluegen' C Structs on-the-fly (2-pass actually). Convenient annotation processing (APT) hooked to 'javac' (1.6) via gluegen.jar META-INF service provider 'javax.annotation.processing.Processor' -> 'com.jogamp.gluegen.structgen.CStructAnnotationProcessor'. Am implicit APT / JAVAC would be possible, however - to have a proper process the unit test utilizes an explicit 2 pass run: <!-- Annotation Processor Only - First --> <javac destdir="${build_t.java}"> <classpath refid="junit.compile.classpath"/> <compilerarg value="-proc:only"/> <compilerarg value="-J-Djogamp.gluegen.structgen.debug"/> <compilerarg value="-J-Djogamp.gluegen.structgen.output=${build_t.gen}/classes"/> <src path="${test.base.dir}/com/jogamp/gluegen/test/junit/structgen"/> </javac> <!-- Javac Only - Second --> <javac destdir="${build_t.java}"> <classpath refid="junit.compile.classpath"/> <compilerarg value="-proc:none"/> <src path="${test.base.dir}"/> <src path="${build_t.gen}" /> </javac> Original code from Michael Bien's 'superglue' git://github.com/mbien/superglue.git, finally merged to GlueGen (as once intended). Note: The APT javac pass requires to use 'gluegen.jar' instead of 'gluegen-rt.jar' ! The 2-pass process also alows using the runtime gluegen-rt.jar and hence ensures clean namespace check at compilation.
* build.xml: fix intendationsSven Gothel2013-04-211-5/+5
|
* Align integer version property name .. jogamp_int_version -> jogamp.version.intSven Gothel2013-03-281-2/+2
|
* Move *_base_version to jogamp.version.base: Unifying base version across all ↵Sven Gothel2013-03-281-8/+7
| | | | core modules
* Bug 588: Adding jogamp.version property, i.e. 2.0.2-rc-<TIMESTAMP> used for ↵Sven Gothel2013-03-281-15/+12
| | | | | | | | | | | | Manifest ; Common jogamp_int_version for Android. Until 2.0.2 gets released, the version string is 2.0.2-rc-<TIMESTAMP> and used in the Manifest for IMPLEMENTATION_VERSION. The previous build version name of IMPLEMENTATION_VERSION goes into the new tag IMPLEMENTATION_BUILD. Further more, we use a common jogamp_int_version for Android, to make life more easy.
* Fix Long*HashMap impl. of IntIntHashMap: Better 64bit hash value, using new ↵Sven Gothel2013-03-121-0/+6
| | | | | | HashUtil. Introduce markup: /*keyHash*/(.*)/*keyHash*/ allowing Long*HashMap to inject hash function for 64bit value.
* Promote AWTEDTExecutor to public package com.jogamp.common.util.awt ; ↵Sven Gothel2013-02-281-1/+3
| | | | Exclude java.part.awt in android gluegen-rt.
* Bug 681: Add Basic ELF Header + ARM EABI Section Parsing, allowing to ↵Sven Gothel2013-02-081-6/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | distinguish ARM soft-float/hard-float (part-1) https://jogamp.org/bugzilla/show_bug.cgi?id=681 + * References: + * <ul> + * <li>http://linux.die.net/man/5/elf</li> + * <li>http://www.sco.com/developers/gabi/latest/contents.html</li> + * <li>http://infocenter.arm.com/ + * <ul> + * <li>ARM IHI 0044E, current through ABI release 2.09</li> + * <li>ARM IHI 0045D, current through ABI release 2.09</li> + * </ul></li> Added self contained jogamp.common.os.elf package w/ entry point class ElfHeader to read a RandomAccessFile and parse it as an ELF file. ELF Parsing completness: - Header: OK - SectionHeader: OK - Section Type SHT_ARM_ATTRIBUTES: OK - Will be read into SectionArmAttributes - Used to distinguisgh soft/hard VFP float Tested manually on: - Linux intel 32bit / 64bit, arm soft-float and hard-float
* Add com.jogamp.common.util.PrimitiveStack (FloatStack and IntegerStack), a ↵Sven Gothel2012-12-301-4/+53
| | | | | | | | | | | | simple primitive stack implementation. Currently only FILO put/get operations are implemented using either primitive arrays as I/O itself or <Type>Buffer. Unit tests are included.. Note: Only FloatStack is implemented in a manual, where others (IntegerStack) is derived (generated) from it. Same goes w/ unit tests.
* Fix regression of 55b4552aef7882c358d545d020d6f12c958ed8ed, which impacts ↵Sven Gothel2012-10-041-1/+1
| | | | non native unix.
* Fix Bug 624 - Compile and generate android JAR files ↵Sven Gothel2012-10-041-5/+8
| | | | (gluegen-rt-android.jar) if android SDK JAR files are available.
* Android: Bump version.code: 914011Sven Gothel2012-08-231-1/+1
|
* Change/Lower ARM Requierements for GNU/Linux & Android-GNU/Linux ARM: ↵Sven Gothel2012-08-161-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ARMv7hf -> ARMv6hf, ARMv7-soft -> ARMv5te/ARMV6 (soft) platform build config files: lib/gluegen-cpptasks-linux-armv7.xml -> lib/gluegen-cpptasks-linux-armv6.xml lib/gluegen-cpptasks-linux-armv7hf.xml -> lib/gluegen-cpptasks-linux-armv6hf.xml properties: isLinuxARMv7 -> isLinuxARMv6 isLinuxARMv7Armel -> isLinuxARMv6Armel isLinuxARMv7Armhf -> isLinuxARMv6Armhf isAndroidARMv7 -> isAndroidARMv6 isAndroidARMv7Armel -> isAndroidARMv6Armel isAndroidARMv7Armhf -> isAndroidARMv6Armhf targets: compiler.cfg.linux.armv7 -> compiler.cfg.linux.armv6 linker.cfg.linux.armv7 -> linker.cfg.linux.armv6 compiler.cfg.linux.armv6: <compilerarg value="-fpic" /> <compilerarg value="-march=armv5te" /> <compilerarg value="-marm" /> <compilerarg value="-mfloat-abi=softfp" /> <linkerarg value="-fpic" /> <linkerarg value="-march=armv5te" /> <linkerarg value="-marm" /> <linkerarg value="-mfloat-abi=softfp" /> <linkerarg value="-nostdlib" /> <linkerarg value="-Bdynamic" /> compiler.cfg.linux.armv6hf: <compilerarg value="-fpic" /> <compilerarg value="-march=armv6" /> <compilerarg value="-marm" /> <compilerarg value="-mfloat-abi=hard" /> <linkerarg value="-fpic" /> <linkerarg value="-march=armv6" /> <linkerarg value="-marm" /> <linkerarg value="-mfloat-abi=hard" /> <linkerarg value="-nostdlib" /> <linkerarg value="-Bdynamic" /> gluegen-cpptasks-android-armv6.xml: <compilerarg value="-fpic" /> <compilerarg value="-march=armv6" /> <compilerarg value="-mfloat-abi=softfp" /> <compilerarg value="-marm" /> <linkerarg value="-march=armv6" /> <linkerarg value="-mfloat-abi=softfp" /> <linkerarg value="-marm" /> <linkerarg value="-nostdlib" /> <linkerarg value="-Bdynamic" />
* Implement Bug #598 - JOGL ALL JAR File Change incl. it's Native Jar URL ↵Sven Gothel2012-06-261-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Derivation +++ JNILibLoaderBase.addNativeJarLibs(..): Add API doc JNILibLoaderBase: "addNativeJarLibs(Class<?> classFromJavaJar, String allNativeJarBaseName, String[] atomicNativeJarBaseNames)" -> "addNativeJarLibs(Class<?>[] classesFromJavaJars, String singleJarMarker, String[] stripBasenameSuffixes)" Derive the 'all' (1st choice) native JAR URL solely on the given class's JAR URL. Examples: JOCL: // only: jocl.jar -> jocl-natives-'os.and.arch'.jar addNativeJarLibs(new Class<?>[] { JOCLJNILibLoader.class }, null, null ); JOGL: final ClassLoader cl = GLProfile.class.getClassLoader(); // either: [jogl-all.jar, jogl-all-noawt.jar, jogl-all-mobile.jar] -> jogl-all-natives-<os.and.arch>.jar // or: nativewindow-core.jar -> nativewindow-natives-<os.and.arch>.jar, // jogl-core.jar -> jogl-natives-<os.and.arch>.jar, // (newt-core.jar -> newt-natives-<os.and.arch>.jar)? (if available) final String newtFactoryClassName = "com.jogamp.newt.NewtFactory"; final Class<?>[] classesFromJavaJars = new Class<?>[] { NWJNILibLoader.class, GLProfile.class, null }; if( ReflectionUtil.isClassAvailable(newtFactoryClassName, cl) ) { classesFromJavaJars[2] = ReflectionUtil.getClass(newtFactoryClassName, false, cl); } JNILibLoaderBase.addNativeJarLibs(classesFromJavaJars, "-all", new String[] { "-noawt", "-mobile", "-core" } ); Efficiency / Performance: - Reduced JAR URL lookup calls JarUtil.getJarURL(..) - JNILibLoaderBase, Platform, JarUtil - Attempt loading Jar files (native, class, ..) only once - TempJarCache Code Cleanup (IOUtil, JarUtil, : - IOException if not found - IllegalArgumentException if null argument +++ jogamp.android-launcher.jar -> jogamp-android-launcher.jar +++
* Fix Bug 583 (2): Remove Android compile-time dependencies and exclude ↵Sven Gothel2012-06-151-24/+63
| | | | | | | | | | | | | | Android specific classes for non Android platforms Ensure same Java JAR content regardless of build target (fix). Separate Android compilation results to gluegen-rt-android.jar, avoiding generating different content of gluegen-rt.jar w/ non android builds. aapt.signed: @{android.abi} argument is 'generic' by default. Adding ${android.abi} to APK target name (gluegen-rt-android-armeabi-v7a.apk) if not generic.
* Fix Bug 583: Remove Android compile-time dependencies and exclude Android ↵Sven Gothel2012-06-041-20/+44
| | | | | | | | | | | | | specific classes for non Android platforms. Android specifics are delegated via class AndroidUtils, which uses reflection to call AndroidUtilsImpl if platform is Android. Android code is confined to the packages: jogamp.common.os.android.* jogamp.android.launcher.* and only included when compiled for the Android platform.
* Android: Bump version.code: 914010Sven Gothel2012-05-091-1/+1
|
* Android: Bump version.code to 0914009Sven Gothel2012-05-091-1/+1
|
* Android: aapt no debug, gluegen: proper version.code and launcher manifestSven Gothel2012-05-041-4/+4
|
* Android: 'android.jar' -> android-015.jar', 'android-min.jar' (9); ↵Sven Gothel2012-05-041-3/+3
| | | | version.code: 4
* Android version.code: 3Sven Gothel2012-05-041-1/+1
|
* Fix Android JogAmp Launcher: AssetsSven Gothel2012-05-041-1/+1
|
* Bump Android version.code: 2Sven Gothel2012-05-041-1/+1
|
* APK version code = 1Sven Gothel2012-05-031-1/+1
|
* Reduce APK version name to 30 charsSven Gothel2012-05-031-1/+1
|
* 7z Archive: Add all APK's - Was missing Android Launcher.Sven Gothel2012-03-281-1/+1
|
* Add *.apk files to the 7z archive [for deployment]Sven Gothel2012-03-271-0/+1
|
* Platform: Add AWT_AVAILABLE 'knowledge'; RunnableExecutor: Add AWTEDT impl. ↵Sven Gothel2012-03-261-0/+1
| | | | / API doc cleanup; DynamicLibraryBundle: Add getDefaultRunnableExecutor()
* Add 'asset' URLConnection; IOUtil uses URLConnection / incr. effeciency; ↵Sven Gothel2012-03-171-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Android ClassLoaderUtil cleanup; - Add 'asset' URLConnection - Please read API doc 'PiggybackURLConnection' and 'AssetURLConnection' - Solves generic resource handling where platform locations may differ, ie ClassLoader lookup on Android in the 'assets/' subfolder. - New Android 'AssetDexClassLoader' uses 'assets/' folder for findResource(..) - aapt.signed (our APK ant task) - uses 'assets/' folder - adds the 'assetsdir' attribute allowing to copy other assets into the APK - IOUtil uses URLConnection / incr. effeciency - using URLConnection on all getResource(..) since URL is connected anyways for validation and URLConnection can be used by caller right away - String getRelativeOf(URL, String) -> URL getRelativeOf(URL, String) - preserves scheme, authority, etc - simple parentOf handling, more efficient - reusing new 'asset' protocol impl. - Android ClassLoaderUtil cleanup; - Use createClassLoader(..) impl for build-in static jogamp and user APKs, which removes code redundancy Tests: New code path, especially 'assets' are covered by new unit tests, no regressions on Linux.
* Android: New ActivityLauncher (jogamp.android-launcher.apk)Sven Gothel2012-03-141-18/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ActivityLauncher provides delegating Activities, allowing the user to: - daisy chain custom APK classes and native libraries to the classpath - name one custom activity which gets delegated to, the downstream activity Overview: [User:a1] -- (usr-data) --> [Launcher] -> [User:a2] + using [other packages..] [User APK] - The user provided APK [JogAmp APK] - JogAmp APKs [User:a1] - The initial user activity, which starts the [Launcher]. Providing data to [Launcher]: [User:a2], [User APK] Resides in [User APK] [User:a2] - The actual downstream 'real' activity, spoiled w/ full fledged ClassLoader having access to all packages as requested, ie. [User APK], .. Resides in [User APK] [Launcher] - The launcher activity. Gets called by [User:a1]. Creates a new ClassLoader, daisy chainging all requested APKs. Instantiates [User:a2] w/ new ClassLoader. Delegates all calls to [User:a2]. Resides in [JogAmp APK].
* Don't build and use gluegen.apk (compile time only) ; Don't test classloader ↵Sven Gothel2012-03-071-7/+7
| | | | | | -> JarURL on Android All [remaining] tests passed on Android!
* build: Move c.compiler.debug, c.compiler.use-debug and c.compiler.optimise ↵Sven Gothel2012-03-071-7/+0
| | | | | | | from build.xml -> gluegen-cpptasks-base.xml - unifies definition - echo values
* Changes to make gluegen build with NDK r7Edwin Vane2012-02-281-2/+6
| | | | | | | | | | | | | | | | | | | | - A bug in cpptasks was getting in the way of a working build with NDK r7. A local patch to cpptasks fixed the bug. - The patch is added as make/lib/cpptasks_gcclinker.patch and applies cleanly to cpptasts @ revision 177. - The result of building cpptasks r177 with this patch is part of the commit as well. - Cleaned up and simplified the android cross-compile script in make/scripts. - Cleaned up arguments passed to gcc for compiling and linking to look more like the command lines used for building NDK samples. - Some differences are necessary as cpptasks won't let us specify any binary other than 'gcc' for building. See gluegen-cpptasks-android-armv7.xml for comments on the matter. - Thinking forward to x86 support, generalized jogamp-androidtasks.xml to install the gluegen shared library in a subdirectory of image/lib named for the targetted ABI for packaging with aapt. This file is no-longer ARM-specific.
* javac - setup encoding to UTF-8Sven Gothel2012-01-231-0/+3
|
* Fix Bug 516 (Determine Java Version); Minor fixes (jogamp/common/** ..)Sven Gothel2012-01-221-24/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current minimum requirements are: - Java 1.6 (Level 6.0) - Android SDK API Level 9 (Version 2.3 Gingerbread) Official production builds are performed w/ Java 1.6. - Java 1.6 (Level 6.0) - Android SDK API Level 9 (Version 2.3 Gingerbread) Android supports Java language level 6.0. Nevertheless, it cannot be guaranteed whether the Android API supports all classes and methods of Java 1.6. It is required for JogAmp developers to validate Android compatibility by an Android crosscompilation build. Current GlueGen code utilizes some minor Java 1.6 features which could be replaced, however it's not desired at this point since we have no mode hard Java 1.5 constraints. Notes: - On OS X 10.5.8, only the 64bit version of Java6 is available and hence the only supported one on Leopard. +++ Pushing determination of host (compiletime) and target (runtime) Java version to 'jogamp-env.xml'. jogamp-env.xml uses: env: SOURCE_LEVEL -> propery: target.sourcelevel def.: ${ant.java.version} >=1.6 (!) env: TARGET_LEVEL -> propery: target.targetlevel def.: ${ant.java.version} >=1.6 (!) env: TARGET_RT_JAR -> propery: target.rt.jar def.: ${java.home}/lib/rt.jar Either all above values are set, or none at all (default), otherwise a build error is being thrown. Further more we have the compiletime properties: host.sourcelevel def.: ${ant.java.version} >= 1.6 (!) host.targetlevel def.: ${ant.java.version} >= 1.6 (!) host.rt.jar def.: ${java.home}/lib/rt.jar +++ - 'javac.memorymax' defaults to 1024m now.
* Fix Bug 488: Enable others architectures under GNU/LinuxSylvestre Ledru2012-01-091-1/+49
|
* Moved JVMUtil to private package; Invoke JVMUtil.initSingleton() from ↵Sven Gothel2011-09-231-1/+1
| | | | Platform static init after loading native library.
* ant target base.compile w/o tampering artifacts.propertiesSven Gothel2011-09-141-7/+8
|
* aapt build check fix ; DynamicLibraryBundle.isGlueLibComplete() == true if ↵Sven Gothel2011-08-051-1/+11
| | | | | | | | | | | | | last entry is loaded aapt build check fix - exe aapt if source are newer than apk DynamicLibraryBundle.isGlueLibComplete() == true if last entry is loaded - fix long standing bug, where GlueLib was not complete if preload dependencies were missing. this even lead to JOGL specific handling of this case .. duh. - added debug info
* aapt.signed: add androidresources.path argument ; sdk >= 9 ; test ↵Sven Gothel2011-08-051-1/+3
| | | | uses-library com.jogamp.common