summaryrefslogtreecommitdiffstats
path: root/make
Commit message (Collapse)AuthorAgeFilesLines
* GlueGen: Add support for 'compound call-by-value', i.e. passing and ↵Sven Gothel2014-06-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | returning struct instance 'compound call-by-value' is not efficient. However, to allow mapping APIs utilizing passing small structs as arguments and return values - this feature has been added. +++ To return the struct value, native code needs to allocate a NIO ByteBuffer and copy the data. The stack return value can be dismissed afterwards and the NIO buffer is returned. We include this functionality for all generated [impl] classes, native method: 'static jobject JVMUtil_NewDirectByteBufferCopy(JNIEnv *env, void * source_address, jlong capacity)' (See: 'JavaEmitter.initClassAccessCode') Since this code requires knowledge of java classes and methods, for which a reference needs to be acquired, a static initialization method has been introduced for all generated [impl] classes: 'private static native boolean initializeImpl();' Per default the this method will be called in the new static initializer block of the class, which can be supressed via the configuration element: 'ManualStaticInit <class-name>' 'ManualStaticInit' can be used to issue the 'initializeImpl()' call in a custom static initializer written by the user. However, at the time 'initializeImpl()' gets called the JNI native library must have been loaded, of course! +++ - See tag: // FIXME: Compound call-by-value for code changes and validation of completeness Trigger for compond call-by-value in CMethodBindingEmitter is: !cArgType.isPointer() && javaArgType.isCompoundTypeWrapper() Trigger for compond call-by-value in JavaEmitter is: t.isCompound() +++ Further more we do tolerate 'javaType.isCPrimitivePointerType()', i.e. adding comments for offset/size and field entries, which are all NOP. This allows to utilize the remaining fields of the native structure. +++ Tests: Added call-by-value to test1.[ch] binding test!
* Minor edits: space, final qualifier; setenv-build-*: Add generic JDK locationSven Gothel2014-06-172-0/+25
|
* OSX Build: Default gcc.compat.compiler=xcode.clang ; Remove explicit ↵Sven Gothel2014-06-114-32/+11
| | | | xcode.clang property files
* Fix glibc-compat-symbols.h: Distinguish clang and gcc (Aligned w/ ↵Sven Gothel2014-06-101-1/+9
| | | | openal-soft commit adc3413dda197bbd6b879ff98e897b8fbc66cc39)
* Bump semver to 9ec2e5329780214d317b026f7c0b086972a94a5c - Using ↵Sven Gothel2014-05-143-3/+3
| | | | Dumper.dumpFullStats(..)
* Bump semver 174953022b62681653db1f57b087581e29313f5bSven Gothel2014-05-143-3/+4
|
* Bump semver.jar to new rebased c4930f9d23ae7515434942836f628f767411876c ↵Sven Gothel2014-05-133-2/+3
| | | | (0.9.25-SNAPSHOT)
* Bump semver.jar to 731db3566b4096ecf6a08a9d33991400e66c5021 (sgothel/jogamp ↵Sven Gothel2014-05-133-5/+6
| | | | branch): Using direct regexp for excludes
* Unit Test: Modularize Semantic Version Test / Fix 'excludes'Sven Gothel2014-05-132-4/+15
| | | | | | | Refactor base semjar unit test class into com.jogamp.junit.util.VersionSemanticsUtil, part of new gluegen-test-util.jar. The new gluegen-test-util.jar shall be used by all other modules to test versioning.
* Unit Test: Added Semantic Version Test (Current version agains v2.1.5)Sven Gothel2014-05-139-6/+540
| | | | | | | | | | | | | TestVersionSemantics adds testing of semantic versioning of 2.1.5 gluegen-rt.jar against the current version within a unit test. Currently we expect BACKWARD_COMPATIBLE_USER and need to toggle this to NON_BACKWARD_COMPATIBLE, if actually perfoming non compatible major or minor version changes. The latter is allowed right now, since we increment from 2.1 -> 2.2! - Added https://github.com/jeluard/semantic-versioning semver.jar (Apache License Version 2.0)
* Bug 923: Remove dependency of CStruct annotation processor _generation_ and ↵Sven Gothel2014-05-115-10/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | generated_class_user due to Java8 issues. Java8's annotation processor as embedded within javac does not allow referencing not-yet existing generated classes in a class source code which will produce these generated classes via the annotation process. Example: +++ import com.jogamp.gluegen.structgen.CStruct; public class Lala { @CStruct(name="RenderingConfig", header="TestStruct01.h") public RenderingConfig config; } +++ Above example illustrates that the type 'RenderingConfig' does not exist at time of processing the annotation. The type will be created via the annotation process itself. Even though we pass '-proc:only', i.e. skip java compilation, Java8's annotation processing via javac fails in such case. We see this as a bug within javac's annotation processing itself! +++ This workaround splits the annotation process and using the class as generated by the former. To allow this to work, CStruct receives a new field 'jname' allowing to enforce the java-name of the structure using a dummy field type like boolean. @CStruct(name="RenderingConfig", jname="RenderingConfig", header="TestStruct01.h") public boolean dummy; Further more CStruct can be annotated on the package, i.e. 'package-info.java', avoiding the dependency problem altogether. To support multiple header files and types, 'CStructs' has been introduced using an array of 'CStruct'. @CStructs({@CStruct(name="RenderingConfig", header="TestStruct01.h"), @CStruct(name="Pixel", header="TestStruct02.h")}) package com.jogamp.gluegen.test.junit.structgen; Tests: - Build w/ Java7 and Java8 - Validated 'major version 50' (Java 6) class files (OK)
* unit test: preserve hs_err_pid*.log files (move to results folder for archive)Sven Gothel2014-05-091-0/+3
|
* build/test: Add ant-junit4.jar to classpath; Add experimental gluegen-rt-alt ↵Sven Gothel2014-05-096-16/+90
| | | | recipe (inactive); Misc ..
* Bump to 2.2-rcSven Gothel2014-03-111-4/+4
|
* Bump to release 2.1.5 (Android: 0914019)Sven Gothel2014-03-101-3/+3
|
* Fix 7z for paths containing spaces on Windows.Wade Walker2014-03-011-1/+1
|
* Fix sed for paths containing spaces on Windows.Wade Walker2014-03-011-1/+1
|
* build-test.xml: Push 'java.generate' up from java.build to android.packageSven Gothel2014-02-211-3/+3
|
* Bug 980: Refine Bitstream API 'signed' and 'unsigned' semantics - ↵Sven Gothel2014-02-211-4/+4
| | | | readUInt32(..) must return long due to EOF
* Bitstream: Add static 'long toUint32Long(int)' and 'int toUint32Int(int)' ↵Sven Gothel2014-02-211-2/+2
| | | | conversion functions
* Bug 890: Adding versatile Bitstream implementationSven Gothel2014-02-201-3/+9
| | | | | | | | | | | | | | | | We already have several locations where bitstream operations are required and partially implemented (JPEG decoder, media parsing, ..) as well as endian related conversion (elf parser, ..). Create a versatile Bitstream class allowing: - Utilize I/O operations on I/O streams, buffers and arrays - Consider MSBfirst / LSBfirst mode - Linear bit R/W operations - Bulk R/W operations w/ endian related type conversion - Allow mark/reset and switching streams and input/output mode - Optimized operations Complete set of unit tests included, covering hopefully all cases.
* toolchain-linux [armhf/armsf]: Add symlinks to cc g++ c++Sven Gothel2014-02-156-0/+6
|
* Bump 'down' to 2.1.5Sven Gothel2014-02-151-2/+2
|
* Fix make.gluegen.all.android-armv6-cross.sh (SDIR was missing)Sven Gothel2014-02-151-0/+2
|
* Bump to 2.2.0 RCSven Gothel2014-02-051-4/+4
|
* Prepare 2.1.4v2.1.4Sven Gothel2014-01-301-3/+3
|
* build.xml .. fix doc (copy/paste)Sven Gothel2014-01-261-1/+1
|
* Add lst-jars.sh scriptSven Gothel2014-01-251-0/+6
|
* Jar Manifest: Seal all packages ; Each jar is 'standalone' as required by ↵Sven Gothel2014-01-254-2/+12
| | | | 'sealed packages': gluegen-rt.jar < gluegen-rt-android.jar < gluegen.jar
* Jar Manifest: Sealed Entries must follow generic headers - Otherwise ↵Sven Gothel2014-01-254-8/+12
| | | | subsequent entries are not recognized
* Bug 856 - Android: Support dual ABI (x86 i686 *and* ARMv7arm), i.e. pick ↵Sven Gothel2014-01-246-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'best' ABI - Use 'os.arch' as a prelim CPUType for MachineDescription - Always attempt to load a binary and parse it's elf header - Linux: self-exe - Android: gluegen-rt library - Other: java lib - Always use details (ABI) if ARM - Android: Check CPU_TYPE and CPU_TYPE2 // FIXME / HACK: // We use sCPUType for MachineDescriptionRuntime.getStatic() // until we have determined the final CPU_TYPE, etc. // MachineDescriptionRuntime gets notified via MachineDescriptionRuntime.notifyPropsInitialized() below. // // We could use Elf Ehdr's machine value to determine the bit-size // used for it's offset table! // However, 'os.arch' should be a good guess for this task. Tested manually on - Linux x86, x86_64, armhf (raspi) - Android intel and arm - Windows x86_64 - OSX x86_64
* Jar Manifest: Add empty line before EOF (otherwise last line is cut-off - ↵Sven Gothel2014-01-226-0/+11
| | | | duh), add 'Application-Library-Allowable-Codebase: *'
* Bug 945 - GlueGen's IOUtil does not consider file URI's authority when ↵Sven Gothel2014-01-224-5/+33
| | | | | | | | | | | | | | | | | | | | | | | converting to file-path or URI (Windows UNC / share host) Note: Authority for 'file-scheme' URI's is used on Windows to denote the host of the shared resource -> UNC Following methods of IOUtil didn't consider the authority for file-scheme URI: 'URL toURL(final URI uri)' 'String decodeURIToFilePath(final String uriPath)' 'String decodeURIIfFilePath(final URI uri)' Further more, the patterns 'patternSingleFS' and 'patternSingleBS' converted multiple '\' '/' to one replacement. However, we should not change the separator count and replace them one-by-one. TestIOUtilURIHandling: - Added shared-file-host 'filehost' test cases to file URIs and plain file path tests. - Passed on Unix and Windows. Added 'make/scripts/test-win32-smb_share.bat' - Testing actual windows share usage - Passed on Windows
* Bug 944 - Platform doesn't parse early-access java-version string properly ↵Sven Gothel2014-01-141-2/+2
| | | | | | | | | (JAVA_VERSION_UPDATE) Fix JAVA_VERSION_UPDATE for early release versions. Early access java versions are e.g. '1.7.0_60-ea' where releases simply are named: '1.7.0_60'.
* Bump to 2.1.4 RCv2.1.4_rc01Sven Gothel2013-12-181-1/+1
|
* IOUtil.toURL(..) Apply decodeFromURI(uri.getPath()) if file-scheme; Add ↵Sven Gothel2013-11-282-7/+8
| | | | | | | | | | | | | | | | | | | IOUtil.decodeURIToFilePath(..) for native usage. Refine comments, API doc. toURL(..): Apply space conversion, decodeFromURI(..), on file-scheme path, ensuring decoded space. ++ Add decodeURIToFilePath(String uriPath) and decodeURIToFilePath(URI uri) Both methods shall simplify decoding a file-URI for native platform usage. Tested in TestIOUtilURIHandling +++
* glibc-compat-symbols.h: Use GLIBC_2.0 for 32bit ; Use asm(..) instead of ↵Sven Gothel2013-11-171-8/+13
| | | | __asm__(..) to support clang ; Branch on OS predef-macro for GLIBC detection, allow __GNUC__ and __clang__ on __linux__
* Use 'gluegen-clang.properties' for generic clang and ↵Sven Gothel2013-11-176-5/+72
| | | | | | | | 'gluegen-xcode_clang.properties' for OSX xcode-clang ; Add GNU/Linux LLVM/clang build scripts Use 'gluegen-clang.properties' for generic clang and 'gluegen-xcode_clang.properties' for OSX xcode-clang. Add GNU/Linux LLVM/clang build scripts
* Add generic 'check-glibc.sh' script / rename old scriptSven Gothel2013-11-172-10/+36
|
* Bump (back) to 2.1.3 - devel (Postpone 2.2.0 track until important bugs and ↵Sven Gothel2013-11-061-2/+2
| | | | issues are fixed)
* Bump to 2.2.0 RC/Devel ..Sven Gothel2013-11-011-5/+4
|
* Release 2.1.2 (Android 0914017)v2.1.2Sven Gothel2013-11-011-1/+1
| | | | Note: We are not quite done yet - but preparing 2.1.2 build now.
* Bump 2.1.2 Release ..Sven Gothel2013-11-011-2/+2
|
* Bug 881 - Add 'Application-Name' in Jar's manifest to avoid Java6 NPEs ..Sven Gothel2013-11-016-0/+6
|
* Bump to 2.1.2-devel (Commit 55cc188f0f076a046d05a49c1c82bb90ba545117 missed ↵Sven Gothel2013-10-251-1/+1
| | | | to incr. sub-minor)
* Bug 871 - Add optional xcode.clang support for all modules: Fix 'isCLANG' ↵Sven Gothel2013-10-252-1/+6
| | | | detection ; echo 'gcc.compat.compiler'
* TempJarCache: Make 'initialization' query/flag thread safe, i.e. synchronize ↵Sven Gothel2013-10-241-3/+3
| | | | | | | if !isInit (dbl-check locking) - isInit must be set to 'true' _after_ actual initialization, so caller can be blocked until done - staticInitError must be volatile as well
* Fix Bug 871 - Add optional xcode.clang support for all modules (Extends Bug ↵Sven Gothel2013-10-244-1/+9
| | | | | | | | | | 837 w/ xcode's xcrun) Bump make/lib/cpptasks.jar to a65cc99054a5a6684784bf9a9e8c13fe866b81ad make/lib/gluegen-clang.properties: Defaults to xcode.clang make/jogamp-env.xml: Show env. SDKROOT
* 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'
* Bump to 2.1.1-develSven Gothel2013-10-191-2/+2
|