aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/common/os
Commit message (Collapse)AuthorAgeFilesLines
* Platform: Add 'getCurrentSleepJitter()'Sven Gothel2011-11-081-1/+26
|
* Platform: Add OS_VERSION_NUMBER / getOSVersionNumber()Sven Gothel2011-10-261-1/+10
|
* MachineDescriptor Static: Add Mac-OsX 32bit gcc4 special case with ↵Sven Gothel2011-10-241-1/+7
| | | | sizeof(long double) == 8
* Don't default to USE_TEMP_JAR_CACHE:=true on AndroidSven Gothel2011-09-281-2/+3
|
* NativeLib: Fix OSX lib name detection; JarUtil extract: at copy entry, mkdir ↵Sven Gothel2011-09-241-2/+2
| | | | of parent if !exist
* Add boolean system property 'jogamp.gluegen.UseTempJarCache', defaults to ↵Sven Gothel2011-09-231-4/+18
| | | | 'true' - allowing to disable usage of TempJarCache.
* Moved JVMUtil to private package; Invoke JVMUtil.initSingleton() from ↵Sven Gothel2011-09-231-0/+2
| | | | Platform static init after loading native library.
* TempJarCache/JNILibLoaderBase: Validate the to be loader JarFile's ↵Sven Gothel2011-09-231-14/+11
| | | | Certificates if caller has any. Add Convenient JNILibLoaderBase.addNativeJarLibs(..) method.
* gluegen-rt lib loading: Moved to Platform static init incl. ↵Sven Gothel2011-09-222-22/+40
| | | | | | | | | | | | | | | | TempJarCache.bootstrapNativeLib(..) usage - Moving to Platform solves former interdependencies between GlueGenJNILibLoader/Platform - TempJarCache is being setup w/ bootstraping the gluegen-rt native lib jar file. Interesting here is that when using Oracle's JRE w/ Applets/JNLP the current dbg output is: gluegen-rt: url-root http://risa/deployment/test/jau02s/jar/ gluegen-rt: nativeJarURL jar:http://risa/deployment/test/jau02s/jar/gluegen-rt-natives-linux-amd64.jar!/ gluegen-rt: nativeJar /home/sven/.java/deployment/cache/6.0/49/3c6d1e31-2c90f42e IE the JRE implementation already deduces the online link to the Applet/JNLP cache. This makes the implementation much simpler, ie. same for application and Applets/JNLP. Have to verify w/ other Java impl. sure - and add same logic for the JOGL part.
* Unify JNI Library Loading into JNILibLoaderBase and use it for the ↵Sven Gothel2011-09-212-4/+4
| | | | | | | | gluegen-rt native lib as well - removed redundance - move proper JNLPAppletLauncher custom libloader code into JNILibLoaderBase - prepares for new JAR temp cache ..
* Remove redundant: NativeLibrary.ensureNativeLibLoaded()Sven Gothel2011-09-201-14/+3
|
* Enhancement/GenericStyle:Sven Gothel2011-09-192-28/+162
| | | | | | | | | | | | | | | | | | - NativeLibrary: - add isValidNativeLibraryName(..) - generic style - Platform - add getOSAndArch(), getOSAndArch(..) - IOUtil - add getClassFileName(..) - add getBasename(..) - add getDirname(..) - added doc - ReflectionUtil - generic style
* DynamicLibraryBundle*: Use generics for better spec / Drop Iterator in favor ↵Sven Gothel2011-08-312-34/+26
| | | | for int/size() for less temp objects
* DynamicLibraryBundleInfo: Allow impl. to select tool/system lookupSven Gothel2011-08-092-8/+34
|
* aapt build check fix ; DynamicLibraryBundle.isGlueLibComplete() == true if ↵Sven Gothel2011-08-051-3/+16
| | | | | | | | | | | | | 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
* Hide DynamicLinker impl.; Remove public AndroidPackageUtil ; ↵Sven Gothel2011-08-035-205/+5
| | | | | | | GluegenVersionActivity uses ApplicationContext Hide DynamicLinker impl.: - com.jogamp.common.os.*DynamicLinkerImpl -> jogamp.common.os
* Platform getArch() -> getArchName() (analogue to getOSName())Sven Gothel2011-07-281-1/+1
|
* Fix Android apk activity; Add apk VersionName; Add jar manifest to apkSven Gothel2011-07-281-2/+0
| | | | | | | | | | | | | | | | - build: - exclude android packages if !isAndroid - aapt: - Use individual AndroidManifest xml files - optional: incl. our JAR manifest file to support detailed version info - use def. GluegenVersionActivity - APK VersionName: Retrieve and show - package/extension names: - gluegen.jar/apk: com.jogamp.gluegen - gluegen-rt.jar/apk: com.jogamp.common
* Cross JUnit Tests - All Passed: Android+Linux armv7Sven Gothel2011-07-251-1/+1
| | | | | | | | | | | - junit.cross targets: - use scripting to save time, ie write all target commands to script, xfer, exec - junit: delete result folder just before junit.run - Test BuildEnvironment.java: Simplify path config via properties (for android) - AndroidVersion: No annoying exception dump if Build$VERSION* is not found (not android) - launch scripts: use absolute TARGET_ROOT path for dynamic linker env.
* Android integration / cross-test ; Enhance PlatformSven Gothel2011-07-242-6/+128
| | | | | | | | | | | - android minor build fix - started dex'ing (gluegen-rt.apk, more to come for full junit tests) - android remote dalvikvm launch works (crosstest-java-android-armv7-rel.sh) - android detection, incl version (reflection) - Platform: - Add JAVA_VM_NAME and JAVA_VM_RUNIME - OSType maybe ANDROID, where the OS name (String) is Linux ! (ok ?)
* Fix regression (commit f733203dfbd034a6b1aa3eb2cd616437c982c435): Init of ↵Sven Gothel2011-07-221-2/+3
| | | | DEBUG and DEBUG_LOOKUP was removed, re-added.
* GlueGen proper size / alignment of primitive and compound types usage [2/2] ↵Sven Gothel2011-07-212-151/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | - Fin MachineDesction == MD MD.StaticConfig: - enum for all supported static configs (ID -> MD) - verified at runtime: test runtime queried-MD versus static-MD, hard fail if not compatible (size/alignment) SizeThunk primitive sizes: - Add notion of fixed native size (eg. int64_t) and otherwise (eg. long) java struct 'wrappers' code generation: - single class using size/offset arrays of all MachineDescription configurations - at runtime the array idx is queried in static block - type aligment for not fixed-native-size types (SizeThunk, undef long/int) via StructAccessor junit test: - add float test - fix native code - add java (create, write) -> native (verify) test works (tested) on: linux 32/64 and windows 32/64
* Cleanup: Platform CPU enum, MachineDescription,Sven Gothel2011-07-202-43/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Platform: - enum CPUFamily is part of CPUType - DALVIK -> ANDROID - ARM: ARM + ARMv[567] MachineDescription - self contained - static size/alignment Config (enum) for unix32, unix64, win32, win64 and armeabi - add 'long double' - Removed MachineDescription32Bit, MachineDescription64Bit - createStatic(..) uses OS/CPU to fetch best match if not at runtime FIXES: JavaEmitter's struct-emit: Proper 32/64 struct sizes TODO: StructAccessor's mapping to <Type>Buffer w/ index os sizeof(<Type>) doesn't work, since offset may not be multiple of sizeof(<Type>)! i.e. typedef struct { int8_t bits1; // +1 - 0 // +3 (p32) int32_t id; // +4 - 4 int8_t bits2; // +1 - 8 // +3 (p32) - int64_t long0; // +8 - 12 so "longBuffer.get(<type-sized index>)" is invalid, but "byteBuffer.getLong(<byte index>)" must be done. The actual impl. doesn't matter, hence dropping the other nio type mappings is good.
* GlueGen: Alignment Cleanup ..Sven Gothel2011-07-171-24/+6
| | | | | | | | | | - SizeThunk - rename: compute -> computeSize - add: computeAlignment - merge types: char -> int8, short -> int16 - 'int' and 'long' may differ -
* GlueGen proper size / alignment of primitive and compound types usage [1/2] ↵Sven Gothel2011-07-173-140/+403
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Preparation. Currently GlueGen fails for type long (size) and some alignments (see package.html). - The size and alignment values shall be queried at runtime. - Compound alignment needs to follow the described natural alignment (also @runtime). - - Build - add Linux Arm7 (EABI) - junit test - added compound/struct tests, pointing out the shortcomings of current impl. - package.html - Added alignment documentation - remove intptr.cfg - add GluGen types int8_t, int16_t, uint8_t, uint16_t - move MachineDescription* into runtime - Platform - has runtime MachineDescription - moved size, .. to MachineDescription - use enums for OSType, CPUArch and CPUType defined by os.name/os.arch, triggering exception if os/arch is not supported. This avoids Java String comparison and conscious os/arch detection. - MachineDescription: - compile time instances MachineDescription32Bits, MachineDescription64Bits - runtime queried instance MachineDescriptionRuntime - correct size, alignment, page size, ..
* Merged Locator -> IOUtil; int Platform.getPageSize(); Added unit test for ↵Sven Gothel2011-06-081-3/+15
| | | | IOUtil and Platform's page size
* Platform: Add getPageSize()Sven Gothel2011-06-071-0/+7
|
* DoubleCheckLocking: Added 'ok' comment - volatile varSven Gothel2011-02-261-1/+1
|
* RecursiveLock: static field -> final; NativeLibrary: cleanupSven Gothel2011-02-261-6/+5
|
* debug: mention thread nameSven Gothel2010-12-171-1/+2
|
* Fix refactor bug: os -> os_lc in strings, reverted.Sven Gothel2010-12-151-7/+7
|
* Debug: out -> err streamSven Gothel2010-12-132-20/+20
|
* clean: importSven Gothel2010-12-131-1/+0
|
* Version info debugging works now even without native libs.Michael Bien2010-11-181-9/+28
| | | | | | - Platform is now useable without gluegen-rt libs in library path. - JogampVersion: fixed equals, added Impl url to manifest. - VersionUtil: getManifest should be now more relieable and passed all manual tests, e.g java jar lib.jar without specified classpath.
* Fix API docSven Gothel2010-11-152-9/+13
|
* Enhance API doc .. package description etcSven Gothel2010-11-091-0/+9
|
* Changed license (-> BSD) and content (minimum tokens) of dynamic-linker.hSven Gothel2010-11-081-10/+4
|
* Moved locking to: com.jogamp.common.util.locks ; Better abstraction ; Misc ↵Sven Gothel2010-10-141-1/+47
| | | | changes
* LICENSE.txt changes:Sven Gothel2010-09-143-75/+78
| | | | | | | | | | | | | - Added JogAmp Community and common denominator: New BSD 3-clause license - Added note to make/lib binary file (source and license) Added source and license text for external binaries used in build process (make/lib folder). Changed 'Sven Gothel' and 'Michael Bien' New BSD 3-clause license to 'JogAmp Community' Simplified BSD 2-clause license.
* Final fix for Java SE Platform query, as negotiated with Michael :)Sven Gothel2010-07-081-18/+7
|
* Fix: Add missing imports; Add warmup phase to primitive hashmap testSven Gothel2010-07-021-0/+2
|
* Fix regression of missing JavaSE check in case of security manager; TypoSven Gothel2010-06-261-6/+24
|
* currently no need for a (public) MiscUtils.java.Michael Bien2010-06-101-8/+6
|
* refactored Platform. Simplified initializer.Michael Bien2010-06-101-34/+42
|
* Adding DynamicLibraryBundle utility to bundle Tool and JNI native library ↵Sven Gothel2010-06-104-3/+407
| | | | | | | | | | | | | | loading and lookup Add JNILibLoaderBase.loadLibrary(String libname, boolean ignoreError); DynamicLibraryBundle provides Tool and JNI native library loading and lookup New classes: com.jogamp.common.os.DynamicLibraryBundle com.jogamp.common.os.DynamicLibraryBundleInfo com.jogamp.common.util.MiscUtils.java Change: DEBUG/VERBOSE properties 'gluegen' -> 'jogamp'
* Minor additions to nio/Buffers, util/IntIntHashMap and os/NativeLibrarySven Gothel2010-06-055-0/+25
| | | | | | | | | | | | Buffers add 'float[] getFloatArray(double[])' conversion, ready to replace all JOGL InternalBufferUtil's. NativeLibrary/DynamicLinker add global lookup method allowing Unices and OSX to lookup a symbol globally. However, this is not recommended, due to the lookup costs. Windows is not supported here. Primitive type HashMap's (IntIntHashMap): Added putAll()
* Fix privileged access (applet)Sven Gothel2010-04-281-9/+16
|
* renamed method.Michael Bien2010-04-241-2/+1
|
* http://jogamp.org/bugzilla/show_bug.cgi?id=393Sven Gothel2010-04-081-1/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. +++
* introduced com.jogamp.common.{nio,os} packages and moved some classes.Michael Bien2010-03-317-0/+861