<project name="checkout" default="checkout" basedir=".">

    <!-- = = = standard properties pattern = = = -->
    <!-- 
    	Note to be cross-platform, "environment variables" are only appropriate for 
        some variables, e.g. ones we set, since properties are case sensitive, even if 
        the environment variables on your operating system are not, e.g. it will 
        be ${env.Path} not ${env.PATH} on Windows -->
    <property environment="env" />

    <!-- 
    	Let users override standard properties, if desired.
    	If directory, file, or some properties do not exist,  
    	then standard properties will be used.
     -->
    <property file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />

    <!-- load standard properties for production environment -->
    <property file="${env.STANDARD_PROPERTIES_DIR}/${ant.project.name}.properties" />
    <!-- = = = end standard properties pattern = = = -->

    <!-- if not otherwise set, the following are good default values -->
    <property name="checkout.dltkbuilder.clean"
              value="true" />
    <property name="mapVersionTag" value="HEAD" />

    <property name="mapCvsRoot"
              value=":${cvsProtocol}:${cvsUser}@${cvsServer}:${cvsRoot}" />
	<property name="builderCvsRoot"
	              value=":${cvsBuilderProtocol}:${cvsBuilderUser}@${cvsBuilderServer}:/cvsroot/technology/org.eclipse.dltk/" />
	<echo message="builderCvsRoot: ${builderCvsRoot}" />

	
    <property name="codir"
              value="${env.BUILD_HOME}/build-node/checkout/${checkoutprojectname}" />



    <echo message="checkoutprojectname: ${checkoutprojectname}" />
    <target name="checkout" if="checkoutprojectname">
        <!-- we always check and init the builder -->
        <antcall target="getdltkbuilder" />
        <!-- and projects can do more if needed. -->
        <antcall target="${checkoutprojectname}" />
    </target>

    <target name="dltk-R1.0-N">

    </target>

    <target name="dltk-R1.0-S">
        <cvs quiet="true"
             cvsRoot="${mapCvsRoot}"
             package="${cvsPrefix}/${releng}"
             dest="${codir}"
             tag="HEAD" />
    </target>

    <target name="dltk-R1.0-I">
        <cvs quiet="true"
             cvsRoot="${mapCvsRoot}"
             package="${cvsPrefix}/${releng}"
             dest="${codir}"
             tag="HEAD" />
    </target>

    <target name="dltk-R0.95-M">
        <cvs quiet="true"
             cvsRoot="${mapCvsRoot}"
             package="${cvsPrefix}/${releng}"
             dest="${codir}"
             tag="R0_95_maintenance" />
    </target>
    <target name="dltk-R0.95.1-R">
        <cvs quiet="true"
             cvsRoot="${mapCvsRoot}"
             package="${cvsPrefix}/${releng}"
             dest="${codir}"
             tag="R0_95_maintenance" />
    </target>
    <target name="dltk-R0.9-M">
        <cvs
            quiet="true"
            cvsRoot="${mapCvsRoot}"
            package="${releng}"
            dest="${codir}"
            tag="R0_9_maintenance" />
    </target>
	
	
    <!-- 
        The order of execution of these three worker targets
        is critical, check.clean, initBuilders, and 
        then getdltkbuilder.
    -->
    <target name="getdltkbuilder"
            depends="check.clean,initBuilders"
            if="doClean">
        <!-- This is a special property file, that contains (only) the 
        value of dltkBuilderVersion. Then, that version of the builder 
        is fetched to control the rest of the build -->
    	<echo message="${codir}/${cvsPrefix}/${releng}/maps/build.cfg" />
        <property file="${codir}/${cvsPrefix}/${releng}/maps/build.cfg" />
        <delete dir="${codir}/releng.dltkbuilder"
                failonerror="false" />
        <echo message="Version tag for ${releng.builder} is: ${dltkBuilderVersion}" />
    	<echo message="releng.builder is downloading from here: ${builderCvsRoot}" />
        <cvs quiet="false"
             cvsRoot="${builderCvsRoot}"
             package="${cvsPrefix}/${releng.builder}"
             dest="${codir}"
             tag="${dltkBuilderVersion}" />
    </target>

    <target name="check.clean">
        <echo message="checkout.dltkbuilder.clean: ${checkout.dltkbuilder.clean}" />
        <condition property="doClean">
            <equals arg1="${checkout.dltkbuilder.clean}"
                    arg2="true"
                    trim="true"
                    casesensitive="false" />
        </condition>
    </target>

    <target name="initBuilders" if="doClean">
        <echo message="Version tag for ${releng}: ${mapVersionTag}" />
        <cvs quiet="true"
             cvsRoot="${mapCvsRoot}"
             package="${cvsPrefix}/${releng}"
             dest="${codir}"
             tag="${mapVersionTag}" />
    </target>


</project>

