pkg-config file now has script pathes
[unitool.git] / build.xml
blob5872db5651fba5192c8ba8fe722db67de29cc3c0
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"/>
64         </javac>
65     </target>
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"/>
83         </javac>
84     </target>
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"/>
97         </javac>
98     </target>
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"/>
110         </javac>
111     </target>
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"/>
120         </javac>
121     </target>
123     <target name="${pkgconfigfile}">
124 <echo file="${pkgconfigfile}">
125 prefix=${prefix}
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
135 Version: ${version}
136 Libs:
137 Cflags:
138 </echo>
139     </target>
141     <target name="${jarfile}" depends="compile-base,compile-db,compile-tools,compile-unitool,compile-libtool">
142         <jar jarfile="${jarfile}" basedir="${build-lib}" />
143     </target>
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}" />
154     </target>
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"
172     exit;
175 for i in $* ; do 
176     echo "Processing: $i"
177     $UNITOOL_JVM $UNITOOL_MAIN          \
178         --pkgconfig-fixup               \
179         source "$i"                     \
180         output "$i.out"                 \
181         system-root "$SYSROOT"  &amp;&amp; mv "$i.out" "$i"
182 done
183         </echo>
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 "$@"
195         </echo>
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 "$@"
208         </echo>
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}" />
215     </target>
217 </project>