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="version" value="0.1.2" />
17 <property name="src" value="." />
18 <property name="build" value=".build" />
19 <property name="build-lib" value="${build}/lib" />
20 <property name="build-tests" value="${build}/tests" />
21 <property name="jarfile" value="${build}/unitool.jar" />
22 <property name="pkgconfigfile" value="jar.unitool.pc" />
24 <property name="metux-runtime" value="${JMETUX_CLASSPATH}" />
25 <property name="unitool-runtime" value="${datadir}/unitool/unitool.jar" />
27 <property name="dest_unitool_dir" value="${destdir}${libexecdir}/unitool" />
28 <property name="dest_run_unitool" value="${dest_unitool_dir}/run-unitool" />
29 <property name="dest_run_libtool" value="${dest_unitool_dir}/run-libtool" />
30 <property name="dest_pkg_config_fixup" value="${dest_unitool_dir}/pkg-config-fixup" />
32 <target name="compile-base">
33 <mkdir dir="${build-lib}" />
34 <javac destdir="${build-lib}" srcdir="${src}/base" debug="on" classpath="${JMETUX_CLASSPATH}:." includeantruntime="false">
35 <include name="CCompilerParam.java"/>
36 <include name="Command.java"/>
37 <include name="EInstallFailed.java"/>
38 <include name="EMissingDBFile.java"/>
39 <include name="EParameterInvalid.java"/>
40 <include name="EParameterMissing.java"/>
41 <include name="EPkgConfigBrokenVariableReference.java"/>
42 <include name="EPkgConfigError.java"/>
43 <include name="EPkgConfigMissingProperty.java"/>
44 <include name="EPkgConfigParseError.java"/>
45 <include name="EPkgConfigUnhandledProperty.java"/>
46 <include name="EUnhandledCompilerFlag.java"/>
47 <include name="EUnitoolError.java"/>
48 <include name="EVersionSyntaxError.java"/>
49 <!-- <include name="Hacks.java"/> -->
50 <include name="InstallerParam.java"/>
51 <include name="LibraryInfo.java"/>
52 <include name="LinkerParam.java"/>
53 <include name="ManualPageInfo.java"/>
54 <include name="ObjectInfo.java"/>
55 <include name="PackageInfo.java"/>
56 <include name="ToolConfig.java"/>
57 <include name="ToolParam.java"/>
58 <include name="ToolType.java"/>
62 <target name="compile-db" depends="compile-base">
63 <mkdir dir="${build-lib}" />
64 <javac destdir="${build-lib}" srcdir="${src}/db" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
65 <include name="LibraryInfo.java"/>
66 <include name="LoadLibtool.java"/>
67 <include name="LoadLibtoolArchive.java"/>
68 <include name="LoadLibtoolObject.java"/>
69 <include name="LoadPkgConfig.java"/>
70 <include name="ObjectInfo.java"/>
71 <include name="PackageInfo.java"/>
72 <include name="QueryPkgConfig.java"/>
73 <include name="StoreLibtool.java"/>
74 <include name="StoreLibtoolArchive.java"/>
75 <include name="StoreLibtoolObject.java"/>
76 <include name="StorePkgConfig.java"/>
77 <include name="UnitoolConf.java"/>
81 <target name="compile-tools" depends="compile-base,compile-db">
82 <mkdir dir="${build-lib}" />
83 <javac destdir="${build-lib}" srcdir="${src}/tools" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
84 <include name="CCompiler.java"/>
85 <include name="Gcc_cmdline.java"/>
86 <include name="LD_cmdline.java"/>
87 <include name="LTLibraryInstaller.java"/>
88 <include name="LinkExecutable.java"/>
89 <include name="LinkSharedLibrary.java"/>
90 <include name="LinkStaticLibrary.java"/>
91 <include name="LinkerBase.java"/>
95 <target name="compile-unitool" depends="compile-base,compile-db">
96 <mkdir dir="${build-lib}" />
97 <javac destdir="${build-lib}" srcdir="${src}/unitool" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
98 <include name="Build.java"/>
99 <include name="Install.java"/>
100 <include name="Main.java"/>
101 <!-- <include name="PIBuild.java"/> -->
102 <include name="PkgConfigFixup.java"/>
103 <include name="Query.java"/>
104 <include name="Unitool.java"/>
108 <target name="compile-libtool" depends="compile-base,compile-db,compile-tools">
109 <mkdir dir="${build-lib}" />
110 <javac destdir="${build-lib}" srcdir="${src}/libtool" debug="on" classpath="${JMETUX_CLASSPATH}:${build-lib}:." includeantruntime="false">
111 <include name="CmdCompile.java"/>
112 <include name="CmdInstall.java"/>
113 <include name="CmdLink.java"/>
114 <include name="Main.java"/>
118 <target name="${pkgconfigfile}">
119 <echo file="${pkgconfigfile}">
121 jarfile=${unitool-runtime}
122 classpath=${JMETUX_CLASSPATH}:${unitool-runtime}
124 Name: (jar) metux universal toolchain wrapper
125 Description: a platform-agnostic wrapper for calling toolchain commands
132 <target name="${jarfile}" depends="compile-base,compile-db,compile-tools,compile-unitool,compile-libtool">
133 <jar jarfile="${jarfile}" basedir="${build-lib}" />
136 <target name="compile" depends="${jarfile}" />
137 <target name="all" depends="compile" />
139 <target name="clean">
140 <delete dir="${build-tests}" />
141 <delete dir="${build-lib}" />
142 <delete dir="${build}" />
143 <delete file="${jarfile}" />
144 <delete file="${pkgconfigfile}" />
147 <target name="install" depends="compile,${pkgconfigfile}">
148 <mkdir dir="${destdir}${datadir}/unitool" />
149 <mkdir dir="${destdir}${libexecdir}/unitool" />
150 <copy file="${jarfile}" todir="${destdir}${datadir}/unitool" />
152 <!-- install the pkg-config-fixup script -->
153 <delete file="${dest_pkg_config_fixup}" />
154 <echo file="${dest_pkg_config_fixup}">#!/bin/bash
155 UNITOOL_PREFIX="${prefix}"
156 UNITOOL_JVM="${java-runtime}"
157 UNITOOL_MAIN="org.de.metux.unitool.unitool.Main"
159 export CLASSPATH="$CLASSPATH:${JMETUX_CLASSPATH}:${unitool-runtime}"
161 if [ ! "$SYSROOT" ]; then
162 echo "$0: Missing \$SYSROOT"
167 echo "Processing: $i"
168 $UNITOOL_JVM $UNITOOL_MAIN \
172 system-root "$SYSROOT" && mv "$i.out" "$i"
175 <chmod file="${dest_pkg_config_fixup}" perm="u=rwx,go=rx" />
177 <!-- install the run-unitool script -->
178 <delete file="${dest_run_unitool}" />
179 <echo file="${dest_run_unitool}">#!/bin/bash
180 UNITOOL_PREFIX="${prefix}"
181 UNITOOL_JVM="${java-runtime}"
182 UNITOOL_MAIN="org.de.metux.unitool.unitool.Main"
184 export CLASSPATH="$CLASSPATH:${JMETUX_CLASSPATH}:${unitool-runtime}"
185 $UNITOOL_JVM $UNITOOL_MAIN "$@"
187 <chmod file="${dest_run_unitool}" perm="u=rwx,go=rx" />
190 <!-- install the run-libtool script -->
191 <delete file="${dest_run_libtool}" />
192 <echo file="${dest_run_libtool}">#!/bin/bash
193 UNITOOL_PREFIX="${prefix}"
194 UNITOOL_JVM="${java-runtime}"
195 UNITOOL_MAIN="org.de.metux.unitool.libtool.Main"
197 export CLASSPATH="$CLASSPATH:${JMETUX_CLASSPATH}:${unitool-runtime}"
198 $UNITOOL_JVM $UNITOOL_MAIN "$@"
200 <chmod file="${dest_run_libtool}" perm="u=rwx,go=rx" />
202 <!-- install the pkgconfig descriptor -->
203 <mkdir dir="${destdir}${pkgconfigdir}" />
204 <copy file="${pkgconfigfile}" todir="${destdir}${pkgconfigdir}" />