You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by do...@apache.org on 2001/02/25 15:29:42 UTC

cvs commit: jakarta-avalon/proposal/4.0 build.xml build.sh build.bat

donaldp     01/02/25 06:29:42

  Added:       proposal/4.0 build.xml build.sh build.bat
  Log:
  Updated proposal build instructions.
  
  Revision  Changes    Path
  1.1                  jakarta-avalon/proposal/4.0/build.xml
  
  Index: build.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <!--
  ==============================================================================
  
   Avalon build file
  
  Authors:
   Federico Barbieri <sc...@apache.org>
   Berin Loritsch <bl...@apache.org>
   Peter Donald <do...@apache.org>
  
  Legal:
    Copyright (c) 1999-2000 The Apache Software Foundation. All Rights Reserved.
  
  ==============================================================================
  -->
  
  <project default="main" basedir="../..">
  
    <!--
      Give user a chance to override without editing this file
      (and without typing -D each time he compiles it)
    -->
    <property file=".ant.properties"/>
    <property file="${user.home}/.ant.properties"/>
  
    <property name="name" value="avalonapi"/>
    <property name="Name" value="Avalon"/>
    <property name="version" value="4.0-proposal"/>
    <property name="year" value="1999-2001"/>
  
    <!--
      these are here only for those who use jikes compiler. For other
      developers this part makes no difference.
    -->
    <property name="build.compiler.emacs" value="on"/>
    <property name="build.compiler.warnings" value="true"/>
    <property name="build.compiler.pedantic" value="true"/>
    <property name="build.compiler.depend" value="true"/>
    <property name="build.compiler.fulldepend" value="true"/>
  
    <property name="debug" value="off"/>
    <property name="optimize" value="off"/>
    <property name="deprecation" value="off"/>
  
    <!--
         ===================================================================
         Set the properties for intermediate directory
         ===================================================================
    -->
    <property name="build.dir" value="build"/>
    <property name="build.lib" value="${build.dir}/lib"/>
    <property name="build.src" value="${build.dir}/src"/>
    <property name="build.classes" value="${build.dir}/classes"/>
    <property name="build.javadocs" value="${build.dir}/javadocs"/>
    <property name="build.docs" value="${build.dir}/docs"/>
    <property name="build.xdocs" value="${build.dir}/xdocs"/>
  
    <!--
         ===================================================================
         Set the properties for source directories
         ===================================================================
    -->
    <property name="src.dir" value="src"/>
    <property name="java.dir" value="proposal/4.0/src/java"/>
    <property name="lib.dir" value="lib"/>
    <property name="tools.dir" value="tools"/>
    <property name="docs.dir" value="docs"/>
    <property name="www.dir" value="www"/>
    <property name="javadocs.dir" value="${docs.dir}/api"/>
    <property name="skins.dir" value="${src.dir}/skins"/>
    <property name="avalon.skin" value="${skins.dir}/avalon/"/>
    <property name="xdocs.dir" value="${src.dir}/xdocs"/>
    <property name="stylesheets.dir" value="${skins.dir}"/> 
  
    <property name="dist.name" value="${name}-${version}"/>
  
    <path id="project.class.path">
      <fileset dir="tools/lib">
        <include name="*.jar" />
      </fileset>
      <fileset dir="${lib.dir}">
        <include name="*.jar" />
      </fileset>
      <pathelement path="${build.classes}" />
    </path>
  
    <!--
         ===================================================================
                                    Main target
         ===================================================================
    -->
    <target name="main" depends="jars" />
  
    <!--
         ===================================================================
                                    Help on usage
         ===================================================================
    -->
    <target name="usage">
      <echo message=""/>
      <echo message="${Name} Build file"/>
      <echo message="-------------------------------------------------------------"/>
      <echo message=""/>
      <echo message=" available targets are:"/>
      <echo message=""/>
      <echo message="   jar          --> generates the ${Name} jar files"/>
      <echo message="   test         --> perform unit tests"/>
      <echo message="   compile      --> compiles the source code"/>
      <echo message="   javadocs     --> generates the API documentation (java 1.2+ only)"/>
      <echo message="   docs         --> generates the ${Name} Documentation"/>
      <echo message="   main or jars --> generates the ${Name} distribution without the javadocs (default)"/>
      <echo message="   dist         --> generates the ${Name} distribution"/>
      <echo message="   clean        --> cleans up the created directories"/>
      <echo message="   real-clean   --> cleans up all genereated files and directories"/>
      <echo message="   proposal     --> generates the ${Name} proposal distribution without the javadocs"/>
      <echo message=""/>
      <echo message="-------------------------------------------------------------"/>
      <echo message=""/>
    </target>
  
    <target name="help" depends="usage"/>
  
   <!--
         ===================================================================
         Set up dist properties
         ===================================================================
    -->
    <target name="setup-properties" >
  
      <property name="dist.dir" value="dist"/>
      <property name="dist.bin" value="${dist.dir}/bin"/>
      <property name="dist.apps" value="${dist.dir}/apps"/>
      <property name="dist.lib" value="${dist.dir}/lib"/>
      <property name="dist.docs" value="${dist.dir}/docs"/>
      <property name="dist.javadocs" value="${dist.dir}/docs/api"/>
  
      <property name="src.dist.dir" value="dist-src"/>
      <property name="src.dist.src" value="${src.dist.dir}/src"/>
      <property name="src.dist.docs" value="${src.dist.dir}/docs"/>
      <property name="src.dist.javadocs" value="${src.dist.dir}/docs/api"/>
      <property name="src.dist.lib" value="${src.dist.dir}/lib"/>
      <property name="src.dist.tools" value="${src.dist.dir}/tools"/>
    </target>
  
    <!--
         ===================================================================
                    Checks the environment for existing resources
         ===================================================================
    -->
    <target name="check-environment" depends="check-datasource" if="jndi.present"/>
  
    <target name="check-datasource" if="datasource.present">
      <property name="j2ee.present" value="true"/>
    </target>
  
    <!--
         ===================================================================
                           Prepares the build directory
         ===================================================================
    -->
    <target name="prepare" depends="check-environment,setup-properties">
      <tstamp/>
      <mkdir dir="${build.dir}"/>
  
    </target>
  
    <!--
         ===================================================================
                          Compiles the source code
         ===================================================================
    -->
    <target name="compile" depends="prepare">
  
      <mkdir dir="${build.classes}"/>
  
      <javac srcdir="${java.dir}"
             destdir="${build.classes}"
             debug="${debug}"
             optimize="${optimize}"
             deprecation="${deprecation}">
        <classpath refid="project.class.path" />
        <exclude name="org/apache/avalon/datasource/J2eeDataSource.java"
                 unless="j2ee.present"/>
      </javac>
  
    </target>
  
    <!--
         ===================================================================
                            Creates the clutil.jar file
         ===================================================================
    -->
    <target name="compile-clutil" depends="prepare">
  
      <mkdir dir="${build.classes}"/>
  
      <javac srcdir="${java.dir}"
             destdir="${build.classes}"
             debug="${debug}"
             optimize="${optimize}"
             deprecation="${deprecation}">
        <include name="org/apache/avalon/util/cli/*" />
        <exclude name="org/apache/avalon/util/cli/AbstractMain.java" />
      </javac>
    </target>
  
    <target name="jar-clutil" depends="compile-clutil">
      <mkdir dir="${build.lib}"/>
      <jar jarfile="${build.lib}/clutil.jar" basedir="${build.classes}">
        <include name="org/apache/avalon/util/cli/*" />
        <exclude name="org/apache/avalon/util/cli/AbstractMain.class" />
      </jar>
    </target>
  
    <!--
         ===================================================================
                       Prepares the documentation directory
         ===================================================================
    -->
    <target name="docs">
    
      <filter token="year" value="${year}"/>
      
      <mkdir dir="${build.xdocs}"/>
      <mkdir dir="${build.docs}"/>
  
      <copy todir="${build.xdocs}" filtering="on">
        <fileset dir="${xdocs.dir}">
          <exclude name="**/images/**"/>
        </fileset>
      </copy>
  
      <copy todir="${build.xdocs}" filtering="off">
        <fileset dir="${xdocs.dir}">
          <include name="**/images/**"/>
        </fileset>
      </copy>
  
      <stylebook targetdirectory="${build.docs}"
                 book="${build.xdocs}/book.xml"
                 skindirectory="${avalon.skin}">
        <classpath refid="project.class.path" />
      </stylebook>
  
    </target>
  
    <!--
         ===================================================================
         Create the API documentation
         ===================================================================
    -->
    <target name="javadocs">
  
      <delete dir="${build.javadocs}"/>
      <mkdir dir="${build.javadocs}"/>
  
      <javadoc packagenames="org.apache.*"
               sourcepath="${java.dir}"
               destdir="${build.javadocs}">
        <classpath refid="project.class.path" />
        <doclet name="com.sun.tools.doclets.standard.Standard">
         <param name="-author"/>
         <param name="-version"/>
         <param name="-use"/>
         <param name="-doctitle" value="${Name}"/>
         <param name="-windowtitle" value="${Name} API"/>
         <param name="-bottom" 
                value="&quot;Copyright &#169; 2001 Apache Jakarta Project. All Rights Reserved.&quot;"/>
        </doclet>
      </javadoc>
  
    </target>
  
    <!--
         ===================================================================
         Create the Local site documentation
         ===================================================================
    -->
    <target name="local-docs" depends="docs">
  
      <delete>
        <fileset dir="${docs.dir}">
          <exclude name="api/**"/>
        </fileset>
      </delete>
      <mkdir dir="${docs.dir}"/>
  
      <copy todir="${docs.dir}">
        <fileset dir="${build.docs}" />
      </copy>
  
    </target>
  
    <!--
         ===================================================================
         Create the Local API documentation
         ===================================================================
    -->
    <target name="local-javadocs" depends="javadocs">
  
      <delete dir="${javadocs.dir}"/>
      <mkdir dir="${javadocs.dir}"/>
  
      <copy todir="${javadocs.dir}">
        <fileset dir="${build.javadocs}" />
      </copy>
  
    </target>
  
    <!--
         ===================================================================
         Update the www directory
         ===================================================================
    -->
    <target name="site-docs" depends="local-javadocs,local-docs">
  
      <!-- delete all old documents but keep CVS directories -->
      <!-- note that by doing an include the defaultexcludes (CVS dirs) will be kept -->
      <delete>
        <fileset dir="${www.dir}">
          <include name="**"/>
        </fileset>
      </delete>
  
      <mkdir dir="${www.dir}"/>
      <copy todir="${www.dir}">
        <fileset dir="${docs.dir}" />
      </copy>
  
    </target>
  
    <!--
         ===================================================================
                             Creates all the .jar files
         ===================================================================
    -->
    <target name="jars" depends="compile">
  
      <mkdir dir="${build.lib}"/>
      <jar jarfile="${build.lib}/avalonapi.jar" basedir="${build.classes}">
        <include name="org/apache/avalon/**"/>
        <zipfileset src="${lib.dir}/log.jar" includes="**/*.class"/>
      </jar>
    </target>
  
    <!--
         ===================================================================
                              Create the distribution
         ===================================================================
    -->
    <target name="dist" depends="jars,javadocs,docs">
  
      <mkdir dir="${dist.dir}"/>
      <copy file="${build.lib}/avalonapi.jar" tofile="${dist.dir}/${dist.name}.jar"/>
  
      <mkdir dir="${dist.docs}"/>
      <mkdir dir="${dist.javadocs}"/>
  
      <copy todir="${dist.docs}">
        <fileset dir="${build.docs}"/>
      </copy>
  
      <copy todir="${dist.javadocs}">
        <fileset dir="${build.javadocs}"/>
      </copy>
  
      <copy todir="${dist.dir}">
        <fileset dir=".">
          <include name="README"/>
          <include name="WARNING"/>
        </fileset>
      </copy>
  
      <chmod dir="${dist.dir}" perm="go-rwx" />
  
      <zip zipfile="${dist.name}-bin.zip" basedir="${dist.dir}/.." includes="${dist.dir}/**"/>
      <tar tarfile="${dist.name}-bin.tar" basedir="${dist.dir}/.." includes="${dist.dir}/**"/>
      <gzip zipfile="${dist.name}-bin.tar.gz" src="${dist.name}-bin.tar"/>
      <delete file="${dist.name}-bin.tar"/>
  
    </target>
  
    <!--
         ===================================================================
                              Create the source distribution
         ===================================================================
    -->
    <target name="src-dist" depends="docs,setup-properties">
  
      <mkdir dir="${src.dist.dir}" />
  
      <copy todir="${src.dist.tools}">
        <fileset dir="${tools.dir}"/>
      </copy>
  
      <copy todir="${src.dist.lib}">
        <fileset dir="${lib.dir}">
          <include name="README" />
          <include name="bytecode.jar" />
          <include name="xerces.jar" />
        </fileset>
      </copy>
  
      <copy todir="${src.dist.src}">
        <fileset dir="${src.dir}"/>
      </copy>
  
      <copy todir="${src.dist.docs}">
        <fileset dir="${build.docs}"/>
      </copy>
  
      <copy todir="${src.dist.javadocs}">
        <fileset dir="${build.javadocs}"/>
      </copy>
  
      <copy todir="${src.dist.dir}">
        <fileset dir=".">
          <include name="README"/>
          <include name="WARNING"/>
          <include name="build.bat"/>
          <include name="build.sh"/>
          <include name="build.xml"/>
        </fileset>
      </copy>
  
      <fixcrlf srcdir="${src.dist.dir}" includes="build.sh" cr="remove"/>
      <fixcrlf srcdir="${src.dist.dir}" includes="build.bat" cr="add"/>
      <chmod perm="+x">
        <fileset dir="${src.dist.dir}">
          <include name="build.sh" />
        </fileset>
      </chmod>
  
      <fixcrlf srcdir="${src.dist.src}/java" includes="**/*.java" cr="remove"/>
  
      <chmod dir="${src.dist.dir}" perm="go-rwx" />
  
      <zip zipfile="${dist.name}-src.zip"
           basedir="${src.dist.dir}/.."
           includes="${src.dist.dir}/**"/>
      <delete dir="${src.dist.dir}" />
    </target>
  
    <!--
         ===================================================================
                   Completely build all dists
         ===================================================================
    -->
    <target name="full-dist">
      <antcall target="src-dist">
        <param name="src.dist.dir" value="${dist.name}" />
      </antcall>
  
      <antcall target="dist">
        <param name="dist.dir" value="${dist.name}" />
      </antcall>
      <delete dir="${dist.name}" />
    </target>
  
    <!--
         ===================================================================
                   Cleans up build and distribution directories
         ===================================================================
    -->
    <target name="clean" depends="setup-properties">
      <delete dir="${build.dir}" />
      <delete dir="${dist.dir}" />
      <delete>
        <fileset dir="." includes="**/*~" defaultexcludes="no"/>
      </delete>
    </target>
  
    <!--
         ===================================================================
                        Cleans absolutely everything up
         ===================================================================
    -->
    <target name="real-clean" depends="clean">
      <delete dir="${docs.dir}" />
      <delete file="${dist.name}-bin.tar.gz" />
      <delete file="${dist.name}-bin.zip" />
      <delete file="${dist.name}-src.zip" />
    </target>
  
  </project>
  
  
  
  1.1                  jakarta-avalon/proposal/4.0/build.sh
  
  Index: build.sh
  ===================================================================
  #!/bin/sh
  
  echo
  echo "Avalon Build System"
  echo "-------------------"
  
  export CLASSPATH=`echo $PWD/lib/*.jar | tr ' ' ':'`
  
  chmod u+x ./tools/bin/antRun
  chmod u+x ./tools/bin/ant
  
  unset ANT_HOME
  
  $PWD/tools/bin/ant -logger org.apache.tools.ant.NoBannerLogger -emacs $@ 
  
  
  
  1.1                  jakarta-avalon/proposal/4.0/build.bat
  
  Index: build.bat
  ===================================================================
  @echo off
  
  echo -------------------
  echo Avalon Build System
  echo -------------------
  
  set ANT_HOME=..\..\tools
  
  set LOCALCLASSPATH=
  for %%i in (..\..\lib\*.jar) do call %ANT_HOME%\bin\lcp.bat %%i
  set CLASSPATH=%LOCALCLASSPATH%
  set LOCALCLASSPATH=
  
  :runAnt
  %ANT_HOME%\bin\ant.bat -logger org.apache.tools.ant.NoBannerLogger -emacs %1 %2 %3 %4 %5 %6 %7 %8
  set ANT_HOME=
  set CLASSPATH=