summaryrefslogtreecommitdiffstats
path: root/make/gluegen-cpptasks.xml
diff options
context:
space:
mode:
Diffstat (limited to 'make/gluegen-cpptasks.xml')
-rwxr-xr-xmake/gluegen-cpptasks.xml755
1 files changed, 755 insertions, 0 deletions
diff --git a/make/gluegen-cpptasks.xml b/make/gluegen-cpptasks.xml
new file mode 100755
index 0000000..b64abfc
--- /dev/null
+++ b/make/gluegen-cpptasks.xml
@@ -0,0 +1,755 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ - Ant project file which sets up cpptasks to compile native code
+ - generated by GlueGen for multiple supported platforms. This Ant
+ - project file is not intended to be executed standalone, but imported
+ - by other projects which use GlueGen to generate native code and
+ - need to compile that native code.
+ -
+ - Before importing this file, the property "gluegen.root" must be
+ - defined; this is the relative path from the current working
+ - directory (e.g., from which the parent project's build.xml is being
+ - executed) to the top of the checked-out GlueGen workspace.
+ -
+ - This Ant project file depends on the following properties being set
+ - externally:
+ -
+ - win32.c.compiler (required to be set on Windows):
+ - one of "vc6", "vc7", "vc8", or "mingw".
+ - c.compiler.debug:
+ - set to "true" if debug version of the compiled
+ - C code is desired.
+ - macosx64:
+ - set to "true" if 64-bit universal / fat binaries are desired
+ - on Mac OS X. Requires support for cross-compilation from the
+ - underlying C compiler.
+ -
+ - The gluegen.cpptasks.detect.os target sets the following
+ - properties appropriately. They are only set to "true" if the OS/CPU
+ - configuration is exactly as specified.
+ -
+ - isFreeBSD
+ - isHPUX
+ - isIA64
+ - isLinux
+ - isLinuxAMD64
+ - isLinuxIA64
+ - isLinuxX86
+ - isOSX
+ - isOSXPPC
+ - isOSXUniversal (if macosxfat=true)
+ - isSolaris
+ - isSolaris32Bit
+ - isSolarisAMD64
+ - isSolarisSparc
+ - isSolarisSparcv9
+ - isSolarisX86
+ - isUnix
+ - isWindows
+ - isWindowsX86
+ - isWindowsAMD64
+ - isX11
+ -
+ - It also sets the following properties which are useful for
+ - building native library jar files for Java Web Start and
+ - understanding on what OS and architecture things are being built.
+ -
+ - os.and.arch (i.e., "windows-i586")
+ - native.library.suffix (i.e.., "so", "dll")
+ -
+ - The gluegen.cpptasks.setup.compiler target is the preferred target
+ - to depend upon in your build.xml. It depends on gluegen.cpptasks.detect.compiler
+ - and gluegen.cpptasks.configure.compiler, below, and also sets up the following
+ - compiler and linker IDs for the host platform:
+ -
+ - compiler.cfg.id.base
+ - linker.cfg.id.base
+ -
+ - and the following properties:
+ -
+ - java.home.dir : path to the JDK home directory
+ - java.includes.dir : path to the JNI headers (.../jdk/include)
+ - java.includes.dir.platform : path to the platform JNI headers (.../jdk/include/linux)
+ - java.lib.dir.platform : path to the Java library dir (libjawt.so, etc.)
+ -
+ - If your project requires only minimal changes to the compiler
+ - configuration, you may be able to simply refer to the
+ - gluegen.cpptasks.setup.compiler target and avoid any platform-
+ - specific compiler subclassing.
+ -
+ - The gluegen.cpptasks.detect.compiler target sets the following
+ - properties appropriately. They are only set to "true" if the OS/compiler
+ - configuration is exactly as specified.
+ -
+ - isVCFamily
+ - isVC6
+ - isVC7
+ - isVC8
+ - isVC8_X64
+ - isVC8Family (= isVC8 || isVC8_X64 || isVC9) (requires manifest in DLL)
+ - isVC9
+ - isMingW
+ -
+ - The gluegen.cpptasks.configure.compiler target initializes several
+ - cpptasks compiler and linker configurations designed to support
+ - compilation of C code on multiple platforms. Generally if it is
+ - necessary to set up include paths, link paths, etc., then these
+ - compilers and linkers will need to be subclassed in sub-projects.
+ - However, at least the base-level configuration does not need to
+ - be replicated.
+ -
+ - The following compiler and linker IDs are defined by this target:
+ -
+ - compiler.cfg.linux
+ - compiler.cfg.linux.amd64
+ - compiler.cfg.solaris
+ - compiler.cfg.solaris.sparcv9
+ - compiler.cfg.solaris.amd64
+ - compiler.cfg.win32.mingw
+ - compiler.cfg.win32.msvc
+ - compiler.cfg.macosx
+ - compiler.cfg.freebsd
+ - compiler.cfg.hpux
+ - linker.cfg.linux
+ - linker.cfg.linux.amd64
+ - linker.cfg.solaris
+ - linker.cfg.solaris.sparcv9
+ - linker.cfg.solaris.amd64
+ - linker.cfg.win32.mingw
+ - linker.cfg.win32.msvc
+ - linker.cfg.macosx
+ - linker.cfg.hpux
+ -
+ - This project file also defines a macrodef called "msvc.manifest"
+ - which helps insert manifests into DLLs compiled with MSVC 8.0 and
+ - later. Example usage is:
+ - &lt;msvc.manifest objdir="${obj}" dllname="gluegen-rt" /&gt;
+ -->
+<project name="GlueGen-cpptasks" basedir=".">
+ <!-- import cpptasks -->
+ <typedef resource="net/sf/antcontrib/cpptasks/antlib.xml" classpath="${gluegen.root}/make/lib/cpptasks.jar"/>
+
+ <available file="${user.home}/gluegen.compiler.xml" property="gluegen.compiler.present"/>
+ <import file="${user.home}/gluegen.compiler.xml" optional="true" />
+
+ <!-- Detect OS and compiler configuration -->
+ <target name="gluegen.cpptasks.detect.os.1" unless="gluegen.cpptasks.detected.os">
+ <condition property="isOSX">
+ <and>
+ <os family="mac"/>
+ <os family="unix"/>
+ </and>
+ </condition>
+ <!-- Need a way to be able to disable the macosx64 property specification in a build.xml -->
+ <condition property="use.macosx64">
+ <istrue value="${macosx64}" />
+ </condition>
+ <condition property="isUnix">
+ <and>
+ <os family="unix" />
+ <not>
+ <os family="mac" />
+ </not>
+ </and>
+ </condition>
+ <condition property="isLinux">
+ <os name="Linux" />
+ </condition>
+ <condition property="isSolaris">
+ <os name="SunOS" />
+ </condition>
+ <condition property="isWindows">
+ <os family="windows" />
+ </condition>
+ <condition property="isWindowsX86">
+ <and>
+ <istrue value="${isWindows}" />
+ <or>
+ <os arch="i386" />
+ <os arch="x86" />
+ </or>
+ </and>
+ </condition>
+ <condition property="isWindowsAMD64">
+ <and>
+ <istrue value="${isWindows}" />
+ <os arch="amd64" />
+ </and>
+ </condition>
+ <condition property="isFreeBSD">
+ <os name="FreeBSD" />
+ </condition>
+ <condition property="isHPUX">
+ <os name="HP-UX" />
+ </condition>
+ <condition property="isLinuxX86">
+ <and>
+ <istrue value="${isLinux}" />
+ <or>
+ <os arch="i386" />
+ <os arch="x86" />
+ </or>
+ </and>
+ </condition>
+ <condition property="isLinuxAMD64">
+ <and>
+ <istrue value="${isLinux}" />
+ <or>
+ <os arch="AMD64" />
+ <os arch="x86_64" />
+ </or>
+ </and>
+ </condition>
+ <condition property="isLinuxIA64">
+ <and>
+ <istrue value="${isLinux}" />
+ <os arch="IA64" />
+ </and>
+ </condition>
+ <condition property="isIA64">
+ <os arch="IA64" />
+ </condition>
+ <condition property="isSolaris32Bit">
+ <and>
+ <istrue value="${isSolaris}" />
+ <or>
+ <os arch="i386" />
+ <os arch="x86" />
+ <os arch="sparc" />
+ </or>
+ </and>
+ </condition>
+ <condition property="isSolarisSparc">
+ <and>
+ <istrue value="${isSolaris}" />
+ <os arch="sparc" />
+ </and>
+ </condition>
+ <condition property="isSolarisSparcv9">
+ <and>
+ <istrue value="${isSolaris}" />
+ <os arch="sparcv9" />
+ </and>
+ </condition>
+ <condition property="isSolarisAMD64">
+ <and>
+ <istrue value="${isSolaris}" />
+ <os arch="AMD64" />
+ </and>
+ </condition>
+ <condition property="isSolarisX86">
+ <and>
+ <istrue value="${isSolaris}" />
+ <or>
+ <os arch="i386" />
+ <os arch="x86" />
+ </or>
+ </and>
+ </condition>
+
+ <!-- Note: assumes X11 platform by default -->
+ <condition property="isX11">
+ <and>
+ <isfalse value="${isWindows}" />
+ <isfalse value="${isOSX}" />
+ </and>
+ </condition>
+
+ <condition property="solaris.cpu" value="sparc">
+ <os name="SunOS" arch="sparc" />
+ </condition>
+ <condition property="solaris.cpu" value="sparcv9">
+ <os name="SunOS" arch="sparcv9" />
+ </condition>
+ <condition property="solaris.cpu" value="i386">
+ <os name="SunOS" arch="x86" />
+ </condition>
+ <condition property="solaris.cpu" value="amd64">
+ <os name="SunOS" arch="amd64" />
+ </condition>
+
+ <echo message="FreeBSD=${isFreeBSD}" />
+ <echo message="HPUX=${isHPUX}" />
+ <echo message="IA64=${isIA64}" />
+ <echo message="Linux=${isLinux}" />
+ <echo message="LinuxAMD64=${isLinuxAMD64}" />
+ <echo message="LinuxIA64=${isLinuxIA64}" />
+ <echo message="LinuxX86=${isLinuxX86}" />
+ <echo message="OS X=${isOSX}" />
+ <echo message="Solaris=${isSolaris}" />
+ <echo message="Solaris32Bit=${isSolaris32Bit}" />
+ <echo message="SolarisSparc=${isSolarisSparc}" />
+ <echo message="SolarisSparcv9=${isSolarisSparcv9}" />
+ <echo message="SolarisAMD64=${isSolarisAMD64}" />
+ <echo message="SolarisX86=${isSolarisX86}" />
+ <echo message="Unix=${isUnix}" />
+ <echo message="Windows=${isWindows}" />
+ <echo message="X11=${isX11}" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.freebsd" unless="gluegen.cpptasks.detected.os.2" if="isFreeBSD">
+ <property name="os.and.arch" value="freebsd-i586" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.hpux" unless="gluegen.cpptasks.detected.os.2" if="isHPUX">
+ <property name="os.and.arch" value="hpux-hppa" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.linux.amd64" unless="gluegen.cpptasks.detected.os.2" if="isLinuxAMD64">
+ <property name="os.and.arch" value="linux-amd64" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.linux.ia64" unless="gluegen.cpptasks.detected.os.2" if="isLinuxIA64">
+ <property name="os.and.arch" value="linux-ia64" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.linux.x86" unless="gluegen.cpptasks.detected.os.2" if="isLinuxX86">
+ <property name="os.and.arch" value="linux-i586" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.linux" depends="gluegen.cpptasks.detect.os.linux.amd64,gluegen.cpptasks.detect.os.linux.ia64,gluegen.cpptasks.detect.os.linux.x86" unless="gluegen.cpptasks.detected.os.2" />
+
+ <target name="gluegen.cpptasks.detect.os.osx" unless="gluegen.cpptasks.detected.os.2" if="isOSX">
+ <property name="native.library.suffix" value="*lib" />
+ <property name="os.and.arch" value="macosx-universal" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.solaris.sparc" unless="gluegen.cpptasks.detected.os.2" if="isSolarisSparc">
+ <property name="os.and.arch" value="solaris-sparc" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.solaris.sparcv9" unless="gluegen.cpptasks.detected.os.2" if="isSolarisSparcv9">
+ <property name="os.and.arch" value="solaris-sparcv9" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.solaris.amd64" unless="gluegen.cpptasks.detected.os.2" if="isSolarisAMD64">
+ <property name="os.and.arch" value="solaris-amd64" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.solaris.x86" unless="gluegen.cpptasks.detected.os.2" if="isSolarisX86">
+ <property name="os.and.arch" value="solaris-i586" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.solaris" depends="gluegen.cpptasks.detect.os.solaris.sparc,gluegen.cpptasks.detect.os.solaris.sparcv9,gluegen.cpptasks.detect.os.solaris.amd64,gluegen.cpptasks.detect.os.solaris.x86" unless="gluegen.cpptasks.detected.os.2" />
+
+ <target name="gluegen.cpptasks.detect.os.unix" unless="gluegen.cpptasks.detected.os.2" if="isUnix">
+ <property name="native.library.suffix" value="so" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.windows.amd64" unless="gluegen.cpptasks.detected.os.2" if="isWindowsAMD64">
+ <property name="os.and.arch" value="windows-amd64" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.windows.x86" unless="gluegen.cpptasks.detected.os.2" if="isWindowsX86">
+ <property name="os.and.arch" value="windows-i586" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.windows" depends="gluegen.cpptasks.detect.os.windows.amd64,gluegen.cpptasks.detect.os.windows.x86" unless="gluegen.cpptasks.detected.os.2" if="isWindows">
+ <property name="native.library.suffix" value="dll" />
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os.2" depends="gluegen.cpptasks.detect.os.freebsd,gluegen.cpptasks.detect.os.hpux,gluegen.cpptasks.detect.os.linux,gluegen.cpptasks.detect.os.osx,gluegen.cpptasks.detect.os.solaris,gluegen.cpptasks.detect.os.unix,gluegen.cpptasks.detect.os.windows" unless="gluegen.cpptasks.detected.os.2">
+ </target>
+
+ <target name="gluegen.cpptasks.detect.os" depends="gluegen.cpptasks.detect.os.1,gluegen.cpptasks.detect.os.2">
+ <property name="gluegen.cpptasks.detected.os" value="true" />
+ <property name="gluegen.cpptasks.detected.os.2" value="true" />
+ </target>
+
+ <!-- Detect compiler setup, in particular on Windows; separated
+ - out because this must sometimes be called late in the setup process
+ -->
+ <target name="gluegen.cpptasks.detect.compiler">
+ <!-- Set up compiler selection on Windows -->
+ <condition property="isVCFamily">
+ <and>
+ <istrue value="${isWindows}" />
+ <not>
+ <equals arg1="${win32.c.compiler}" arg2="mingw" />
+ </not>
+ </and>
+ </condition>
+ <condition property="isVC6">
+ <and>
+ <istrue value="${isWindows}" />
+ <equals arg1="${win32.c.compiler}" arg2="vc6" />
+ </and>
+ </condition>
+ <condition property="isVC7">
+ <and>
+ <istrue value="${isWindows}" />
+ <equals arg1="${win32.c.compiler}" arg2="vc7" />
+ </and>
+ </condition>
+ <condition property="isVC8">
+ <and>
+ <istrue value="${isWindows}" />
+ <equals arg1="${win32.c.compiler}" arg2="vc8" />
+ </and>
+ </condition>
+ <condition property="isVC9">
+ <and>
+ <istrue value="${isWindows}" />
+ <equals arg1="${win32.c.compiler}" arg2="vc9" />
+ </and>
+ </condition>
+ <condition property="isVC8_X64">
+ <and>
+ <istrue value="${isWindows}" />
+ <equals arg1="${win32.c.compiler}" arg2="vc8_x64" />
+ </and>
+ </condition>
+ <condition property="isVC8Family">
+ <or>
+ <istrue value="${isVC8}" />
+ <istrue value="${isVC8_X64}" />
+ <istrue value="${isVC9}" />
+ </or>
+ </condition>
+ <condition property="isMingW">
+ <and>
+ <istrue value="${isWindows}" />
+ <equals arg1="${win32.c.compiler}" arg2="mingw" />
+ </and>
+ </condition>
+ <condition property="WindowsFailure">
+ <and>
+ <istrue value="${isWindows}" />
+ <isfalse value="${isVC6}" />
+ <isfalse value="${isVC7}" />
+ <isfalse value="${isVC8}" />
+ <isfalse value="${isVC8_X64}" />
+ <isfalse value="${isVC9}" />
+ <isfalse value="${isMingW}" />
+ </and>
+ </condition>
+ <fail message="Must specify either win32.c.compiler in e.g. jogl.properties or use e.g. win32.vc6 build target" if="WindowsFailure" />
+ <echo message="VC6=${isVC6}" />
+ <echo message="VC7=${isVC7}" />
+ <echo message="VC8=${isVC8}" />
+ <echo message="VC8_X64=${isVC8_X64}" />
+ <echo message="VC9=${isVC9}" />
+ <echo message="MingW=${isMingW}" />
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="c.compiler.debug" value="false" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Set up java.home.dir appropriately on all platforms.
+ -->
+ <target name="setup.java.home.dir.nonmacosx" unless="isOSX">
+ <!-- java home dir is up one directory as java.home points to '<java-install-dir>/jre' -->
+ <property name="java.home.dir" value="${java.home}/.." />
+ </target>
+ <target name="setup.java.home.dir.macosx" if="isOSX">
+ <property name="java.home.dir" value="/System/Library/Frameworks/JavaVM.framework/Home" />
+ </target>
+ <target name="setup.java.home.dir" depends="setup.java.home.dir.nonmacosx,setup.java.home.dir.macosx">
+ <property name="java.includes.dir" value="${java.home.dir}/include" />
+ </target>
+
+ <target name="gluegen.cpptasks.configure.compiler" depends="setup.java.home.dir" unless="gluegen.compiler.present">
+ <!-- compiler configuration -->
+ <compiler id="compiler.cfg.linux" name="gcc">
+ </compiler>
+
+ <compiler id="compiler.cfg.linux.amd64" name="gcc">
+ <compilerarg value="-fPIC"/>
+ </compiler>
+
+ <compiler id="compiler.cfg.solaris" name="suncc">
+ <defineset>
+ <define name="SOLARIS" />
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.solaris.sparcv9" name="suncc">
+ <compilerarg value="-fast" />
+ <compilerarg value="-xchip=ultra" />
+ <compilerarg value="-xarch=v9a" />
+ <defineset>
+ <define name="SOLARIS" />
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.solaris.amd64" name="suncc">
+ <compilerarg value="-fast" />
+ <compilerarg value="-xchip=opteron" />
+ <compilerarg value="-xarch=amd64" />
+ <!-- <compilerarg value="-xcache=64/64/2:1024/64/16" /> -->
+ <defineset>
+ <define name="SOLARIS" />
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.win32.mingw" name="gcc">
+ <defineset>
+ <define name="_DEBUG" if="c.compiler.use-debug"/>
+ <define name="DEBUG" if="c.compiler.use-debug"/>
+ <define name="NDEBUG" unless="c.compiler.use-debug"/>
+
+ <define name="DBUILD_DLL" />
+ <define name="_WINGDI_" />
+ <define name="_STRICT_ANSI" />
+ <define name="_JNI_IMPLEMENTATION_" />
+ <define name="MINGW" />
+ <define name="WINVER" value="0x0500"/> <!-- set windows version to >= Windows 2000 -->
+ <define name="_WIN32_WINNT" value="0x0500"/> <!-- set windows version to >= Windows 2000 -->
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.win32.msvc" name="msvc">
+ <compilerarg value="/W3"/> <!-- set warning level -->
+ <compilerarg value="/Ob1"/> <!-- inline only functions marked inline -->
+ <compilerarg value="/GF"/> <!-- enable string pooling -->
+ <compilerarg value="/Gy"/> <!-- enable function level linking -->
+ <compilerarg value="/GS" if="isVC7"/> <!-- buffer security checks -->
+ <compilerarg value="/Wp64" if="isVC7"/> <!-- detect 64-bit port problems -->
+ <compilerarg value="/RTCcsu" if="isVC7"/> <!-- various runtime checks -->
+ <!-- Note: previous compiler options for VC7 were:
+ Debug: /MDd /Yd /GS /RTCs /RTCu /RTCc /W3 /Od /GF /EHsc /Zi /GS /Gy /Wp64 /Zi /D &quot;_DEBUG&quot;
+ Optimized: /MD /W3 /O2 /Ob1 /GF /EHsc /GS /Gy /Wp64 /D &quot;NDEBUG&quot; -->
+ <compilerarg value="/GS" if="isVC8"/> <!-- buffer security checks -->
+ <compilerarg value="/Wp64" if="isVC8"/> <!-- detect 64-bit port problems -->
+ <compilerarg value="/RTCcsu" if="isVC8"/> <!-- various runtime checks -->
+ <compilerarg value="/NODEFAULTLIB:oldnames.lib" if="isVC8"/> <!-- library not available with VC8 -->
+ <compilerarg value="/GS" if="isVC9"/> <!-- buffer security checks -->
+ <compilerarg value="/RTCcsu" if="isVC9"/> <!-- various runtime checks -->
+ <!--compilerarg value="/MT" if="isVC9"/--> <!-- static multithreaded - somehow overwritten by default /MD -->
+
+ <defineset>
+ <define name="_DEBUG" if="c.compiler.use-debug"/>
+ <define name="DEBUG" if="c.compiler.use-debug"/>
+ <define name="NDEBUG" unless="c.compiler.use-debug"/>
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.macosx" name="gcc">
+ <compilerarg value="-arch" />
+ <compilerarg value="ppc" />
+ <compilerarg value="-arch" />
+ <compilerarg value="i386" />
+ <compilerarg value="-arch" if="use.macosx64"/>
+ <compilerarg value="x86_64" if="use.macosx64"/>
+ <!-- Note: Apple doesn't seem to provide ppc64 binaries on Leopard -->
+ <compilerarg value="-Wmost" />
+ <compilerarg value="-ObjC" />
+ <defineset>
+ <define name="macosx" />
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.freebsd" name="gcc">
+ <defineset>
+ <define name="FREEBSD" />
+ <define name="BSD" />
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.hpux" name="aCC">
+ <!-- Interpret source as ANSI C89 (not C++) -->
+ <compilerarg value="-Ae"/>
+ <!-- Dereferences are performed with four-byte loads and stores. -->
+ <compilerarg value="+u4"/>
+ <!-- Suppress warnings:
+ 942: signed/unsigned assignment compatibility
+ 129: redeclarations in stub_includes -->
+ <compilerarg value="+W942,129"/>
+ <defineset>
+ <!-- aCC doesn't seem to define a generic system macro, a la
+ "__sun". The documentation claims it defines the following,
+ but don't seem to work: __HP_aCC, __LP64__, __RISC_0__.
+ HP-UX docs on JNI say to use the defs below
+ (http://www.hp.com/products1/unix/java/infolibrary/prog_guide/JNI_java2.html) -->
+ <!-- Single underscore prefix, as recommended by aCC docs... -->
+ <define name="_HPUX"/>
+ <define name="_POSIX_C_SOURCE" value="199506L"/>
+ </defineset>
+ </compiler>
+
+ <!-- linker configuration -->
+
+ <linker id="linker.cfg.linux" name="gcc">
+ </linker>
+
+ <linker id="linker.cfg.linux.amd64" name="gcc">
+ </linker>
+
+ <linker id="linker.cfg.solaris" name="suncc">
+ </linker>
+
+ <linker id="linker.cfg.solaris.sparcv9" name="suncc">
+ <linkerarg value="-xarch=v9a" />
+ </linker>
+
+ <linker id="linker.cfg.solaris.amd64" name="suncc">
+ <linkerarg value="-xarch=amd64" />
+ </linker>
+
+ <linker id="linker.cfg.win32.mingw" name="gcc" incremental="false">
+ <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names -->
+ </linker>
+
+ <linker id="linker.cfg.win32.msvc" name="msvc" incremental="false">
+ <linkerarg value="/OPT:REF,ICF" /> <!-- enable link-time optimisations -->
+ <linkerarg value="/SUBSYSTEM:WINDOWS" /> <!-- output is not a console app as uses WinMain entry point -->
+ <linkerarg value="/MACHINE:X86" if="isVC6" /> <!-- explicity set target platform -->
+ <linkerarg value="/MACHINE:X86" if="isVC7" /> <!-- explicity set target platform -->
+ <linkerarg value="/MACHINE:X86" if="isVC8" /> <!-- explicity set target platform -->
+ <linkerarg value="/MACHINE:X64" if="isVC8_X64"/> <!-- explicity set target platform (IX64) -->
+ <linkerarg value="/MACHINE:X86" if="isVC9" /> <!-- explicity set target platform -->
+ </linker>
+
+ <linker id="linker.cfg.macosx" name="gcc">
+ <linkerarg value="-arch" />
+ <linkerarg value="ppc" />
+ <linkerarg value="-arch" />
+ <linkerarg value="i386" />
+ <linkerarg value="-arch" if="use.macosx64"/>
+ <linkerarg value="x86_64" if="use.macosx64"/>
+ <!-- Note: Apple doesn't seem to provide ppc64 binaries on Leopard -->
+ </linker>
+
+ <linker id="linker.cfg.hpux" name="aCC">
+ </linker>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Platform specific declares.
+ -->
+ <target name="gluegen.cpptasks.declare.compiler.win32.vc6" if="isVC6">
+ <echo message="Win32.VC6" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.base" value="linker.cfg.win32.msvc" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.win32.vc7" if="isVC7">
+ <echo message="Win32.VC7" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.base" value="linker.cfg.win32.msvc" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.win32.vc8" if="isVC8">
+ <echo message="Win32.VC8" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.base" value="linker.cfg.win32.msvc" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.win32.vc8_x64" if="isVC8_X64">
+ <echo message="Win32.VC8_X64" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.base" value="linker.cfg.win32.msvc" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.win32.vc9" if="isVC9">
+ <echo message="Win32.VC9" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.base" value="linker.cfg.win32.msvc" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.win32.mingw" if="isMingW">
+ <echo message="Win32.MingW" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.win32.mingw" />
+ <property name="linker.cfg.id.base" value="linker.cfg.win32.mingw" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.win32" depends="gluegen.cpptasks.declare.compiler.win32.vc6,gluegen.cpptasks.declare.compiler.win32.vc7,gluegen.cpptasks.declare.compiler.win32.vc8,gluegen.cpptasks.declare.compiler.win32.vc8_x64,gluegen.cpptasks.declare.compiler.win32.vc9,gluegen.cpptasks.declare.compiler.win32.mingw" if="isWindows">
+ <property name="java.includes.dir.platform" value="${java.includes.dir}/win32" />
+ <property name="java.lib.dir.platform" value="${java.home.dir}/lib" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.linux.x86" if="isLinuxX86">
+ <echo message="Linux.x86" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.base" value="linker.cfg.linux" />
+ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/i386" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.linux.amd64" if="isLinuxAMD64">
+ <echo message="Linux.AMD64" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.linux.amd64" />
+ <property name="linker.cfg.id.base" value="linker.cfg.linux.amd64" />
+ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/amd64" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.linux.ia64" if="isLinuxIA64">
+ <echo message="Linux.IA64" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.base" value="linker.cfg.linux" />
+ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/ia64" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.linux" depends="gluegen.cpptasks.declare.compiler.linux.x86,gluegen.cpptasks.declare.compiler.linux.amd64,gluegen.cpptasks.declare.compiler.linux.ia64" if="isLinux">
+ <property name="java.includes.dir.platform" value="${java.includes.dir}/linux" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.solaris32" if="isSolaris32Bit">
+ <echo message="Solaris" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.solaris" />
+ <property name="linker.cfg.id.base" value="linker.cfg.solaris" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.solaris.sparcv9" if="isSolarisSparcv9">
+ <echo message="SolarisSparcv9" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.solaris.sparcv9" />
+ <property name="linker.cfg.id.base" value="linker.cfg.solaris.sparcv9" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.solaris.amd64" if="isSolarisAMD64">
+ <echo message="SolarisAMD64" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.solaris.amd64" />
+ <property name="linker.cfg.id.base" value="linker.cfg.solaris.amd64" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.solaris" depends="gluegen.cpptasks.declare.compiler.solaris32,gluegen.cpptasks.declare.compiler.solaris.sparcv9,gluegen.cpptasks.declare.compiler.solaris.amd64" if="isSolaris">
+ <property name="java.includes.dir.platform" value="${java.includes.dir}/solaris" />
+ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/${solaris.cpu}" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.macosx" if="isOSX">
+ <echo message="MacOSX" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.macosx" />
+ <property name="linker.cfg.id.base" value="linker.cfg.macosx" />
+ <property name="java.includes.dir.platform" value="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers" />
+ <property name="java.lib.dir.platform" value="/System/Library/Frameworks/JavaVM.framework/Libraries" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.freebsd" if="isFreeBSD">
+ <echo message="FreeBSD" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.freebsd" />
+ <property name="linker.cfg.id.base" value="linker.cfg.linux" />
+ <property name="java.includes.dir.platform" value="${java.includes.dir}/freebsd" />
+ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/i386" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler.hpux" if="isHPUX">
+ <echo message="HP-UX" />
+ <property name="compiler.cfg.id.base" value="compiler.cfg.hpux" />
+ <property name="linker.cfg.id.base" value="linker.cfg.hpux" />
+ <property name="java.includes.dir.platform" value="${java.includes.dir}/hp-ux" />
+ <property name="java.lib.dir.platform" value="${java.home.dir}/jre/lib/PA_RISC2.0" />
+ </target>
+
+ <target name="gluegen.cpptasks.declare.compiler" depends="gluegen.cpptasks.declare.compiler.win32,gluegen.cpptasks.declare.compiler.linux,gluegen.cpptasks.declare.compiler.solaris,gluegen.cpptasks.declare.compiler.macosx,gluegen.cpptasks.declare.compiler.freebsd,gluegen.cpptasks.declare.compiler.hpux" unless="gluegen.compiler.present"/>
+
+ <target name="gluegen.cpptasks.setup.compiler" depends="gluegen.cpptasks.detect.compiler,gluegen.cpptasks.configure.compiler,gluegen.cpptasks.declare.compiler" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Helper macrodef for installing manifest in generated DLLs, needed for VC8 and later
+ -->
+ <macrodef name="msvc.manifest">
+ <attribute name="objdir" />
+ <attribute name="dllname" />
+ <sequential>
+ <exec executable="mt">
+ <arg value="-manifest"/>
+ <arg value="@{objdir}/@{dllname}.dll.manifest"/>
+ <arg value="-outputresource:@{objdir}/@{dllname}.dll;#2"/>
+ </exec>
+ </sequential>
+ </macrodef>
+</project>