From: Giovanni Mascellani <gio@debian.org>
Subject: Adjustments to the ant build file
Forwarded: not-needed
Last-Update: 2011-08-07

Adjustements to the ant build.xml files, mainly to use system-provided
JARs and not depend on Internet connection.

---
 build.xml      |   45 +++++++++++++++++++++------------------------
 i18n/build.xml |   33 ++++++++++++++++-----------------
 2 files changed, 37 insertions(+), 41 deletions(-)

--- josm.orig/build.xml
+++ josm/build.xml
@@ -15,6 +15,7 @@
     <property name="build.dir" location="build"/>
     <property name="javacc.home" location="tools"/>
     <property name="mapcss.dir" location="${src.dir}/org/openstreetmap/josm/gui/mappaint/mapcss"/>
+    <property name="antcontrib.jar" value="/usr/share/java/ant-contrib.jar"/>
     <!-- build parameter: compression level (ant -Dclevel=N)
              N ranges from 0 (no compression) to 9 (maximum compression)
              default: 9 -->
@@ -23,10 +24,16 @@
     </condition>
     <!-- Java classpath addition (all jar files to compile tests with this) -->
     <path id="classpath">
-        <fileset dir="lib">
-            <include name="**/*.jar"/>
+		<fileset dir="/usr/share/java">
+			<include name="gettext-commons.jar"/>
+			<include name="metadata-extractor.jar"/>
+			<include name="svgSalamander.jar"/>
+			<include name="signpost-core.jar"/>
+			<include name="ant.jar"/>
+			<include name="commons-codec.jar"/>
         </fileset>
     </path>
+    <property name="classpathprop-colon" refid="classpath"/>
 
     <!--
 	  ** Used by Eclipse ant builder for updating
@@ -41,14 +48,7 @@
 	  -->
     <target name="create-revision">
         <property name="revision.dir" value="${build.dir}"/>
-        <exec append="false" output="REVISION.XML" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="info"/>
-            <arg value="--xml"/>
-            <arg value="."/>
-        </exec>
-        <xmlproperty file="REVISION.XML" prefix="version" keepRoot="false" collapseAttributes="true"/>
-        <delete file="REVISION.XML"/>
+        <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
         <tstamp>
             <format property="build.tstamp" pattern="yyyy-MM-dd HH:mm:ss"/>
         </tstamp>
@@ -59,31 +59,29 @@
 Revision: ${version.entry.commit.revision}
 Is-Local-Build: true
 Build-Date: ${build.tstamp}
+Debian-Release: ${debian.version}
 </echo>
     </target>
     <target name="dist" depends="compile,create-revision">
-        <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="info"/>
-            <arg value="--xml"/>
-            <arg value="."/>
-        </exec>
         <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
-        <delete file="REVISION"/>
         <property name="version.entry.commit.revision" value="UNKNOWN"/>
         <property name="version.entry.commit.date" value="UNKNOWN"/>
         <echo>Revision ${version.entry.commit.revision}</echo>
         <copy file="CONTRIBUTION" todir="build"/>
         <copy file="README" todir="build"/>
         <copy file="LICENSE" todir="build"/>
+
         <!-- create josm-custom.jar -->
-        <delete file="dist/josm-custom.jar"/>
+        <propertyregex property="classpathprop" input="${classpathprop-colon}" global="true"
+          regexp=":" replace=" "/>
         <jar destfile="dist/josm-custom.jar" basedir="build" level="${clevel}">
             <!-- add attribute excludes="**/*BZip2*,**/*Bzip2*" to create a non-bzip2 supporting jar -->
             <manifest>
                 <attribute name="Main-class" value="JOSM"/>
                 <attribute name="Main-Version" value="${version.entry.commit.revision} SVN"/>
                 <attribute name="Main-Date" value="${version.entry.commit.date}"/>
+				<attribute name="Debian-Release" value="${debian.version}"/>
+				<attribute name="Class-Path" value="${classpathprop}"/>
             </manifest>
             <zipfileset dir="images" prefix="images"/>
             <zipfileset dir="data" prefix="data"/>
@@ -109,25 +107,23 @@ Build-Date: ${build.tstamp}
     </target>
     <target name="javacc">
         <mkdir dir="${mapcss.dir}/parsergen"/>
-        <exec append="false" executable="java" failifexecutionfails="true">
-            <arg value="-cp"/>
-            <arg value="${javacc.home}/javacc.jar"/>
-            <arg value="javacc"/>
+        <exec append="false" executable="javacc" failifexecutionfails="true">
             <arg value="-OUTPUT_DIRECTORY=${mapcss.dir}/parsergen"/>
             <arg value="${mapcss.dir}/MapCSSParser.jj"/>
         </exec>
 <!--        <javacc target="${mapcss.dir}/MapCSSParser.jj" javacchome="${javacc.home}" outputdirectory="${mapcss.dir}/parsergen"/>-->
     </target>
     <target name="compile" depends="javacc,init">
-        <javac srcdir="src" includes="com/**,oauth/**,org/apache/commons/codec/**" destdir="build" target="1.5" source="1.5" debug="on" encoding="iso-8859-1"/>
-        <javac srcdir="src" excludes="com/**,oauth/**,org/apache/commons/codec/**" destdir="build" target="1.5" source="1.5" debug="on" encoding="UTF-8">
+        <javac srcdir="src" classpathref="classpath" excludes="com/**,oauth/**,org/apache/**" destdir="build" target="1.5" source="1.5" debug="on" encoding="UTF-8">
             <compilerarg value="-Xlint:deprecation"/>
             <compilerarg value="-Xlint:unchecked"/>
         </javac>
+        <ant target="build" dir="i18n"/>
     </target>
     <target name="init">
         <mkdir dir="build"/>
         <mkdir dir="dist"/>
+        <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${antcontrib.jar}"/>
     </target>
     <target name="javadoc">
         <javadoc destdir="javadoc" 
@@ -146,6 +142,7 @@ Build-Date: ${build.tstamp}
         <delete dir="build"/>
         <delete dir="dist"/>
         <delete dir="${mapcss.dir}/parsergen"/>
+        <ant target="clean" dir="i18n"/>
     </target>
     <path id="test.classpath">
         <fileset dir="${test.dir}/lib">
--- josm.orig/i18n/build.xml
+++ josm/i18n/build.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <project name="JOSM i18n" default="build" basedir=".">
     <!-- compilation properties -->
-    <property name="josm.build.dir" value="../core"/>
+    <property name="josm.build.dir" value=".."/>
     <property name="josm.presets" value="${josm.build.dir}/data/defaultpresets.xml"/>
     <property name="josm.style" value="${josm.build.dir}/styles/standard/elemstyles.xml"/>
     <property name="plugin.dir" value="../plugins"/>
@@ -12,8 +12,8 @@
     <property name="i18n.install.dir" value="${josm.build.dir}/data"/>
     <property name="po.build.dir" value="${i18n.build.dir}"/>
     <property name="ant.build.javac.target" value="1.5"/>
-    <property name="gettexttasks.jar" value="lib/gettext-ant-tasks-0.9.7.jar"/>
-    <property name="antcontrib.jar" value="lib/ant-contrib-1.0b3.jar"/>
+    <property name="gettexttasks.jar" value="/usr/share/java/gettext-ant-tasks.jar"/>
+    <property name="antcontrib.jar" value="/usr/share/java/ant-contrib.jar"/>
     <target name="init" description="Loads the Ant gettext and contrib tasks">
         <taskdef name="gettext-extract" classname="org.xnap.commons.ant.gettext.GettextExtractKeysTask" classpath="${gettexttasks.jar}"/>
         <taskdef name="gettext-merge" classname="org.xnap.commons.ant.gettext.GettextMergeKeysTask" classpath="${gettexttasks.jar}"/>
@@ -50,14 +50,14 @@
             <fileset dir="${plugin.dir}" includes="**/*.java"/>
         </gettext-extract>
     </target>
-    <target name="build" depends="po/josm.pot,init">
-        <gettext-merge keysFile="josm.pot" poDirectory="po"/>
+  <target name="build.check">
+    <condition property="build.run">
+      <not><available file="build-timestamp"/></not>
+    </condition>
+  </target>
+    <target name="build" depends="build.check,init" if="build.run">
         <antcall target="coretrans"/>
-        <foreach param="path" target="plugintrans">
-            <path>
-                <dirset dir="${plugin.dir}" includes="*"/>
-            </path>
-        </foreach>
+     <touch file="build-timestamp"/>
     </target>
     <target name="buildcore" depends="po/josm.pot,init">
         <gettext-merge keysFile="josm.pot" poDirectory="po"/>
@@ -98,15 +98,14 @@
         </if>
         <delete dir="${po.build.dir}/plugin_${dir}"/>
     </target>
+    <target name="dist" depends="build">
+        <copy todir="../build">
+            <fileset dir="build"/>
+        </copy>
+    </target>
     <target name="clean">
         <delete dir="${i18n.build.dir}"/>
-        <delete file="po/josm.pot"/>
-        <delete>
-            <fileset dir="po" includes="*.*~" defaultexcludes="false"/>
-        </delete>
-        <delete>
-            <fileset dir="po" includes="*.po" defaultexcludes="false"/>
-        </delete>
+        <delete file="build-timestamp"/>
     </target>
     <target name="test">
         <mkdir dir="${i18n.build.dir}/test"/>
