From: <pet...@us...> - 2007-02-27 08:46:34
|
Revision: 11549 http://svn.sourceforge.net/jikesrvm/?rev=11549&view=rev Author: peter_donald Date: 2007-02-27 00:46:29 -0800 (Tue, 27 Feb 2007) Log Message: ----------- Rework the build process so that it will run the "ensure" targets of any relevent dependencies prior to loading the components.properties file. This means that any components will be guarenteed to be uptodate prior to building the main RVM. The user never need explicitly invoke build-[classpath|gcspy|jai] prior to building the RVM. Modified Paths: -------------- rvmroot/trunk/build/base.xml rvmroot/trunk/build/components/gcspy.xml rvmroot/trunk/build.xml Modified: rvmroot/trunk/build/base.xml =================================================================== --- rvmroot/trunk/build/base.xml 2007-02-27 07:55:28 UTC (rev 11548) +++ rvmroot/trunk/build/base.xml 2007-02-27 08:46:29 UTC (rev 11549) @@ -17,7 +17,6 @@ <!-- location of components --> <property name="components.dir" location="${jikesrvm.dir}/components"/> <property name="components.file" location="${components.dir}/components.properties"/> - <property file="${components.file}"/> <!-- location of intermediate directory --> <property name="build.dir" location="${jikesrvm.dir}/target"/> Modified: rvmroot/trunk/build/components/gcspy.xml =================================================================== --- rvmroot/trunk/build/components/gcspy.xml 2007-02-27 07:55:28 UTC (rev 11548) +++ rvmroot/trunk/build/components/gcspy.xml 2007-02-27 08:46:29 UTC (rev 11549) @@ -1,6 +1,7 @@ <project name="gcspy" default="build" basedir="."> <import file="base.xml"/> + <property file="${components.file}"/> <property name="gcspy.version" value="1_01"/> <property name="gcspy.description" value="GCSpy Heap Visualisation Framework"/> @@ -81,6 +82,7 @@ java -classpath $$GCSPY_DIR/gcspy-${gcspy.version}.jar:$$GCSPY_DIR/jai_core.jar gcspy.Main $* </echo> <chmod file="${gcspy.package.dir}/${target.name}/client/gcspy" perm="ugo+rx"/> + <writeComponentConstants dir="${gcspy.package.dir}/${target.name}/client"/> </target> <target name="build" depends="build-gcspy-client" description="Download GCSpy and build."> @@ -108,4 +110,8 @@ <ensureUptodate name="gcspy" dir="${gcspy.package.dir}/${target.name}/server"/> </target> + <target name="ensure-client" depends="init-gcspy-properties"> + <ensureUptodate name="gcspy" dir="${gcspy.package.dir}/${target.name}/client"/> + </target> + </project> Modified: rvmroot/trunk/build.xml =================================================================== --- rvmroot/trunk/build.xml 2007-02-27 07:55:28 UTC (rev 11548) +++ rvmroot/trunk/build.xml 2007-02-27 08:46:29 UTC (rev 11549) @@ -4,7 +4,8 @@ <property name="jikesrvm.dir" location="${basedir}"/> <import file="build/base.xml"/> - + <import file="build/tasks.xml"/> + <property name="config.file" location="${jikesrvm.dir}/build/configs/${config.name}.properties"/> <!-- configuration data --> @@ -57,24 +58,6 @@ <!-- **************************************************************************** --> <!-- * * --> - <!-- * Targets for retrieving external components * --> - <!-- * * --> - <!-- **************************************************************************** --> - - <target name="build-classpath" description="Download and build Classpath."> - <ant antfile="${jikesrvm.dir}/build/components/classpath.xml" inheritall="false" inheritrefs="false"/> - </target> - - <target name="build-gcspy" description="Download and build GCSpy."> - <ant antfile="${jikesrvm.dir}/build/components/gcspy.xml" inheritall="false" inheritrefs="false"/> - </target> - - <target name="build-jai" description="Download and build JAI."> - <ant antfile="${jikesrvm.dir}/build/components/jai.xml" inheritall="false" inheritrefs="false"/> - </target> - - <!-- **************************************************************************** --> - <!-- * * --> <!-- * Property initialization section of the build * --> <!-- * * --> <!-- **************************************************************************** --> @@ -124,22 +107,7 @@ <test-property name="shld.args" location="${host.file}"/> </target> - <target name="check-components-properties"> - <available property="components_file_present" file="${components.file}"/> - <fail unless="components_file_present"> - Components file ${components.file} not present. Please create ${components.file} and edit. - </fail> - </target> - - <target name="check-classpath-properties" depends="check-components-properties"> - <propertycopy name="classpath.lib.dir" from="${target.name}.classpath.lib.dir"/> - <property name="classpath.error" - value="The user can invoke build-classpath target to download and build classpath from CVS or from the web."/> - <test-file name="classpath.lib.dir" location="${components.file}" msg="${classpath.error}"/> - <property file="${classpath.lib.dir}/constants.properties"/> - </target> - - <target name="include-gcspy-check" depends="check-components-properties"> + <target name="include-gcspy-check"> <condition property="include.gcspy-java" value="1"> <equals arg1="${config.include.gcspy}" arg2="1"/> </condition> @@ -176,7 +144,44 @@ <fail if="gcspy-and-svp">GCSpy can not be combined with a single virtual processor.</fail> </target> - <target name="check-gcspy-client-properties" depends="include-gcspy-check,check-config-properties" if="include.gcspy-client"> + <target name="check-components-properties" depends="include-gcspy-check,prepare-ant-tasks"> + <mkdir dir="${components.dir}"/> + <ant antfile="build/components/ecj.xml" target="ensure"/> + <ant antfile="build/components/classpath.xml" target="ensure"/> + <if> + <conditions> + <isset property="include.gcspy-client"/> + </conditions> + <sequential> + <ant antfile="build/components/jai.xml" target="ensure"/> + <ant antfile="build/components/gcspy.xml" target="ensure-client"/> + </sequential> + </if> + <if> + <conditions> + <and> + <isset property="include.gcspy"/> + <not> + <isset property="include.gcspy-client"/> + </not> + </and> + </conditions> + <sequential> + <ant antfile="build/components/gcspy.xml" target="ensure"/> + </sequential> + </if> + <property file="${components.file}"/> + </target> + + <target name="check-classpath-properties" depends="check-components-properties"> + <propertycopy name="classpath.lib.dir" from="${target.name}.classpath.lib.dir"/> + <property name="classpath.error" + value="The user can invoke build-classpath target to download and build classpath from CVS or from the web."/> + <test-file name="classpath.lib.dir" location="${components.file}" msg="${classpath.error}"/> + <property file="${classpath.lib.dir}/constants.properties"/> + </target> + + <target name="check-gcspy-client-properties" depends="check-config-properties" if="include.gcspy-client"> <propertycopy name="gcspy.client.dir" from="${target.name}.gcspy.client.dir"/> <property name="gcspy.client.error" value="The user can invoke build-gcspy target to download and build gcspy from the web."/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |