Blob Blame History Raw
<project name="qdox" default="main">

    <!-- user customisation -->
    <property file="config.properties"/>

    <property name="name" value="qdox"/>
    <property name="yacc.exe" value="/usr/bin/byaccj"/>
 
    <!-- <taskdef name="mockmaker" classname="mockmaker.AntTask">

        <classpath>
            <fileset dir="bootstrap"/>
        </classpath>
    </taskdef> -->

    <target name="generate-check">
        <uptodate property="generate.skip" 
                  targetfile="build/java/com/thoughtworks/qdox/parser/impl/Parser.java" >
            <srcfiles dir="src/grammar"/>
        </uptodate>

    </target>

    <target name="generate" description="Perform code generation"
            depends="generate-check" unless="generate.skip">
        <!-- Generate Lexer -->
        <echo>**** Generating Lexer ****</echo>
        <mkdir dir="build/java/com/thoughtworks/qdox/parser/impl"/>
        <!-- <java classpath="bootstrap/jflex.jar" classname="JFlex.Main" fork="yes"> -->
        <java classpath="/usr/share/java/jflex.jar" classname="JFlex.Main" fork="yes">
            <arg value="-d"/>
            <arg value="build/java/com/thoughtworks/qdox/parser/impl"/>

            <arg value="src/grammar/lexer.flex"/>
        </java>

        <!-- Generate Parser -->
        <echo>**** Generating Parser ****</echo>
        <exec executable="${yacc.exe}" dir="build">
            <arg value="-Jnorun"/>
            <arg value="-Jnoconstruct"/>
            <arg value="-Jclass=Parser"/>

            <arg value="-Jsemantic=Value"/>
            <arg value="-Jpackage=com.thoughtworks.qdox.parser.impl"/>
            <arg value="../src/grammar/parser.y"/>
        </exec>
        <move todir="build/java/com/thoughtworks/qdox/parser/impl" file="build/Parser.java"/>

        <!-- Generate Mock Objects -->
        <echo>**** Generating Mock Objects ****</echo>
        <mkdir dir="build/test"/>

        <!-- <mockmaker srcdir="src/java" destdir="build/test"/> -->
    </target>

    <target name="compile" depends="generate" description="Compile Java">
        <mkdir dir="build/classes"/>
        <depend srcdir="src/java;build/java" 
                destdir="build/classes" />
        <javac srcdir="src/java;build/java" 
               destdir="build/classes" 
               debug="true"/>
    </target>

    <target name="test" depends="compile" description="Compile and run tests">

        <mkdir dir="build/test-classes"/>
        <mkdir dir="lib"/>
        <depend srcdir="src/test;build/test" 
                destdir="build/test-classes">
            <classpath id="test.build.classpath">
                <fileset dir="lib"/>
                <pathelement path="build/classes"/>
            </classpath>
        </depend>
        <javac srcdir="src/test;build/test" 
               destdir="build/test-classes" 
               debug="true">
            <classpath refid="test.build.classpath" />

        </javac>
        <java classname="junit.textui.TestRunner" fork="yes">
            <classpath>
                <fileset dir="lib"/>
                <pathelement location="/usr/share/java/junit.jar"/>
                <pathelement path="build/classes"/>
                <pathelement path="build/test-classes"/>
            </classpath>
            <arg value="com.thoughtworks.qdox.FullTestSuite"/>
        </java>

    </target>

    <target name="jar" depends="compile" description="Generate redistributable jar">
        <mkdir dir="build/classes-dist"/>
        <javac srcdir="src/java;build/java" destdir="build/classes-dist" debug="false" optimize="true" />
        <jar jarfile="build/${name}.jar">
            <fileset dir="build/classes-dist"/>
        </jar>
        <echo>Generated build/${name}.jar</echo>

    </target>
    
  <target name="javadoc" description="o Generate javadoc">
    <mkdir dir="build/javadocdir">
    </mkdir>
    <tstamp>
      <format pattern="2002-yyyy" property="year">
      </format>
    </tstamp>
    <property name="copyright" value="Copyright &amp;copy;  ThoughtWorks, Inc. All Rights Reserved.">
    </property>
    <property name="title" value="QDox 1.5 API">
    </property>
    <javadoc use="true" private="true" destdir="build/javadocdir" author="true" version="true" sourcepath="src/java" packagenames="com.thoughtworks.qdox.*">
      <classpath>
        <fileset dir="build">
          <include name="*.jar">
          </include>
        </fileset>
        <pathelement location="${defaulttargetdir}/${final.name}.jar">
        </pathelement>
      </classpath>
    </javadoc>
  </target>

    <target name="main" depends="jar,test" description="Build jar and run unit tests."/>


    <target name="clean" description="Clean up built files">
        <delete dir="build"/>
    </target>

</project>