1*b1cdbd2cSJim Jagielski<?xml version="1.0"?> 2*b1cdbd2cSJim Jagielski<!--*********************************************************** 3*b1cdbd2cSJim Jagielski * 4*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 5*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 6*b1cdbd2cSJim Jagielski * distributed with this work for additional information 7*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 8*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 9*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 10*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 11*b1cdbd2cSJim Jagielski * 12*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 13*b1cdbd2cSJim Jagielski * 14*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 15*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 16*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 18*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 19*b1cdbd2cSJim Jagielski * under the License. 20*b1cdbd2cSJim Jagielski * 21*b1cdbd2cSJim Jagielski ***********************************************************--> 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski<project name="javainstaller2" default="build" basedir="."> 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski <!-- build output directory --> 27*b1cdbd2cSJim Jagielski <property name="name" value="JavaSetup"/> 28*b1cdbd2cSJim Jagielski <property name="out" value="build"/> 29*b1cdbd2cSJim Jagielski <property name="classes.dir" value="classes"/> 30*b1cdbd2cSJim Jagielski <property name="source.dir" location="${basedir}/src/${name}"/> 31*b1cdbd2cSJim Jagielski <property name="build.dir" location="${out}/misc"/> 32*b1cdbd2cSJim Jagielski <property name="dist.dir" location="${out}/bin"/> 33*b1cdbd2cSJim Jagielski <property name="compile.debug" value="true"/> 34*b1cdbd2cSJim Jagielski <property name="compile.optimize" value="false"/> 35*b1cdbd2cSJim Jagielski <property name="lib.dir" location="{$basedir}/lib"/> 36*b1cdbd2cSJim Jagielski <property name="verbose" value="false"/> 37*b1cdbd2cSJim Jagielski <property name="javainstaller.jar.file" location="{$basedir}/lib"/> 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski <!-- MAIN TARGET --> 40*b1cdbd2cSJim Jagielski <target name="build" depends="prepare, info_uptodate, info_notuptodate, compile-javainstaller, jar-javainstaller, clean"> 41*b1cdbd2cSJim Jagielski <echo message="Done"/> 42*b1cdbd2cSJim Jagielski </target> 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski <!-- INITIALIZATION TASKS --> 45*b1cdbd2cSJim Jagielski <target name="init"> 46*b1cdbd2cSJim Jagielski <!-- up to date checks --> 47*b1cdbd2cSJim Jagielski <uptodate property="jarFile.uptodate" targetfile="${dist.dir}/${name}.jar"> 48*b1cdbd2cSJim Jagielski <srcfiles dir="${source.dir}" includes="**/*.gif,**/*.png,**/*.java"/> 49*b1cdbd2cSJim Jagielski <srcfiles dir="${build.dir}" includes="**/*.properties"/> 50*b1cdbd2cSJim Jagielski </uptodate> 51*b1cdbd2cSJim Jagielski </target> 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski <target name="prepare" depends="init" unless="jarFile.uptodate"> 54*b1cdbd2cSJim Jagielski <mkdir dir="${build.dir}"/> 55*b1cdbd2cSJim Jagielski <mkdir dir="${build.dir}/${classes.dir}"/> 56*b1cdbd2cSJim Jagielski <mkdir dir="${build.dir}/${classes.dir}/${name}"/> 57*b1cdbd2cSJim Jagielski <mkdir dir="${dist.dir}"/> 58*b1cdbd2cSJim Jagielski </target> 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski <!-- show information about current sub target in recursive builds --> 61*b1cdbd2cSJim Jagielski <target name="info_uptodate" depends="init" if="jarFile.uptodate"> 62*b1cdbd2cSJim Jagielski <tstamp prefix="start"/> 63*b1cdbd2cSJim Jagielski <echo message="--------------------------------------------------------------------------------" /> 64*b1cdbd2cSJim Jagielski <echo message="Nothing to do. ${dist.dir}/${name}.jar is up to date."/> 65*b1cdbd2cSJim Jagielski <echo message="--------------------------------------------------------------------------------" /> 66*b1cdbd2cSJim Jagielski </target> 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski <!-- show information about current sub target in recursive builds --> 69*b1cdbd2cSJim Jagielski <target name="info_notuptodate" depends="init" unless="jarFile.uptodate"> 70*b1cdbd2cSJim Jagielski <tstamp prefix="start"/> 71*b1cdbd2cSJim Jagielski <echo message="--------------------------------------------------------------------------------" /> 72*b1cdbd2cSJim Jagielski <echo message="Source dir: ${source.dir}"/> 73*b1cdbd2cSJim Jagielski <echo message="Build dir: ${build.dir}"/> 74*b1cdbd2cSJim Jagielski <echo message="Dist dir: ${dist.dir}"/> 75*b1cdbd2cSJim Jagielski <echo message="Debug is ${debug}"/> 76*b1cdbd2cSJim Jagielski <echo message="--------------------------------------------------------------------------------" /> 77*b1cdbd2cSJim Jagielski </target> 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski <target name="compile-javainstaller" depends="prepare" unless="jarFile.uptodate"> 80*b1cdbd2cSJim Jagielski <javac srcdir="${source.dir}" source="1.4" target="1.4" 81*b1cdbd2cSJim Jagielski destdir="${build.dir}/${classes.dir}/${name}" 82*b1cdbd2cSJim Jagielski debug="${compile.debug}" 83*b1cdbd2cSJim Jagielski optimize="${compile.optimize}"> 84*b1cdbd2cSJim Jagielski </javac> 85*b1cdbd2cSJim Jagielski <copy todir="${build.dir}/${classes.dir}/${name}/org/openoffice/setup"> 86*b1cdbd2cSJim Jagielski <fileset dir="${build.dir}" includes="*.properties"/> 87*b1cdbd2cSJim Jagielski </copy> 88*b1cdbd2cSJim Jagielski <copy todir="${build.dir}/${classes.dir}/${name}/org/openoffice/setup/Icons"> 89*b1cdbd2cSJim Jagielski <fileset dir="${source.dir}/org/openoffice/setup/Icons" includes="*.gif,*.png"/> 90*b1cdbd2cSJim Jagielski </copy> 91*b1cdbd2cSJim Jagielski </target> 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski <target name="jar-javainstaller" depends="compile-javainstaller" unless="jarFile.uptodate"> 94*b1cdbd2cSJim Jagielski <jar file="${dist.dir}/${name}.jar"> 95*b1cdbd2cSJim Jagielski <fileset dir="${build.dir}/${classes.dir}/${name}" includes="**/*"/> 96*b1cdbd2cSJim Jagielski <manifest> 97*b1cdbd2cSJim Jagielski <attribute name="Main-Class" value="org.openoffice.setup.Main"/> 98*b1cdbd2cSJim Jagielski </manifest> 99*b1cdbd2cSJim Jagielski </jar> 100*b1cdbd2cSJim Jagielski </target> 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski <!-- CLEAN UP OUTPUT TREES --> 103*b1cdbd2cSJim Jagielski <target name="clean" unless="jarFile.uptodate"> 104*b1cdbd2cSJim Jagielski <!-- <delete dir="${build.dir}"/> --> 105*b1cdbd2cSJim Jagielski </target> 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski <!-- execution section --> 108*b1cdbd2cSJim Jagielski <target name="run" depends="jar-javainstaller"> 109*b1cdbd2cSJim Jagielski <echo message="Starting: java -jar ${dist.dir}/${name}.jar" /> 110*b1cdbd2cSJim Jagielski <java jar="${dist.dir}/${name}.jar" fork="true"/> 111*b1cdbd2cSJim Jagielski <!-- </java> --> 112*b1cdbd2cSJim Jagielski </target> 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski <target name="debug" depends="jar-javainstaller"> 115*b1cdbd2cSJim Jagielski <echo message="Starting for debugging: java -jar ${dist.dir}/${name}.jar" /> 116*b1cdbd2cSJim Jagielski <java jar="${dist.dir}/${name}.jar" fork="true"/> 117*b1cdbd2cSJim Jagielski <!-- </java> --> 118*b1cdbd2cSJim Jagielski</target> 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski</project> 122