Mercurial > hg > tema
changeset 14:992793931a2f
Add dist.native task (compiles Tema to native code).
author | Mikhail Kryshen <mikhail@kryshen.net> |
---|---|
date | Tue, 24 Mar 2009 17:57:28 +0300 |
parents | ac5f1bc82b13 |
children | e9d13c7ffeb1 |
files | build.xml compile-native |
diffstat | 2 files changed, 37 insertions(+), 20 deletions(-) [+] |
line diff
1.1 --- a/build.xml Tue Mar 24 16:00:55 2009 +0300 1.2 +++ b/build.xml Tue Mar 24 17:57:28 2009 +0300 1.3 @@ -10,11 +10,15 @@ 1.4 <property name="doc" value="doc"/> 1.5 <property name="lib" value="${dist}/lib"/> 1.6 <property name="jar_file" value="tema.jar"/> 1.7 + <property name="native_file" value="tema"/> 1.8 + <property name="main_class" value="kryshen.tema.Tema"/> 1.9 + <property name="task_class" value="kryshen.tema.ant.TemaTask"/> 1.10 1.11 <property name="ant_jar" value="/usr/share/java/ant.jar"/> 1.12 + <property name="gcj" value="gcj"/> 1.13 1.14 <path id="project.libs"> 1.15 - <fileset dir="${lib}"> 1.16 + <fileset id="project.libs.fileset" dir="${lib}"> 1.17 <include name="**/*.jar"/> 1.18 </fileset> 1.19 </path> 1.20 @@ -36,16 +40,39 @@ 1.21 <fileset dir="${res}"/> 1.22 </copy> 1.23 </target> 1.24 - 1.25 + 1.26 <target name="dist" depends="compile"> 1.27 <jar jarfile="${dist}/${jar_file}" manifest="${src}/Manifest.mf"> 1.28 <fileset dir="${build}" includes="**/*.class"/> 1.29 <fileset dir="${build}" includes="**/*.template"/> 1.30 </jar> 1.31 </target> 1.32 - 1.33 + 1.34 + <target name="dist.native" depends="compile"> 1.35 + <property name="demo_template" value="kryshen/tema/demo/demo.template"/> 1.36 + 1.37 + <exec executable="${gcj}"> 1.38 + <arg value="-c"/> 1.39 + <arg value="-o"/> 1.40 + <arg value="${build}/${demo_template}.o" /> 1.41 + <arg value="--resource" /> 1.42 + <arg value="${demo_template}" /> 1.43 + <arg value="${build}/${demo_template}" /> 1.44 + </exec> 1.45 + 1.46 + <apply executable="${gcj}" parallel="true"> 1.47 + <fileset dir="${build}" 1.48 + includes="**/*.class **/*.o" 1.49 + excludes="kryshen/tema/ant/**"/> 1.50 + <fileset refid="project.libs.fileset"/> 1.51 + <arg value="--main=${main_class}"/> 1.52 + <arg value="-o"/> 1.53 + <arg value="${dist}/${native_file}"/> 1.54 + </apply> 1.55 + </target> 1.56 + 1.57 <target name="run" depends="compile"> 1.58 - <java classname="kryshen.tema.Tema" fork="true"> 1.59 + <java classname="${main_class}" fork="true"> 1.60 <classpath> 1.61 <pathelement location="${build}"/> 1.62 <path refid="project.libs"/> 1.63 @@ -54,7 +81,7 @@ 1.64 </target> 1.65 1.66 <target name="run.demo" depends="compile"> 1.67 - <java classname="kryshen.tema.Tema" fork="true"> 1.68 + <java classname="${main_class}" fork="true"> 1.69 <classpath> 1.70 <pathelement location="${build}"/> 1.71 <path refid="project.libs"/> 1.72 @@ -65,7 +92,7 @@ 1.73 1.74 <target name="doc.manual" depends="dist"> 1.75 <taskdef name="tema" 1.76 - classname="kryshen.tema.ant.TemaTask" 1.77 + classname="${task_class}" 1.78 classpath="${dist}/tema.jar"/> 1.79 1.80 <tema infile="${doc}/manual/manual.tema" 1.81 @@ -88,17 +115,20 @@ 1.82 compression="gzip"> 1.83 <tarfileset dir="${basedir}" 1.84 prefix="${ant.project.name}-${version}"> 1.85 + <exclude name=".hg/**"/> 1.86 + <exclude name=".hg*"/> 1.87 <exclude name="${build}/**"/> 1.88 <exclude name="misc/**"/> 1.89 <exclude name="test/**"/> 1.90 <exclude name="nbproject/**"/> 1.91 <exclude name="${dist}/${ant.project.name}-*.tar.gz"/> 1.92 <exclude name="${dist}/tema"/> 1.93 + <exclude name="${dist}/tema.sh"/> 1.94 </tarfileset> 1.95 <tarfileset dir="${basedir}" 1.96 prefix="${ant.project.name}-${version}" 1.97 mode="755"> 1.98 - <include name="${dist}/tema"/> 1.99 + <include name="${dist}/tema.sh"/> 1.100 </tarfileset> 1.101 </tar> 1.102 </target>
2.1 --- a/compile-native Tue Mar 24 16:00:55 2009 +0300 2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 2.3 @@ -1,13 +0,0 @@ 2.4 -#!/bin/sh 2.5 -# 2.6 -# Compile Tema to native code using GCJ. 2.7 -# 2.8 - 2.9 -ant compile 2.10 - 2.11 -compile_classes=$(find build -name '*.class' | grep -v tema/ant) 2.12 - 2.13 -gcj -o build/demo.template.o -c --resource kryshen/tema/demo/demo.template build/kryshen/tema/demo/demo.template 2.14 -gcj -g --main=kryshen.tema.Tema -o dist/tema dist/lib/commons-cli-1.1.jar $compile_classes build/demo.template.o 2.15 - 2.16 -rm build/demo.template.o