<?xml version="1.0"?>
<!--
 Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

 This code is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License version 2 only, as
 published by the Free Software Foundation.  Oracle designates this
 particular file as subject to the "Classpath" exception as provided
 by Oracle in the LICENSE file that accompanied this code.

 This code is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 version 2 for more details (a copy is included in the LICENSE file that
 accompanied this code).

 You should have received a copy of the GNU General Public License version
 2 along with this work; if not, write to the Free Software Foundation,
 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 or visit www.oracle.com if you need additional information or have any
 questions.
-->

<project name="jaxws" default="all" basedir=".">
   
    <!-- For 'ant -p' or 'ant -projecthelp' -->
    
    <description>
    Ant build script for the ${ant.project.name} part of the jdk.

    Input Properties: (see build.properties for the ant defaults)
      bootstrap.dir        - dir with lib/javac.jar, added to javac bootclasspath
      javac.debug          - true or false for debug classfiles
      javac.target         - classfile version target
      javac.source         - source version

      Run 'make help' for help using the Makefile.
    </description>

    <!-- Project build properties. -->
    <property file="build.properties"/>

    <property name="jaxws.src.dir" value="src/share/jaxws_classes"/>
    <property name="jaf.src.dir" value="src/share/jaf_classes"/>
    <path id="src.dir.id">
      <pathelement path="${jaxws.src.dir}"/>
      <pathelement path="${jaf.src.dir}"/>
    </path>

    <!-- Initialization of directories needed for build. -->
    <target name="init">
        <mkdir dir="${build.dir}"/>
        <mkdir dir="${build.classes.dir}"/>
        <mkdir dir="${dist.dir}"/>
        <mkdir dir="${dist.lib.dir}"/>
    </target>
    
    <!-- Sanity checks and settings -->
    <target name="sanity"
	    depends="-javac-jar-exists"
            description="Display settings of configuration values">
        <echo message="${sanity.info}"/>
    </target>

     <!-- Check for bootstrap javac.jar file, warn if missing. -->
    <condition property="javac.jar.exists">
        <available file="${javac.jar}" type="file"/>
    </condition>
    <target name="-javac-jar-exists"
            unless="javac.jar.exists">
        <echo message="WARNING: Cannot find ${javac.jar}"/>
    </target>
    
    <!-- Create src.zip. -->
    <target name="-dist-src-zip" depends="init">
        <zip file="${dist.src.zip}" basedir="${jaxws.src.dir}"/>
        <zip file="${dist.src.zip}" basedir="${jaf.src.dir}" update="true"/>
    </target>

    <!-- Creation of distribution files to jdk build process. -->
    <target name="dist"
	    depends="init, build, -dist-classes-jar, -dist-src-zip"
            description="Create all built distribution files.">
    </target>
    <target name="-dist-classes-jar-uptodate"
	    depends="init">
        <condition property="dist.classes.jar.uptodate">
            <and>
                <available file="${dist.classes.jar}" type="file"/>
                <uptodate targetfile="${dist.classes.jar}">
                    <srcfiles dir="${build.classes.dir}" includes="**"/>
                </uptodate>
            </and>
        </condition>
    </target>
    <target name="-dist-classes-jar"
	    depends="init, -dist-classes-jar-uptodate"
            unless="dist.classes.jar.uptodate">
        <delete file="${dist.classes.jar}"/>
        <jar file="${dist.classes.jar}" basedir="${build.classes.dir}"/>
    </target>

    <!-- Special build area setup. -->
    <target name="-build-setup" depends="init">
        <mkdir dir="${build.classes.dir}"/>
        <copy todir="${build.classes.dir}">
            <fileset dir="${jaxws.src.dir}"
                includes="**/*.xsd, **/*.default, **/*.properties"
                excludes="**/*.java, **/*.package.html"/>
        </copy>
        <replaceregexp match="#(.*)$" replace="#" flags="gm">
            <fileset dir="${build.classes.dir}" includes="**/*.properties"/>
        </replaceregexp>

        <mkdir dir="${build.classes.dir}/META-INF/services"/>
        <copy todir="${build.classes.dir}/META-INF"
            file="${jaf.src.dir}/META-INF/mailcap.default"/>
        <copy todir="${build.classes.dir}/META-INF"
            file="${jaf.src.dir}/META-INF/mimetypes.default"/>
        <copy todir="${build.classes.dir}/META-INF/services"
            file="${jaxws.src.dir}/com/sun/tools/etc/META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin"/>
        <copy todir="${build.classes.dir}/META-INF/services"
            file="${jaxws.src.dir}/com/sun/tools/etc/META-INF/services/com.sun.tools.internal.xjc.Plugin"/>
        <mkdir dir="${build.classes.dir}/com/sun/tools/internal/xjc/runtime"/>
        <copy todir="${build.classes.dir}/com/sun/tools/internal/xjc/runtime">
            <fileset dir="${jaxws.src.dir}/com/sun/tools/internal/xjc/runtime"
                includes="**/*.java"
                excludes="**/*.package.html"/>
        </copy>
    </target>

    <!-- Build (compilation) of sources to class files. -->
    <target name="build"
	    depends="compile, -build-setup">
    </target>
    <target name="compile"
	    depends="init">
        <mkdir dir="${build.classes.dir}"/>
        <javac 
	     includeAntRuntime="false" 
	     classpath="${build.classes.dir}:${tools.jar}"
	     fork="true"
             destdir="${build.classes.dir}"
             memoryInitialSize="${javac.memoryInitialSize}"
             memoryMaximumSize="${javac.memoryMaximumSize}"
             source="${javac.source}"
	     debug="${javac.debug}"
             target="${javac.target}">
            <compilerarg value="-J-Xbootclasspath/p:${javac.jar}"/>
            <compilerarg line="${javac.version.opt} ${javac.lint.opts} ${javac.no.jdk.warnings}"/>
            <src refid="src.dir.id"/>
        </javac>
    </target>

    <!-- Test. (FIXME: Need to know how to run tests.) -->
    <target name="test"
	    depends="init, dist">
        <echo message="FIXME: How do you run the tests"/>
    </target>
    
    <!-- Populate source area if needed. -->
    <target name="source"
            depends="init"
            description="Populate all source file directories">
    </target>

    <!-- Clean up compiled files. -->
    <target name="clean"
            description="Delete all generated files">
        <delete dir="${build.dir}"/>
        <delete dir="${dist.dir}"/>
    </target>

    <!-- Clean up compiled files and all imported source files. -->
    <target name="clobber"
	    depends="clean"
            description="Delete all generated files, including imported sources">
    </target>

    <target name="-banner">
        <echo message="+---------------------------------------+"/>
        <echo message="+ Starting ant project ${ant.project.name} +"/>
        <echo message="+---------------------------------------+"/>
    </target>
   
    <!-- Do everything but test. -->
    <target name="all"
	    depends="-banner, sanity, dist"
            description="Build everything.">
        <echo message="+---------------------------------------+"/>
        <echo message="+ Finishing ant project ${ant.project.name}"/>
        <echo message="+---------------------------------------+"/>
    </target>

</project>
