summaryrefslogtreecommitdiffstats
path: root/make/gluegen-cpptasks-base.xml
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1126 - Remove static query requirement of MachineDescriptor, find ↵Sven Gothel2015-02-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 1122: Reflect __LP64__ and _aarch64__ in GlueGen's stdint/stddef and ↵Sven Gothel2015-01-301-0/+9
| | | | Android compilerflags
* Bug 1122: Add AArch64 support (Android, GNU/Linux and in general)Sven Gothel2015-01-301-3/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add AArch64 detection via - Elf Parser - Android properties - Java properties - Android: Validate CPUType.Family _and_ ABIType - MachineDescription - Remove redundant Type ID and its field - Reuse X86_64_UNIX for AArch64 (static config) New ARCH 'aarch64' for ant: <os arch> armv8a aarch64 New CPUType.ARM64 (ARM): java: os.arch aarch64 arm64 New CPUType.ARMv8_A (ARM): java: os.arch armv8-a arm64-v8a New ABIType: EABI_AARCH64
* gluegen-cpptasks's compiler.cfg.linux.*: always "-include ↵Sven Gothel2014-07-301-0/+8
| | | | make/stub_includes/platform/glibc-compat-symbols.h" ensuring using low versioned GLIBC symbols
* Bug 1024: Add fallback for native-jar-file location via classpathSven Gothel2014-07-111-1/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Use 'gluegen-clang.properties' for generic clang and ↵Sven Gothel2013-11-171-2/+2
| | | | | | | | '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
* Bug 871 - Add optional xcode.clang support for all modules: Fix 'isCLANG' ↵Sven Gothel2013-10-251-1/+5
| | | | detection ; echo 'gcc.compat.compiler'
* Fix Bug 871 - Add optional xcode.clang support for all modules (Extends Bug ↵Sven Gothel2013-10-241-0/+1
| | | | | | | | | | 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
* Bug 800 - Add Windows 8 Touch Event Support / Enable Win 7 definitions via ↵Sven Gothel2013-10-131-4/+4
| | | | WINVER/_WIN32_NT 0x0601
* Add clang support: 'gluegen.properties' adds 'gcc.compat.compiler' = ['gcc', ↵Sven Gothel2013-09-131-45/+55
| | | | 'clang']; Use 'gcc.compat.compiler' for all gcc based compiler/linker definitions.
* Fix Bug 650: Use toolchain default arch & float options for default arm ↵Sven Gothel2013-04-231-6/+8
| | | | | | | | cc/ld target in make/gluegen-cpptasks-base.xml Specialized arch & float arm options are defined in - lib/gluegen-cpptasks-linux-armv6.xml (armv5te + softfp), or - lib/gluegen-cpptasks-linux-armv6hf.xml (armv6 + hardfp)
* make/gluegen-cpptasks-base.xml: Expose evaluated 'isI386' and 'isAMD64' ↵Sven Gothel2013-04-201-26/+24
| | | | property, allowing to trigger x86_64 -> x86_32 crosscompilation.
* OSX/Java7 darwin/jawt_md.h Workaround ; Disable OSX/i386 if compiled w/ ↵Sven Gothel2013-02-171-4/+20
| | | | | | | | | | | | | | Java7 [1.7 - 2.0]; Valid Java range [1.6 - 2.0]. - OSX/Java7 darwin/jawt_md.h Workaround Include JOGL's JNI MacOSX platform headers, since Oracle's Java7 darwin/jawt_md.h has X11 dependencies and does not define JAWT_SurfaceLayers. - Disable OSX/i386 if compiled w/ Java7 [1.7 - 2.0] Set macosx32 depending on 'ant.java.version' - Valid Java range [1.6 - 2.0] Foresee new Java versions 1.9 and 2.0 :)
* OSX Java6/Java7: Adapt to used JDK (Apple's Java6 or Oracle's Java7)Sven Gothel2013-02-171-16/+31
| | | | | | | | | | | | - Pick-up OSX Java7 locations if setup via ${java.home} and files available - host.rt.jar, target.rt.jar - java.home.dir - java.includes.dir - java.includes.dir.platform - java.lib.dir.platform - Remove 'very old' Java4/5 OSX locations - Remove java.osx.frameworks.dir, since JavaNativeFoundation.h dependencies are removed
* Adding gcc linker cfg: '-static-libgcc' for all def. build platforms:Sven Gothel2012-10-131-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | - linker.cfg.linux - linker.cfg.linux.x86 - linker.cfg.linux.amd64 - linker.cfg.linux.armv6 - linker.cfg.solaris - linker.cfg.solaris.spacv9 - linker.cfg.solaris.amd64 - linker.cfg.macosx - linker.cfg.linux64.mingw64 - linker.cfg.linux64.mingw32 - linker.cfg.win32.mingw32 - linker.cfg.win32.mingw64 - android.armv6 - android.armv7 - linux.armv6 - linux.armv6hf These flags shall now go through autobuild and results will be validated, i.e.: - working - memory footprint
* Change/Lower ARM Requierements for GNU/Linux & Android-GNU/Linux ARM: ↵Sven Gothel2012-08-161-44/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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" />
* Partially revert commit 5efbe805c553a2ac21a79386c3e2147858d4308b - Linux / ↵v2.0-rc6Sven Gothel2012-04-191-30/+0
| | | | Solaris x86* requires stdlib.
* Relaxed Unix linker flags for Linux + Solaris ; Refined Linux Armv4 flagsSven Gothel2012-04-191-14/+44
| | | | | | | | | | | | | | Relaxed Unix linker flags for Linux + Solaris + <linkerarg value="-nostdlib" /> + <linkerarg value="-Bdynamic" /> Refined Linux Armv4 flags: - <compilerarg value="-msoft-float" /> + <compilerarg value="-marm" /> + <compilerarg value="-mfloat-abi=soft" /> Xerxes figured out these are required on pre-NEON and ARMv4 soft float boards, the latter is true for Rasperry PI at least.
* Fix EABI Armel/Armhf selection incl. os.and.archSven Gothel2012-03-281-25/+53
|
* Add support for armhf/gnueabihf resulting in new 'os.and.arch' := [ ↵Sven Gothel2012-03-281-2/+30
| | | | | | | | | | | | | | | | '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
* build: Move c.compiler.debug, c.compiler.use-debug and c.compiler.optimise ↵Sven Gothel2012-03-071-0/+7
| | | | | | | from build.xml -> gluegen-cpptasks-base.xml - unifies definition - echo values
* Exposing custom gluegen-cpptask.file for crosscompilation presets, adding ↵Sven Gothel2012-02-241-1/+12
| | | | | | gluegen-cpptasks-linux-armv7.xml Env: GLUEGEN_CPPTASKS_FILE -> property: gluegen-cpptasks.file
* Fix [linux] armv7 cross build (regression of commit ↵Sven Gothel2012-02-191-1/+10
| | | | 196c325aa3dddb0d775e8fb80e26333208fe6c7e) - generalize env. TARGET_JAVA_LIBS
* Fix Bug 545: Provide more information about the systemSylvestre Ledru2012-01-091-1/+4
|
* Fix Bug 488: Enable others architectures under GNU/LinuxSylvestre Ledru2012-01-091-3/+224
|
* cpptasks MacOSX 10.5 support (bug 528): Use '-mmacosx-version-min=10.5' flag ↵Sven Gothel2011-11-261-0/+2
| | | | | | | | for compiler/linker. As Wade Walker suggests, use '-mmacosx-version-min=10.5' compiler/linker flag, which doesn't break 10.6 nor 10.7 builds, still need confirmation whether it works on 10.5!
* gluegen/OSX: Add property java.osx.frameworks.dirSven Gothel2011-11-051-0/+5
|
* Generalize jvm-data-model-arg 'jvmDataModel.arg', set do -d64, -d32 or ↵Sven Gothel2011-10-181-16/+39
| | | | dummy-value properly
* Fix Solaris gcc args ; Adding JVM arch flags (-d32/-d64)Sven Gothel2011-10-181-5/+25
|
* Add define '__X11__', is isX11 ; Android attach system include folders via ↵Sven Gothel2011-08-041-0/+19
| | | | -isystem (which come after -I)
* Remove linux-armv7 native platform libraries (compile time only),Sven Gothel2011-08-021-1/+1
| | | | reducing the burden to add a license file etc.
* Add Ubuntu 11.04 arm-linux-gnueabi library folder for build time linker ↵Sven Gothel2011-07-281-1/+1
| | | | resolution
* Android integration / cross-test ; Enhance PlatformSven Gothel2011-07-241-1/+5
| | | | | | | | | | | - 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 ?)
* Adding Sylvestre Ledru's bug #487 verbosity patchSven Gothel2011-07-231-0/+1
|
* Add missing defines (__unix__, DEBUG) for solaris, etcSven Gothel2011-07-231-0/+12
|
* Cleanup [cross] compile propertiesSven Gothel2011-07-221-2/+2
| | | | | | | | | | | | | - linux-armv7 (ubuntu) - added scripts/make.gluegen.all.linux-armv7-cross.sh - added symbolic links to cross toolchain (gcc, ld, ..) allowing gluegen's cpptask to pick it up - android-armv7 (android) - we have scripts/make.gluegen.all.android-armv7-cross.sh
* add props compiler.cfg.linux.x86, linker.cfg.linux.x86 for proper ↵Sven Gothel2011-07-221-37/+24
| | | | linux-x86_32 spec. removed android props, we use custom xml files
* refined Android ARMv7 targets (android still dummy)Sven Gothel2011-07-201-18/+72
|
* Cleanup: Platform CPU enum, MachineDescription,Sven Gothel2011-07-201-16/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 proper size / alignment of primitive and compound types usage [1/2] ↵Sven Gothel2011-07-171-2/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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, ..
* osx fix: query availability of JVM header, ieSven Gothel2011-04-201-1/+6
| | | | | - /System/Library/Frameworks/JavaVM.framework/Headers/ Java 10.6 Update 4 - /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers/ Prev. Version
* use.macosx32 and use.macosx64 are only true when I run Mac OS XSylvestre Ledru2011-03-201-0/+6
|
* Remove CDCSven Gothel2011-02-091-3/+0
|
* Expand tabs to 4 spacesSven Gothel2011-02-091-1/+1
|
* Fixing build scripts for Solaris systems.Barcsik Attila2011-02-051-39/+33
|
* Sort compiler/linker configs and add __unix__ and DEBUG defines as ↵Sven Gothel2010-11-051-85/+126
| | | | appropriate for all.
* Declare x86 and amd64 compilers for FreeBSDMark Rothwell2010-06-261-4/+14
|
* New linker definitions for FreeBSD (do not reuse Linux definitions for the ↵Mark Rothwell2010-06-261-0/+8
| | | | sake of clarity)
* Set os.and.arch for FreeBSDMark Rothwell2010-06-261-1/+7
|
* Split FreeBSD in the same manner as Linux: isFreeBSD, isFreeBSDX86, ↵Mark Rothwell2010-06-261-2/+26
| | | | isFreeBSDAMD64