aboutsummaryrefslogtreecommitdiffstats
path: root/build.xml
diff options
context:
space:
mode:
authorMichael Bien <[email protected]>2009-11-17 21:44:51 +0100
committerMichael Bien <[email protected]>2009-11-17 21:44:51 +0100
commit76d77bb135fb67fb88c269670c5daf5cccef01f4 (patch)
tree063480a941cbc3fcafc71886416e329a19a681f4 /build.xml
parent7bbc5099078df044ec7704cd04597932d6501ce9 (diff)
added win32/64 crosscompiler configuration (WIP).
Diffstat (limited to 'build.xml')
-rw-r--r--build.xml132
1 files changed, 45 insertions, 87 deletions
diff --git a/build.xml b/build.xml
index 96bf8ebf..b483e3f4 100644
--- a/build.xml
+++ b/build.xml
@@ -9,7 +9,7 @@
<property name="gluegen.root" value="${basedir}/../gluegen" />
<property name="jogl.root" value="${basedir}/../jogl" />
-
+
<property name="etc.build.dir" value="${basedir}/etc/build" />
<property name="headers.dest" value="${basedir}/resources/includes/CL" />
@@ -68,7 +68,7 @@
<!--compile build utilities-->
<mkdir dir="${etc.build.dir}"/>
-
+
<javac destdir="${etc.build.dir}" classpath="${ant.core.lib}" source="1.5" debug="true" debuglevel="lines,vars,source">
<src path="${basedir}/etc/src"/>
</javac>
@@ -83,9 +83,9 @@
<target name="c.compile.default" depends="gluegen.cpptasks.detect.os, c.compile" />
- <!-- crosscompiles to other platforms TODO: win32, win64 -->
- <target name="cross-compile-on-linux64" if="crosscompile">
-
+ <!-- crosscompiles to other platforms, requirement: linux64 host os -->
+ <target name="cross-compile-on-linux64" if="crosscompile" depends="init">
+
<echo message=" - - - cross-compiling JOCL natives - - - "/>
<antcall target="c.compile" inheritall="false">
@@ -108,21 +108,39 @@
<param name="isX11" value="true"/>
</antcall>
-<!--
+ <!-- TODO remove hardcoded path -->
+ <property name="java.includes.dir.windows" value="/media/store/JOCLSetup/win32"/>
+
+ <!-- use mingw crosscompiler to compile for win32 and win64 (linux64 only) -->
<antcall target="c.compile" inheritall="false">
- <param name="namespace" value="win-x86"/>
+ <param name="namespace" value="linux-amd64"/>
<param name="crosscompile" value="true"/>
<param name="build.dir" value="${build.dir}"/>
- <param name="isWindows" value="true"/>
+ <param name="isLinuxAMD64" value="true"/>
+ <param name="isLinux" value="true"/>
+ <param name="isUnix" value="true"/>
+ <param name="isX11" value="true"/>
+
+ <!-- overwrite -->
+ <param name="java.includes.dir.platform" value="${java.includes.dir.windows}"/>
+ <param name="compiler.cfg.id" value="compiler.cfg.linux64.mingw64"/>
+ <param name="linker.cfg.id" value="linker.cfg.linux64.mingw64.jocl"/>
</antcall>
-
+
<antcall target="c.compile" inheritall="false">
- <param name="namespace" value="win-amd64"/>
+ <param name="namespace" value="linux-x86"/>
<param name="crosscompile" value="true"/>
<param name="build.dir" value="${build.dir}"/>
- <param name="isWindows" value="true"/>
+ <param name="isLinuxX86" value="true"/>
+ <param name="isLinux" value="true"/>
+ <param name="isUnix" value="true"/>
+ <param name="isX11" value="true"/>
+
+ <!-- overwrite -->
+ <param name="java.includes.dir.platform" value="${java.includes.dir.windows}"/>
+ <param name="compiler.cfg.id" value="compiler.cfg.linux64.mingw32"/>
+ <param name="linker.cfg.id" value="linker.cfg.linux64.mingw32.jocl"/>
</antcall>
--->
<echo message=" - - - JOCL natives cross-compiled - - - "/>
@@ -166,7 +184,7 @@
<linker extends="${linker.cfg.id}"/>
</cc>
-
+
<echo message=" - - - JOCL natives compiled - - - "/>
</target>
@@ -189,12 +207,10 @@
<!-- linker configuration -->
<target name="jocl.configure.linker">
<linker id="linker.cfg.linux.jocl" extends="linker.cfg.linux">
- <syslibset dir="${basedir}/lib/OpenCL/linux/x86" libs="OpenCL" if="crosscompile"/>
<syslibset dir="/usr/lib" libs="OpenCL"/>
</linker>
<linker id="linker.cfg.linux.amd64.jocl" extends="linker.cfg.linux.amd64" >
- <syslibset dir="${basedir}/lib/OpenCL/linux/amd64" libs="OpenCL" if="crosscompile"/>
<syslibset dir="/usr/lib" libs="OpenCL"/>
</linker>
@@ -207,20 +223,28 @@
<linkerarg value="-framework" />
<linkerarg value="OpenCL" />
</linker>
+
+ <linker id="linker.cfg.linux64.mingw64.jocl" extends="linker.cfg.linux64.mingw64">
+ <syslibset dir="${basedir}/lib/OpenCL/linux/amd64" libs="OpenCL"/>
+ </linker>
+
+ <linker id="linker.cfg.linux64.mingw32.jocl" extends="linker.cfg.linux64.mingw32">
+ <syslibset dir="${basedir}/lib/OpenCL/linux/x86" libs="OpenCL"/>
+ </linker>
</target>
<!-- configure for current platform -->
<target name="c.configure.default" depends="c.configure.os" />
- <target name="c.configure.os" depends="c.configure.win32, c.configure.linux, c.configure.macosx" />
- <target name="c.configure.win32" depends="c.configure.win32.mingw" if="isWindows" />
- <target name="c.configure.linux" depends="c.configure.linux.x86, c.configure.linux.amd64, c.configure.linux.ia64" if="isLinux" />
+ <target name="c.configure.os" depends="c.configure.win, c.configure.linux, c.configure.macosx" />
+ <target name="c.configure.win" depends="c.configure.win.mingw" if="isWindows" />
+ <target name="c.configure.linux" depends="c.configure.linux.x86, c.configure.linux.amd64" if="isLinux" />
- <target name="c.configure.win32.mingw" if="isMingW">
- <echo message="Win32.MingW" />
+ <target name="c.configure.win.mingw" if="isMingW">
+ <echo message="Win.MingW" />
<property name="compiler.cfg.id" value="${compiler.cfg.id.base}" />
<property name="linker.cfg.id" value="linker.cfg.win32.mingw.jocl" />
</target>
- <target name="c.configure.linux.x86" if="isLinuxX86">
+ <target name="c.configure.linux.x86" if="isLinuxX86">
<echo message="Linux.x86" />
<property name="compiler.cfg.id" value="${compiler.cfg.id.base}" />
<property name="linker.cfg.id" value="linker.cfg.linux.jocl" />
@@ -230,11 +254,6 @@
<property name="compiler.cfg.id" value="${compiler.cfg.id.base}" />
<property name="linker.cfg.id" value="linker.cfg.linux.amd64.jocl" />
</target>
- <target name="c.configure.linux.ia64" if="isLinuxIA64">
- <echo message="Linux.IA64" />
- <property name="compiler.cfg.id" value="${compiler.cfg.id.base}" />
- <property name="linker.cfg.id" value="linker.cfg.linux.jocl" />
- </target>
<target name="c.configure.macosx" if="isOSX">
<echo message="MacOS" />
<property name="compiler.cfg.id" value="${compiler.cfg.id.base}" />
@@ -272,65 +291,4 @@
</target>
- <!--
-
- There exist several targets which are by default empty and which can be
- used for execution of your tasks. These targets are usually executed
- before and after some main targets. They are:
-
- -pre-init: called before initialization of project properties
- -post-init: called after initialization of project properties
- -pre-compile: called before javac compilation
- -post-compile: called after javac compilation
- -pre-compile-single: called before javac compilation of single file
- -post-compile-single: called after javac compilation of single file
- -pre-compile-test: called before javac compilation of JUnit tests
- -post-compile-test: called after javac compilation of JUnit tests
- -pre-compile-test-single: called before javac compilation of single JUnit test
- -post-compile-test-single: called after javac compilation of single JUunit test
- -pre-jar: called before JAR building
- -post-jar: called after JAR building
- -post-clean: called after cleaning build products
-
- (Targets beginning with '-' are not intended to be called on their own.)
-
- Example of inserting an obfuscator after compilation could look like this:
-
- <target name="-post-compile">
- <obfuscate>
- <fileset dir="${build.classes.dir}"/>
- </obfuscate>
- </target>
-
- For list of available properties check the imported
- nbproject/build-impl.xml file.
-
-
- Another way to customize the build is by overriding existing main targets.
- The targets of interest are:
-
- -init-macrodef-javac: defines macro for javac compilation
- -init-macrodef-junit: defines macro for junit execution
- -init-macrodef-debug: defines macro for class debugging
- -init-macrodef-java: defines macro for class execution
- -do-jar-with-manifest: JAR building (if you are using a manifest)
- -do-jar-without-manifest: JAR building (if you are not using a manifest)
- run: execution of project
- -javadoc-build: Javadoc generation
- test-report: JUnit report generation
-
- An example of overriding the target for project execution could look like this:
-
- <target name="run" depends="JOCL-impl.jar">
- <exec dir="bin" executable="launcher.exe">
- <arg file="${dist.jar}"/>
- </exec>
- </target>
-
- Notice that the overridden target depends on the jar target and not only on
- the compile target as the regular run target does. Again, for a list of available
- properties which you can use, check the target you are overriding in the
- nbproject/build-impl.xml file.
-
- -->
</project> \ No newline at end of file