diff options
Diffstat (limited to 'make')
-rwxr-xr-x | make/build.xml | 134 | ||||
-rwxr-xr-x | make/gluegen-cpptasks.xml | 170 |
2 files changed, 171 insertions, 133 deletions
diff --git a/make/build.xml b/make/build.xml index d44db60..3048907 100755 --- a/make/build.xml +++ b/make/build.xml @@ -297,139 +297,7 @@ <property name="gluegen.rt.natives.dso" value="libgluegen-rt.so" /> </target> - <target name="c.configure" depends="gluegen.cpptasks.detect.os,gluegen.cpptasks.detect.compiler,setup.java.home.dir,declare.win32,declare.linux,declare.solaris,declare.macosx,declare.freebsd,declare.hpux" unless="build.javaonly" > - <!-- 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.solarisSparcv9" name="suncc"> - <compilerarg value="-fast" /> - <compilerarg value="-xchip=ultra" /> - <compilerarg value="-xarch=v9a" /> - <compilerarg value="-xcode=32" /> - </compiler> - - <compiler id="compiler.cfg.solarisAMD64" 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 "_DEBUG" - Optimized: /MD /W3 /O2 /Ob1 /GF /EHsc /GS /Gy /Wp64 /D "NDEBUG" --> - <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 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 id="linker.cfg.linux.amd64" name="gcc" /> - - <linker id="linker.cfg.solaris" name="suncc" /> - - <linker id="linker.cfg.solarisSparcv9" name="suncc"> - <linkerarg value="-xarch=v9a" /> - </linker> - - <linker id="linker.cfg.solarisAMD64" 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" /> - + <target name="c.configure" depends="gluegen.cpptasks.detect.os,gluegen.cpptasks.detect.compiler,setup.java.home.dir,declare.win32,declare.linux,declare.solaris,declare.macosx,declare.freebsd,declare.hpux,gluegen.cpptasks.configure.compiler" unless="build.javaonly" > <!-- Common properties --> <property name="java.includes.dir" value="${java.home.dir}/include" /> <!-- NOTE: this MUST be relative for FileSet --> 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 "_DEBUG" + Optimized: /MD /W3 /O2 /Ob1 /GF /EHsc /GS /Gy /Wp64 /D "NDEBUG" --> + <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> |