summaryrefslogtreecommitdiffstats
path: root/make/gluegen-cpptasks.xml
diff options
context:
space:
mode:
Diffstat (limited to 'make/gluegen-cpptasks.xml')
-rwxr-xr-xmake/gluegen-cpptasks.xml170
1 files changed, 170 insertions, 0 deletions
diff --git a/make/gluegen-cpptasks.xml b/make/gluegen-cpptasks.xml
index 0c1e39d..6ea364e 100755
--- a/make/gluegen-cpptasks.xml
+++ b/make/gluegen-cpptasks.xml
@@ -54,6 +54,36 @@
- isVC8_X64
- isVC8Family (= isVC8 || isVC8_X64)
- isMingW
+ -
+ - The gluegen.cpptasks.configure.compiler 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
-->
<project name="GlueGen-cpptasks" basedir=".">
<!-- import cpptasks -->
@@ -226,4 +256,144 @@
<!-- 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>
+
+ <target name="gluegen.cpptasks.configure.compiler">
+ <!-- compiler configuration -->
+ <compiler id="compiler.cfg.linux" name="gcc" />
+
+ <compiler id="compiler.cfg.linux.amd64" name="gcc">
+ <compilerarg value="-fPIC"/>
+ </compiler>
+
+ <compiler id="compiler.cfg.solaris" name="suncc">
+ </compiler>
+
+ <compiler id="compiler.cfg.solaris.sparcv9" name="suncc">
+ <compilerarg value="-fast" />
+ <compilerarg value="-xchip=ultra" />
+ <compilerarg value="-xarch=v9a" />
+ <compilerarg value="-xcode=32" />
+ </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" /> -->
+ </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_" />
+ </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 -->
+
+ <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" if="macosxfat"/>
+ <compilerarg value="ppc" if="macosxfat"/>
+ <compilerarg value="-arch" if="macosxfat"/>
+ <compilerarg value="i386" if="macosxfat"/>
+ <compilerarg value="-Wmost" />
+ <compilerarg value="-ObjC" />
+ <defineset>
+ <define name="macosx" />
+ </defineset>
+ </compiler>
+
+ <compiler id="compiler.cfg.freebsd" name="gcc">
+ </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) -->
+ </linker>
+
+ <linker id="linker.cfg.macosx" name="gcc">
+ <linkerarg value="-arch" if="macosxfat"/>
+ <linkerarg value="ppc" if="macosxfat"/>
+ <linkerarg value="-arch" if="macosxfat"/>
+ <linkerarg value="i386" if="macosxfat"/>
+ </linker>
+
+ <linker id="linker.cfg.hpux" name="aCC">
+ </linker>
+ </target>
+
</project>