summaryrefslogtreecommitdiffstats
path: root/make/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Add com.jogamp.common.util.PrimitiveStack (FloatStack and IntegerStack), a ↵Sven Gothel2012-12-301-1/+3
| | | | | | | | | | | | 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.
* Android build scripts: Fix env. name ANDROID_SDK_HOME -> ANDROID_HOMESven Gothel2012-12-274-24/+24
| | | | | | | | Intuitively I assumed ANDROID_SDK_HOME to be pointing to the SDK root dir, however this is not true: Semantics by Android tools are: ANDROID_SDK_HOME - Users ~/.android folder ANDROID_HOME - SDK root folder
* Fix VersionNumber: Non digits cut off pattern was '\D.*' and cut off digits ↵Sven Gothel2012-10-241-1/+2
| | | | | | | | | | | | | | | | | | | in case leading non digits appear. '\D.*' matches a leading non-digit and then any character. First the string is tokenized by delim: "OpenGL ES GLSL ES 1.0.16" -> "OpenGL ES GLSL ES 1", "0", "16" Enhance pattern as follows and access collected group if matching: // group1: \D* == leading non digits, optional // group2: \d* == digits // group3: .* == any pending chars, optional final java.util.regex.Pattern nonDigitsCutOff = java.util.regex.Pattern.compile("(\\D*)(\\d*)(.*)"); Reorganized storage from atomic values to int[3] array, allowing simple pattern matching loop. Added unit test.
* Buffers: Add normalized put methods, i.e. incl. value range conversion; New ↵Sven Gothel2012-10-171-1/+2
| | | | util. ValueConv for primitive type value conversion
* SingletonInstanceServerSocket: serverSocket.setReuseAddress(true); // reuse ↵Sven Gothel2012-10-041-2/+1
| | | | same port w/ subsequent instance, i.e. overcome TO state when JVM crashed
* SingletonInstanceServerSocket: Add another (manual) unit tests for timeouts.Sven Gothel2012-09-211-5/+5
|
* SingletonInstanceServerSocket: Add kill @ JVM Shutdown _and_ if normal ↵Sven Gothel2012-09-211-1/+3
| | | | unlock fails ; Added unit tests.
* windows scripts: bump to 6u35Sven Gothel2012-09-074-8/+8
|
* Change/Lower ARM Requierements for GNU/Linux & Android-GNU/Linux ARM: ↵Sven Gothel2012-08-167-15/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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" />
* Use armv6 optimization for armhf to stay compatible with the new Raspberry ↵Xerxes Rånby2012-08-072-1/+19
| | | | Pi Raspbian distribution.
* Implement Bug #598 - JOGL ALL JAR File Change incl. it's Native Jar URL ↵Sven Gothel2012-06-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Platform static initialization interdependencies w/ GlueGen native ↵Sven Gothel2012-06-181-3/+3
| | | | | | | | | | | | library loading Some Platform field declarations and it's static initialization has been delegated to it's new abstract super class PlatformPropsImpl to solve static initialization interdependencies w/ the GlueGen native library loading and it's derived information {@link #getMachineDescription()}, {@link #is32Bit()}, ..<br> This mechanism is preferred in this case to avoid synchronization and locking and allow better performance accessing the mentioned fields/methods.
* Fix Bug 587: Use alternative storage location if platform's temp directory ↵Sven Gothel2012-06-161-3/+4
| | | | | | | | | | | | | | | | | | | | | is mounted w/ noexec ; IOUtil API change! Test whether executable files can be launched in temporary folder by trying to run an empty executable file - if !( WINDOWS | OPENKODE ) TempDir: 1) ${java.io.tmpdir}/jogamp 2) $XDG_CACHE_HOME/jogamp - if !( ANDROID | MACOS | WINDOWS | OPENKODE ) 3) $HOME/.jogamp $XDG_CACHE_HOME defaults to $HOME/.cache - TempFileCache: ${TempDir}/file_cache -> ${java.io.tmpdir}/jogamp/file_cache - LauncherTempFileCache: ${TempDir}/file_cache -> ${java.io.tmpdir}/jogamp/file_cache +++ AndroidUtils*.getTempRoot(): Remove unused AccessControlContext param
* Fix Bug 583 (2): Remove Android compile-time dependencies and exclude ↵Sven Gothel2012-06-151-1/+1
| | | | | | | | | | | | | | 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.
* Linux ARMel eabi: Use armv6t, soft-float - low profile to target more ↵Sven Gothel2012-04-182-1/+3
| | | | devices. Our ARMhf build is high profile.
* Solaris manual build setup - check default install location for 64bit jvmSven Gothel2012-04-181-1/+8
|
* Fix IOUtil: Handle all '../' and './' cases by reducing the path.Sven Gothel2012-04-021-2/+2
|
* Test: Add dump of environment varsSven Gothel2012-03-281-2/+2
|
* Add support for armhf/gnueabihf resulting in new 'os.and.arch' := [ ↵Sven Gothel2012-03-282-3/+50
| | | | | | | | | | | | | | | | 'android-armv7hf' and 'linux-armv7hf' ] - Platform gets new ABIType [ GENERIC, ARMEL, ARMHF ] - Platform impl. needs to guess ABIType in case of ARM, since no Java system property ('os.arch' ..) reflects the new EABI. I consider this a bug, since this will also hinder JNLP to work. The latter also uses 'os.arch' sys property to determine the nativelib resource! (See Platform.guessABITypeImpl(..) for details how we guess the type.) - Adding symbolic links to ubuntu's gnueabihf cross tool chain - Adding armhf crossbuild script
* Add *.apk files to the 7z archive [for deployment]Sven Gothel2012-03-271-0/+1
|
* Fix 'NIOOnly' impl ; Use 'final' in gen. Java stubs ;Sven Gothel2012-03-221-3/+3
| | | | | | | | | | | | | | | | | | - Fix 'NIOOnly' impl - Use 'final' in gen. Java stubs ; - No null check for Buffers.isDirect(arrayArg) [required] - Clarify Buffer arg API doc (NIOOnly or NIODirectOnly) - cleaned up loop / branch (CMethodBindingEmitter) - remove unsued vars/code - Tests: - covers normal/NIOOnly/NIODirectOnly - covers passing null for array and NIO
* Added adb install filesSven Gothel2012-03-182-0/+7
|
* Add 'asset' URLConnection; IOUtil uses URLConnection / incr. effeciency; ↵Sven Gothel2012-03-173-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 remote test script: panda02 is my default test machineSven Gothel2012-03-101-2/+2
|
* gluegen-cpptasks-android-armv7: Add 'gluegen.cpptasks.detect.os.custom' ↵Sven Gothel2012-03-071-15/+12
| | | | | | | | target which makes it self-contained build script and jenkins-node startup-script solely use env-vars. Remove env. TARGET_ARCH, which was same as TARGET_TRIPPLE.
* Don't build and use gluegen.apk (compile time only) ; Don't test classloader ↵Sven Gothel2012-03-071-0/+1
| | | | | | -> JarURL on Android All [remaining] tests passed on Android!
* android build/test fixes and refinementSven Gothel2012-03-071-4/+10
| | | | | | | | | | | | | | | | | | | | | remote test fix: - run targetcommand w/ explicit root via 'su' - rsync: more excludes, only use '-rt' - explicit chmod 644 on results - adb commands include naming of remote machine: -s ${env.TARGET_IP}:${env.TARGET_ADB_PORT} GlueGen-cpptasks-android-armv7: - use unique project name (warning) - gcc + -fpic -D__unix__ - ld + -fpic -nostdlib -Bdynamic -Wl,-dynamic-linker,/system/bin/linker -Wl,-z,nocopyreloc explicit add 'dl' to list of libs
* make.gluegen.all.linux-armv7-cross.sh: Use common TARGET_PLATFORM_ROOTSven Gothel2012-03-061-2/+3
|
* android crosscompile script, use android-ndk-r7b but favor generic ↵Sven Gothel2012-03-061-6/+18
| | | | android-ndk (sym-link)
* Merge branch 'pulled'Sven Gothel2012-03-061-63/+12
|\
| * Changes to make gluegen build with NDK r7Edwin Vane2012-02-281-63/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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.
* | Fix local armel pathSven Gothel2012-03-032-2/+4
|/
* Introduce environment-var/property to disable unit tests (per node)Sven Gothel2012-02-241-0/+1
| | | | JUNIT_DISABLED -> junit.is.disabled
* Add NODE_LABEL in scripts/make.gluegen.all.linux-armv7-cross.shSven Gothel2012-02-241-0/+2
|
* Exposing custom gluegen-cpptask.file for crosscompilation presets, adding ↵Sven Gothel2012-02-241-7/+4
| | | | | | gluegen-cpptasks-linux-armv7.xml Env: GLUEGEN_CPPTASKS_FILE -> property: gluegen-cpptasks.file
* Set 'jvmDataModel.arg' property in crosscompile build scripts, where ↵Sven Gothel2012-02-233-7/+2
| | | | 'gluegen.cpptasks.detected.os' is set.
* build scriptSven Gothel2012-02-221-1/+1
|
* Fix linux-armv7 crosscompilationSven Gothel2012-02-191-2/+8
|
* Add verification script for compiled-in Java versionSven Gothel2012-01-221-0/+25
|
* Fix Bug 516 (Determine Java Version); Minor fixes (jogamp/common/** ..)Sven Gothel2012-01-223-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Further fix for bug 537 - Catch IllegalArgumentException in ↵Sven Gothel2012-01-051-2/+3
| | | | Platform.loadGlueGenRTImpl(), Reuse JarUtil (same methodology) to determine whether we run from JarURL
* win make scripts - bump to 6u30Sven Gothel2011-12-214-8/+8
|
* junit.run: Add 32bit tests for OSX (fat binaries)v2.0-rc5Sven Gothel2011-12-182-25/+37
|
* JavaEmitter: Fix primitive StructEmitter for non-fixed-sized (size ↵Sven Gothel2011-12-181-2/+2
| | | | | | | | | conversion, ie. 32/64 bits) An opaque type still needs to be converted to the right size (32/64 bit). In case of a conversion, respect the pointer type. This fixes bug 536 .
* scrips for solSven Gothel2011-12-182-0/+40
|
* RecursiveThreadGroupLock: New recursive lock interface and impl, allowing ↵Sven Gothel2011-12-111-1/+2
| | | | | | | | | | | | 'spawn off' process to become the lock owner. To avoid complicated synchronization via synchronized, wait and notify between one thread and a 'spawn' off thread which temporarly requires the hold lock, RecursiveThreadGroupLock allows to add and remove other threads to become owners of the lock as if they were the original holder. This simplifies some rare locking use cases, eg. in JOGL's GLProfile initialization sequence where a SharedResourceRunner thread is taking over initialization of shared resources.
* Fix Test1p2ProcAddressEmitter (static var); Add TestTracerSven Gothel2011-12-021-2/+2
|
* TempJarCache/JNILibLoaderBase: Identify the Jar files by their URL within ↵Sven Gothel2011-12-011-2/+2
| | | | our lifecycle. JarFile's hash almost always differs.
* Bump to 6u29Sven Gothel2011-12-014-8/+8
|
* Add 'TestJarsInJar.jar' test JAR file for upcoming JarUtil tests (Jar in Jar).Sven Gothel2011-11-291-4/+8
|