<project default="main">
        <target name="init">
                <touch file="${user.home}/.cvspass" />
                <available file="${buildDirectory}/label.properties" property="label.properties.exists" />
                <antcall target="create.label.properties" />
                <property file="${buildDirectory}/label.properties" />
                <!--fetch the HEAD stream of all projects if build type specified as N-->
                <condition property="fetchTag" value="HEAD">
                        <equals arg1="${buildType}" arg2="N" />
                </condition>
                <!--
                <condition property="forceContextQualifier" value="${buildId}">
                        <equals arg1="${buildType}" arg2="N" />
                </condition>
                        -->

                <!--Default values for required properties-->
                <property name="buildDirectory" value="${basedir}/src" />

                <!--compiler args-->
                <property name="compilerArg" value="-enableJavadoc -encoding ISO-8859-1 -warn:-discouraged,forbidden" />
                <property name="javacSource" value="1.4" />
                <property name="javacTarget" value="1.4" />
                <property name="javacDebugInfo" value="true" />
                <property name="javacFailOnError" value="false" />
                <property name="javacVerbose" value="true" />
                <!--this property required as of Eclipse 3.0 stream builds > 20031126 -->
                <property name="buildingOSGi" value="true" />
                <!--zip args-->
                <property name="zipargs" value="-y -qq" />
                <!--unzip args-->
                <property name="unzipArgs" value="-qq" />

        </target>

        <target name="main" depends="init">
                <property name="component" value="${basedir}/eclipse/buildConfigs/birt" />
                <!--run the build for the specified component-->
                <ant antfile="build.xml" dir="${eclipse.pdebuild.scripts}">
                        <property name="builder" value="${component}" />
                </ant>
        </target>

        <target name="create.label.properties" unless="label.properties.exists">
                <mkdir dir="${buildDirectory}" />
                <tstamp/>
                <property name="date" value="${DSTAMP}" />
                <property name="time" value="${TSTAMP}" />
                <property name="timestamp" value="${date}-${time}" />
                <property name="buildType" value="I" />
                <property name="buildId" value="${buildType}${timestamp}" />

                <!--this naming convention used by php scripts on download server-->
                <property name="buildLabel" value="${buildId}" />

                <!--store the build label information in a file-->
                <echo file="${buildDirectory}/label.properties">
                        timestamp=${timestamp}
                        buildType=${buildType}
                        buildId=${buildId}
                        buildLabel=${buildLabel}
                </echo>
        </target>

</project>