summaryrefslogtreecommitdiffstats
path: root/make/build.xml
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1417 - Android: Update cpptask, using implicit 'soname' setup, which ↵Sven Gothel2019-12-121-3/+2
| | | | | | | | scales better for all platforms. http://jogamp.org/git/?p=ant-cpptasks.git commit 8353e0cc85705ca8f81f8563ad975026978b6745
* Bug 1417 - Android: Resulting dynamic libraries require the 'soname' to be ↵Sven Gothel2019-12-101-1/+4
| | | | | | set since API level 23 TODO: Do this for all JogAmp modules!
* Bug 1363: Java 11: Document Java8 target constraints; Fix one odd compile issueSven Gothel2019-08-191-0/+4
| | | | | | | | | | | | | | Document Java8 target constraints, i.e. where we need to set source, target and bootclasspath to ensure target runtime Java8 compliance. Fix one odd compile issue! Using two theorethical identical GNU/Linux Debian 10 machines with same set of installed software, one passes (like MacOS, Windows) and one fails. The failure was due to the CStructAnnotationProcessor's @SupportedSourceVersion tag. This downgrades the SourceVersion's previous bump from 6->11 (commit 610493b1724b5d91327f478338ff5d029bdcc032) down to 8. Interesting times ..
* Bug 1363: Java 11: Fix javadoc invocation, drop -source <release> for ↵Sven Gothel2019-08-181-2/+10
| | | | | | | | | | | | | | | | | compile time javac Also prepare the 'target.releaselevel' property to be set by 'RELEASE_LEVEL' environment, however - we do not use it at this point. For now, we build gluegen-rt using '-source 1.8' '-target 1.8' and the bootclasspath of openjdk8 rt.jar to ensure java8 compatibility. Alternatively one could use '--release 8' instead using the java11 distributed modules. However, I think the above method is more safe, only allowing java8 rt.jar to be used for compilation. Further, gluegen.jar is build using '-target 1.8' only, since it musty use java11 sources at least for the javadoc taglet.
* build.xml: Explicitly issue 'clean-temp' at start and in the end of default ↵Sven Gothel2019-08-181-7/+20
| | | | | | | 'all*' targets. This shall ensure that build-temp gets deleted before and after build, removing the transitionary previous build state.
* Fixed java.home directory and removed obsolete tools.jarWade Walker2019-08-161-2/+0
| | | | | | In Java 9+, there's no longer a "jre" directory in the installation, so removed references to it. The tools.jar file also no longer exists in Java installations (it's now stored in a secret non-JAR format), so removed that as well.
* Bug 1363: Java 11: build.xml fix some comments, javah replacement move and ↵Sven Gothel2019-08-161-12/+7
| | | | compile time build
* Fixed native header generation so it doesn't use javahWade Walker2019-08-161-8/+7
| | | | | The javah command was removed in Java 10, so now native headers must be generated in javac instead.
* Merge branch 'java11'Sven Gothel2019-08-161-3/+4
|\
| * Bug 1363: Java 11: Initial Host/Target Compiler Selection: Java8Sven Gothel2019-06-131-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current requirements are: - Java 1.8 (Level 8.0) - Android SDK API level 24 (Version 7.0 Nougat, released August 2016) Official production builds are performed w/ Java 1.8. - Java 1.8 (Level 8.0) - Android SDK API level 24 (Version 7.0 Nougat, released August 2016) Android 7 API level 24 supports Java 1.8, see https://developer.android.com/studio/write/java8-support Java 8 is chosen today, June 2019, since OpenJDK 1.8 is well supported on desktop, mobile support is given w/ OpenJDK 9 and Android also support these language features for almost 3 years. ++++ Current patch does require one to set the target.sourcelevel, target.targetlevel and target.rt.jar properties or their equivalent capital case environment variables. Only allowed value is currently 1.8.
* | iOS: Generalize building the native symbols file via macroSven Gothel2019-06-211-16/+6
| |
* | Update cpptask.jar to commit 18e04a2fb9c2a3556040091213f82fc570bc5736Sven Gothel2019-06-171-4/+0
| | | | | | | | and comment-out verbose OSX compiler/link flags, as well as removing one dead linker cfg target.
* | Bug 1363: Java 11: Recognize Java9+ ..; Support JEP 178 static linkage ↵Sven Gothel2019-06-171-11/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libgluegen-rt[.so] -> libgluegen_rt[.so|.a] Recognize Java9+ .. - Recognize new Java9+ version string as of JEP 223 - Avoid Classpath's private findLibrary call +++ Support JEP 178 static linkage (OpenJDK 1.8) - Need to change native library basename: libgluegen-rt[.so] -> libgluegen_rt[.so|.a] since the dash '-' is not supported in a ANSI-c function name. - Added 'JNI_OnLoad_gluegen_rt' to recognize statical linked JNI code - Added JNI_VERSION_1_8 to jni/jni.h
* | iOS: Initial iOS support commit: build.xml targets, java code-path etcSven Gothel2019-06-171-6/+40
| | | | | | | | | | | | | | | | | | | | | | | | Current build system for JogAmp iOS Build is: - Build Machine: OSX Mojave 10.14 - Using own (still proprietary) OpenJDK 9 iOS Build - OpenJDK 1.8 (This will be replaced by OpenJDK 11 soon) - Xcode 10.2
* | Update cpptask.jar to commit 757192655df20cc6a68affe8cbb4d7de387c9c67Sven Gothel2019-06-171-1/+2
|/ | | | | | Added CC Task Option: 'usehighleveltool' to give user option to prefer the high-level tool like gcc or clang for static linkage where usually 'ar' is being used.
* build.xml:gluegen.build.native: Place unsetting into the conditional .impl ↵Sven Gothel2019-04-101-2/+4
| | | | | | target like gluegen.build.java.impl, as the .impl may be skipped.
* Bug 1369: SCC: Clarify & fix build dependencies in build.xmlSven Gothel2019-04-031-9/+26
| | | | | | | | | | | | | | | | | | | Clean 'base.compile' order w/ matching build -> package tuples, having gluegen.build.shasum after the last actual build and before packaging. - init, - android-launcher.build, - gluegen.build.java, - gluegen.build.native, - gluegen.build.shasum, - gluegen.package.java, - gluegen.package.native, - android-launcher.package Further properly utilize a 'gluegen.package.*.done' property, corresponding with the 'gluegen.build.skip.*' property. Drop 'build.javaonly' gluegen.build.native exclusion
* Bug 1369: SCC: Hide SHA Algorithm bit size in literals of SpecificationSven Gothel2019-04-031-53/+53
| | | | | Implementation currently uses 256 bit Secure Hash (SHA) algorithm, but this may change in the future. Hence only use 'SHA' in the names, not 'SHA256'.
* Bug 1369: Source Certification Contract (SCC): Initial SHA256 fingerprint & ↵Sven Gothel2019-04-031-55/+213
| | | | | | | | | | | | | | | | | | | | | runtime validation This change implements a strong SHA256 signature over: 1) source tree inclusive make recipe (SHA256-Source) 2) all class files (SHA256-Classes) 3) all native libraries (SHA256-Natives) 4) the class files as deployed in the jar (SHA256-Classes-this) 5) the native libraries as deployed in the jar (SHA256-Natives-this) and drops all of these in the deployed Jar file. This allows SHA256 validation of (4) + (5) at runtime and further complete validation (1), (2) and (3) offline. Full SCC would now required (1) - (3) to be placed on a server for further validation. Optionally we may use GPG <https://gnupg.org/> or PGP to validate the build entity to implement the chain of trust <https://en.wikipedia.org/wiki/Chain_of_trust> The SHA256 runtime validation is tested via: com.jogamp.common.util.TestVersionInfo
* Bug 1316: MacOSX: Keep *.dylib (Don't move to *.jnilib)Sven Gothel2019-03-301-3/+2
| | | | | | | | Since Java8 (or even earlier), JRE on OSX uses *.dylib native library suffix instead of *.jnilib when automatically searching and loading them. This is not easily being recognized by JogAmp, since we explicitly name the native libraries with full path when testing with our TempJarCache.
* Merge branch 'master' of git://github.com/pini-gh/gluegen into pini-gh-masterSven Gothel2019-03-261-1/+13
|\
| * Support architecture ppc64le (Debian ppc64el).Gilles Filippini2015-10-281-1/+13
| |
* | Bug 1295: Add linux-aarch64 GNU/Linux AArch64 supportXerxes Ranby2016-12-111-1/+7
|/ | | | | | | | | | | | | | | | | | | | | make/build.xml: New target declare.linux.aarch64 Update target declare.linux to depend on declare.linux.aarch64 make/gluegen-cpp-tasks-base.xml: Fix aarch64 jre/lib/arm -> jre/lib/aarch64 make/lib/gluegen-cpptasks-linux-aarch64.xml: Added make/scripts/make.gluegen.all.linux-aarch64.sh: Added Tested on DragonBoard 410c running Linaro Debian Platform: LINUX / Linux 4.4.8-linaro-lt-qcom (4.4.8), aarch64 (ARM64, EABI_AARCH64), 4 cores, littleEndian true MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment: int8 1 / 1, int16 2 / 2 int 4 / 4, long 8 / 8 int32 4 / 4, int64 8 / 8 float 4 / 4, double 8 / 8, ldouble 16 / 16 pointer 8 / 8, page 4096 Platform: Java Version: 1.8.0_91 (1.8.0u91), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment Platform: Java Vendor: Oracle Corporation, http://java.oracle.com/, JavaSE: true, Java6: true, AWT enabled: true Signed-off-by: Xerxes Ranby <[email protected]>
* Bug 1145 - Provide JogAmp Big Fat Jars and Fat 7z ArchiveSven Gothel2015-07-291-3/+38
| | | | | | | | New distributed files in 'dist' subfolder for producing fat files via jogamp-scripting: dist/jogamp-fat.mf dist/jogamp-test-fat.mf dist/junit.jar
* Fix using GlueGen's JNI header for native compilation (java.includes.dir, ↵Sven Gothel2015-07-141-5/+0
| | | | | | | | | | java.includes.dir.platform) Patch custom make/lib/gluegen-cpptasks-<OS>-<ARCH>.xml to match using GlueGen's JNI header. Remove 'ignored override' defs of 'java.includes.dir.platform' in build.xml.
* Bug 1149 - Replacing PCPP w/ JCPP, allowing complete macro handling (Part-2: ↵Sven Gothel2015-03-241-2/+11
| | | | JCPP submodule, build, test and doc)
* Add javadoc arg '-Xdoclint:none' if java >= 1.8 via property 'javadoc.xarg1' ↵Sven Gothel2015-02-031-0/+1
| | | | avoiding javadoc build failure
* GlueGen AAPT Task: Android APK native-code files shall be named using ↵Sven Gothel2015-02-021-1/+1
| | | | 'os.and.arch', instead of android.abi for harmonization
* Bug 1126 - Remove static query requirement of MachineDescriptor, find ↵Sven Gothel2015-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | matching StaticConfig at runtime; Fix PPC (Bug 1056) and MIPSLE (Bug 1014) issues. Currently the StaticConfig is being queried via the key[OSType, CPUType ..] as pre-determined by Java properties or the ELF parser. This adds complication to maintain different platforms and the key query might not even be sufficient. The MachineDescriptor's StaticConfig only purpose shall be to speed-up native data size and offset/alignment retrieval. This is done by using the StaticConfig index within all StaticConfig[]s as a lookup-index for the precomputed struct's size and offset tables. +++ Solution: Rename: MachineDescriptor -> MachineDataInfo Rename: MachineDescriptorRuntime -> MachineDataInfoRuntime After having defined os.and.arch (OSType, CPUType and ABIType) w/ the optional help of the now self containing ELF Reader (Bug 1125), the native gluegen-rt library gets loaded enabling JNI methods. It is satisfactory to retrieve MachineDataInfo at runtime w/ JNI and find the matching/compatible StaticConfig. Only in case none is found, the program needs to abort. Otherwise the found MachineDataInfo.StaticConfig and MachineDataInfo are stored for further use (see above). This removes above complication and key to StaticConfig mapping. New platforms simply need to add a new unique entry into the StaticConfig[] table. ++ Also fixes Bug 1056 (PPC), thanks to tmancill [@] debian [.] org, and Bug 1014 (MIPSLE), thanks to Dejan Latinovic. Parts of the patch for Bug 1014 from Dejan Latinovic are included. also solved by this change set.
* Bug 1108 - Fix difficulties to determine executable access permission on ↵Sven Gothel2014-12-131-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows via BATCH file execution Batch file execution test via direct call, i.e.'a.bat', does not work on some Windows machine, not reproducible here! A workaround would be to call the batch file explicit via 'CMD /c a.bat': - works when using 'Software Restriction Policies' (Bug 1015 Comment 2) - does _not_ work when denying ACL "Traverse Folder / Execute File" permission (Bug 1015 Comment 3) Due to this bug, we need to use a native execution: - Performing executable test w/ native exe file instead of batch file on Windows x86 32bit and 64bit, - using [1] TinyPE XP-W8 Compatible - x86 32bit and 64bit - 268 bytes - Tested on: WinXP-32bit, Win7-64bit and Win8-64bit - Author/License: Ange Albertini, BSD Licence, 2010-2013 - On all other Windows machines (ARM, ..), we still use direct execution of 'a.bat' but may add native exe files for missing platforms. +++ This patch injects said binaries within the java jar file and copies it into the 'to be tested' temp folder for execution. [1] TinyPE XP-W8 Compatible - x86 32bit and 64bit - 268 bytes is included within 'src/native/tinype-corkami', build manually and imported as 'src/java/com/jogamp/common/util/bin/exe-windows-i586-268b.bin'. +++
* Revert "gluegen: directly use git subcommands rather than sed over a temp file"Sven Gothel2014-08-281-19/+13
| | | | This reverts commit 1bf89ec4fde4227f8935f8c91b7ee22d160da581.
* gluegen: directly use git subcommands rather than sed over a temp fileHarvey Harrison2014-08-151-13/+19
| | | | | | | git symbolic-ref is the preferred way (as of 1.7.10) to parse the current branch name. This even works for the detached head case. Signed-off-by: Harvey Harrison <[email protected]>
* Bug 1024: Add fallback for native-jar-file location via classpathSven Gothel2014-07-111-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In situations, where the native-jar file is not located within the same parent URI as it's java-jar file, our location mechanism fails. This patch adds a classloader based native-jar file location mechanism as a fallback, requiring the native jar file to be included in the users CLASSPATH. Classloader based location algorithm in JNILibLoaderBase.addNativeJarLibsImpl(..): - Extract the 'module-name' from the given classFromJavaJar's package name, i.e. the last package-part: 'jogamp.common.Debug' -> 'common' Hence it is important to pass a 'classFromJavaJar', which last package segment reflects the module-name! - <os.and.arch> -> <os_and_arch_dot>, e.g. linux-amd64 -> linux.amd64 (linux/amd64) - Locate class 'jogamp.nativetag.<module-name>.<os_and_arch_dot>.TAG', e.g. 'jogamp.nativetag.common.linux.amd64.TAG' - Use located class's JarFile URI .. continue as usual Injection of above mentioned TAG class via gluegen-cpptasks-base.xml macro 'native.tag.jar': - Creates dummy TAG.java code - Compiles TAG.java - Creates the native-jar file Example: <native.tag.jar objdir="${build}/obj" nativejarfile="${build}/gluegen-rt-natives-${os.and.arch}.jar" manifestfile="${build}/Manifest-rt-natives.temp" module="common" includelibs="*gluegen-rt.${native.library.suffix}" /> Note that the manifest file uses a matching Extension-Name: Extension-Name: jogamp.nativetag.common
* Bug 1023/Bug 1024: Create native jar files for different configurations due ↵Sven Gothel2014-07-101-1/+2
| | | | to non-native-jar aliasing
* complete commit 33eb9484c4675423431521f2271e3e9d8d38f3b2Sven Gothel2014-06-171-1/+1
|
* gluegen: update the target names for generating java codeHarvey Harrison2014-05-311-45/+45
| | | | | | Also move the antlr-wrapping targets to be near the one place they are used. Signed-off-by: Harvey Harrison <[email protected]>
* gluegen: pair the grammer input folder with an out.dir valueHarvey Harrison2014-05-311-12/+12
| | | | Signed-off-by: Harvey Harrison <[email protected]>
* gluegen: move all antlr grammars to a top-level directoryHarvey Harrison2014-05-311-10/+9
| | | | | | | | /src/main/antlr/.. This gets the .g files unmixed from the non-generated java files for the cgram/jgram packages. Signed-off-by: Harvey Harrison <[email protected]>
* build/test: Add ant-junit4.jar to classpath; Add experimental gluegen-rt-alt ↵Sven Gothel2014-05-091-0/+27
| | | | recipe (inactive); Misc ..
* Fix sed for paths containing spaces on Windows.Wade Walker2014-03-011-1/+1
|
* build.xml .. fix doc (copy/paste)Sven Gothel2014-01-261-1/+1
|
* 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.