xref: /aoo4110/main/javainstaller2/build.xml (revision b1cdbd2c)
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