1 <project name="UniTool" default="all" basedir=".">
2 <property environment="env" />
4 <!-- user configurable locations -->
5 <property name="destdir" value="" />
6 <property name="prefix" value="${env.HOME}/.usr" />
7 <property name="libdir" value="${prefix}/lib" />
8 <property name="datadir" value="${prefix}/share" />
9 <property name="libexecdir" value="${prefix}/libexec" />
10 <property name="sysconfdir" value="${prefix}/etc" />
11 <property name="pkgconfigdir" value="${libdir}/pkgconfig" />
12 <property name="java-runtime" value="java" />
13 <property name="JMETUX_CLASSPATH" value="${env.JMETUX_CLASSPATH}" />
15 <property name="script_prefix" value="${libexecdir}/unitool" />
16 <property name="script_pkg_config_fixup" value="${script_prefix}/pkg-config-fixup" />
17 <property name="script_run_unitool" value="${script_prefix}/run-unitool" />
18 <property name="script_run_libtool" value="${script_prefix}/run-libtool" />
20 <property name="version" value="0.1.2" />
22 <property name="src" value="." />
23 <property name="build" value=".build" />
24 <property name="build-lib" value="${build}/lib" />
25 <property name="build-tests" value="${build}/tests" />
26 <property name="jarfile" value="${build}/unitool.jar" />
27 <property name="pkgconfigfile" value="jar.unitool.pc" />
29 <property name="metux-runtime" value="${JMETUX_CLASSPATH}" />
30 <property name="unitool-runtime" value="${datadir}/unitool/unitool.jar" />
32 <property name="dest_unitool_dir" value="${destdir}${libexecdir}/unitool" />
33 <property name="dest_run_unitool" value="${dest_unitool_dir}/run-unitool" />
34 <property name="dest_run_libtool" value="${dest_unitool_dir}/run-libtool" />
35 <property name="dest_pkg_config_fixup" value="${dest_unitool_dir}/pkg-config-fixup" />
37 <target name="compile-base">
38 <mkdir dir="${build-lib}" />
39 <javac destdir="${build-lib}" srcdir="${src}/base" debug="on" classpath="${JMETUX_CLASSPATH}:." includeantruntime="false">
40 <include name="CCompilerParam.java"/>
41 <include name="Command.java"/>
42 <include name="EInstallFailed.java"/>
43 <include name="EMissingDBFile.java"/>
44 <include name="EParameterInvalid.java"/>
45 <include name="EParameterMissing.java"/>
46 <include name="EPkgConfigBrokenVariableReference.java"/>
47 <include name="EPkgConfigError.java"/>
48 <include name="EPkgConfigMissingProperty.java"/>
49 <include name="EPkgConfigParseError.java"/>
50 <include name="EPkgConfigUnhandledProperty.java"/>
51 <include name="EUnhandledCompilerFlag.java"/>
52 <include name="EUnitoolError.java"/>
53 <include name="EVersionSyntaxError.java"/>
54 <!-- <include name="Hacks.java"/> -->
55 <include name="InstallerParam.java"/>
56 <include name="LibraryInfo.java"/>
57 <include name="LinkerParam.java"/>
58 <include name="ManualPageInfo.java"/>
59 <include name="ObjectInfo.java"/>
60 <include name="PackageInfo.java"/>
61 <include name="ToolConfig.java"/>
62 <include name="ToolParam.java"/>
63 <include name="ToolType.java"/>
67 <target name="compile-db" depends="compile-base">
68 <mkdir dir="${build-lib}" />
69 <javac destdir="${build-lib}" srcdir="${src}/db" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
70 <include name="LibraryInfo.java"/>
71 <include name="LoadLibtool.java"/>
72 <include name="LoadLibtoolArchive.java"/>
73 <include name="LoadLibtoolObject.java"/>
74 <include name="LoadPkgConfig.java"/>
75 <include name="ObjectInfo.java"/>
76 <include name="PackageInfo.java"/>
77 <include name="QueryPkgConfig.java"/>
78 <include name="StoreLibtool.java"/>
79 <include name="StoreLibtoolArchive.java"/>
80 <include name="StoreLibtoolObject.java"/>
81 <include name="StorePkgConfig.java"/>
82 <include name="UnitoolConf.java"/>
86 <target name="compile-tools" depends="compile-base,compile-db">
87 <mkdir dir="${build-lib}" />
88 <javac destdir="${build-lib}" srcdir="${src}/tools" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
89 <include name="CCompiler.java"/>
90 <include name="Gcc_cmdline.java"/>
91 <include name="LD_cmdline.java"/>
92 <include name="LTLibraryInstaller.java"/>
93 <include name="LinkExecutable.java"/>
94 <include name="LinkSharedLibrary.java"/>
95 <include name="LinkStaticLibrary.java"/>
96 <include name="LinkerBase.java"/>
100 <target name="compile-unitool" depends="compile-base,compile-db">
101 <mkdir dir="${build-lib}" />
102 <javac destdir="${build-lib}" srcdir="${src}/unitool" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
103 <include name="Build.java"/>
104 <include name="Install.java"/>
105 <include name="Main.java"/>
106 <!-- <include name="PIBuild.java"/> -->
107 <include name="PkgConfigFixup.java"/>
108 <include name="Query.java"/>
109 <include name="Unitool.java"/>
113 <target name="compile-libtool" depends="compile-base,compile-db,compile-tools">
114 <mkdir dir="${build-lib}" />
115 <javac destdir="${build-lib}" srcdir="${src}/libtool" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
116 <include name="CmdCompile.java"/>
117 <include name="CmdInstall.java"/>
118 <include name="CmdLink.java"/>
119 <include name="Main.java"/>
123 <target name="${pkgconfigfile}">
124 <echo file="${pkgconfigfile}">
126 jarfile=${unitool-runtime}
127 classpath=${JMETUX_CLASSPATH}:${unitool-runtime}
128 script_prefix=${script_prefix}
129 script_pkg_config_fixup=${script_pkg_config_fixup}
130 script_run_unitool=${script_run_unitool}
131 script_run_libtool=${script_run_libtool}
133 Name: (jar) metux universal toolchain wrapper
134 Description: a platform-agnostic wrapper for calling toolchain commands
141 <target name="${jarfile}" depends="compile-base,compile-db,compile-tools,compile-unitool,compile-libtool">
142 <jar jarfile="${jarfile}" basedir="${build-lib}" />
145 <target name="compile" depends="${jarfile},${pkgconfigfile}" />
146 <target name="all" depends="compile" />
148 <target name="clean">
149 <delete dir="${build-tests}" />
150 <delete dir="${build-lib}" />
151 <delete dir="${build}" />
152 <delete file="${jarfile}" />
153 <delete file="${pkgconfigfile}" />
156 <target name="install" depends="compile,${pkgconfigfile}">
157 <mkdir dir="${destdir}${datadir}/unitool" />
158 <mkdir dir="${destdir}${libexecdir}/unitool" />
159 <copy file="${jarfile}" todir="${destdir}${datadir}/unitool" />
161 <!-- install the pkg-config-fixup script -->
162 <delete file="${dest_pkg_config_fixup}" />
163 <echo file="${dest_pkg_config_fixup}">#!/bin/bash
164 UNITOOL_PREFIX="${prefix}"
165 UNITOOL_JVM="${java-runtime}"
166 UNITOOL_MAIN="org.de.metux.unitool.unitool.Main"
168 export CLASSPATH="$CLASSPATH:${JMETUX_CLASSPATH}:${unitool-runtime}"
170 if [ ! "$SYSROOT" ]; then
171 echo "$0: Missing \$SYSROOT"
176 echo "Processing: $i"
177 $UNITOOL_JVM $UNITOOL_MAIN \
181 system-root "$SYSROOT" && mv "$i.out" "$i"
184 <chmod file="${dest_pkg_config_fixup}" perm="u=rwx,go=rx" />
186 <!-- install the run-unitool script -->
187 <delete file="${dest_run_unitool}" />
188 <echo file="${dest_run_unitool}">#!/bin/bash
189 UNITOOL_PREFIX="${prefix}"
190 UNITOOL_JVM="${java-runtime}"
191 UNITOOL_MAIN="org.de.metux.unitool.unitool.Main"
193 export CLASSPATH="$CLASSPATH:${JMETUX_CLASSPATH}:${unitool-runtime}"
194 $UNITOOL_JVM $UNITOOL_MAIN "$@"
196 <chmod file="${dest_run_unitool}" perm="u=rwx,go=rx" />
199 <!-- install the run-libtool script -->
200 <delete file="${dest_run_libtool}" />
201 <echo file="${dest_run_libtool}">#!/bin/bash
202 UNITOOL_PREFIX="${prefix}"
203 UNITOOL_JVM="${java-runtime}"
204 UNITOOL_MAIN="org.de.metux.unitool.libtool.Main"
206 export CLASSPATH="$CLASSPATH:${JMETUX_CLASSPATH}:${unitool-runtime}"
207 $UNITOOL_JVM $UNITOOL_MAIN "$@"
209 <chmod file="${dest_run_libtool}" perm="u=rwx,go=rx" />
211 <!-- install the pkgconfig descriptor -->
212 <mkdir dir="${destdir}${pkgconfigdir}" />
213 <copy file="${pkgconfigfile}" todir="${destdir}${pkgconfigdir}" />