|
|
@@ -1,6 +1,6 @@ |
|
|
|
|
|
|
|
<!-- ========================================================================= --> |
|
|
|
<!-- Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC). --> |
|
|
|
<!-- Copyright (c) 2003 Contributors. --> |
|
|
|
<!-- All rights reserved. --> |
|
|
|
<!-- This program and the accompanying materials are made available --> |
|
|
|
<!-- under the terms of the Common Public License v1.0 --> |
|
|
@@ -8,33 +8,34 @@ |
|
|
|
<!-- http://www.eclipse.org/legal/cpl-v10.html --> |
|
|
|
<!-- --> |
|
|
|
<!-- Contributors: --> |
|
|
|
<!-- Xerox/PARC initial implementation --> |
|
|
|
<!-- Wes Isberg initial implementation --> |
|
|
|
<!-- ========================================================================= --> |
|
|
|
|
|
|
|
<project name="build" default="test" basedir="."> |
|
|
|
|
|
|
|
<!-- ========================================================================= --> |
|
|
|
|
|
|
|
<!DOCTYPE project [ |
|
|
|
<!ENTITY build-properties SYSTEM "file:build-properties.xml"> |
|
|
|
]> |
|
|
|
<project name="build" default="all" basedir="."> |
|
|
|
|
|
|
|
<target name="info"> |
|
|
|
<echo> |
|
|
|
This downloads and build the AspectJ source tree. |
|
|
|
|
|
|
|
Targets of note: |
|
|
|
|
|
|
|
build-release checkout and build AspectJ |
|
|
|
install checkout, build, and install AspectJ |
|
|
|
test (default) test AspectJ sources and installation |
|
|
|
|
|
|
|
Properties of note: |
|
|
|
|
|
|
|
skip.cvs no CVS checkout (done already) |
|
|
|
skip.build no build (done already) |
|
|
|
|
|
|
|
version set if not DEVELOPMENT |
|
|
|
do.not.create.tree no CVS checkout |
|
|
|
aspectj.modules.dir define this to reuse existing |
|
|
|
|
|
|
|
</echo> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="init-variables" |
|
|
|
unless="init.variables.done"> |
|
|
|
<target name="init-variables"> |
|
|
|
|
|
|
|
<property name="version" value="DEVELOPMENT"/> |
|
|
|
<property name="ant.verbose" value=""/> |
|
|
@@ -61,6 +62,8 @@ |
|
|
|
location="${aj.build.dir}/jars"/> |
|
|
|
<property name="aj.build.install.dir" |
|
|
|
location="${aj.build.dir}/install"/> |
|
|
|
<property name="aj.build.log.dir" |
|
|
|
location="${aj.build.dir}/logs"/> |
|
|
|
|
|
|
|
<property name="aspectj.jar" |
|
|
|
location="${aj.build.dist.dir}/aspectj-${version}.jar"/> |
|
|
@@ -68,36 +71,59 @@ |
|
|
|
<property name="java.command" |
|
|
|
location="${java.home}/bin/java"/> |
|
|
|
|
|
|
|
<path id="ant.classpath"> |
|
|
|
<fileset dir="${aspectj.ant.lib.dir}"> |
|
|
|
<include name="*.jar"/> |
|
|
|
</fileset> |
|
|
|
<pathelement path="${java.home}/lib/tools.jar"/> |
|
|
|
<pathelement path="${java.home}/../lib/tools.jar"/> |
|
|
|
</path> |
|
|
|
<!-- property name="init.variables.done" value="done"/ --> |
|
|
|
<mkdir dir="${aj.build.log.dir}"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="all" depends="test-aspectj-install"/> |
|
|
|
|
|
|
|
<target name="test-aspectj-install" depends="install-aspectj"> |
|
|
|
<!-- run examples non-gui, etc. --> |
|
|
|
<target name="sources-available" depends="init-variables" |
|
|
|
unless="sources.available"> |
|
|
|
<available property="sources.available" |
|
|
|
file="${aspectj.modules.dir}/build/build.xml"/> |
|
|
|
<fail unless="sources.available" message="checkout first"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="aspectj-available" depends="init-variables" |
|
|
|
unless="aspectj.available"> |
|
|
|
<available property="aspectj.available" |
|
|
|
file="${aj.build.install.dir}" type="dir"/> |
|
|
|
<fail unless="aspectj.available" message="install first"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="build-release" depends="init-variables,create-tree" |
|
|
|
description="build an AspectJ release"> |
|
|
|
<!-- ========================================================================= --> |
|
|
|
|
|
|
|
<target name="install" depends="build,init-variables" |
|
|
|
description="create an AspectJ source tree"> |
|
|
|
<fail unless="aspectj.jar" message="define aspectj.jar"/> |
|
|
|
<fail unless="aj.build.install.dir" message="define aj.build.install.dir"/> |
|
|
|
<mkdir dir="${aj.build.install.dir}"/> |
|
|
|
<delete dir="${aj.build.install.dir}"/> |
|
|
|
<mkdir dir="${aj.build.install.dir}"/> |
|
|
|
<java fork="true" jar="${aspectj.jar}" failonerror="true"> |
|
|
|
<arg line="-to ${aj.build.install.dir}"/> |
|
|
|
</java> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="build" depends="init-variables,create-tree" |
|
|
|
description="build an AspectJ release" |
|
|
|
unless="skip.build"> |
|
|
|
<antcall target="run-ant"> |
|
|
|
<param name="ant.dir" location="${aspectj.build.dir}"/> |
|
|
|
<param name="run.ant.file" value="build.xml"/> |
|
|
|
<param name="ant.target" value="clean"/> |
|
|
|
<param name="ant.output" |
|
|
|
location="${aj.build.log.dir}/build-clean.txt"/> |
|
|
|
</antcall> |
|
|
|
<antcall target="run-ant"> |
|
|
|
<param name="ant.dir" location="${aspectj.build.dir}"/> |
|
|
|
<param name="run.ant.file" value="build.xml"/> |
|
|
|
<param name="ant.target" value="aspectj"/> |
|
|
|
<param name="ant.output" |
|
|
|
location="${aj.build.log.dir}/build-aspectj.txt"/> |
|
|
|
</antcall> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="create-tree" depends="init-variables" |
|
|
|
unless="do.not.create.tree" |
|
|
|
unless="skip.cvs" |
|
|
|
description="create an AspectJ source tree"> |
|
|
|
<fail message="testing now"/> |
|
|
|
<fail message="testing now - remove when validated"/> |
|
|
|
<mkdir dir="${aspectj.workspace}"/> |
|
|
|
<delete dir="${aspectj.workspace}"/> |
|
|
|
<mkdir dir="${aspectj.workspace}"/> |
|
|
@@ -108,20 +134,101 @@ |
|
|
|
failonerror="on" |
|
|
|
command="checkout -P" /> |
|
|
|
</target> |
|
|
|
|
|
|
|
<!-- ========================================================================= --> |
|
|
|
|
|
|
|
<target name="install-aspectj" depends="build-release,init-variables" |
|
|
|
description="create an AspectJ source tree"> |
|
|
|
<fail unless="aspectj.jar" message="define aspectj.jar"/> |
|
|
|
<fail unless="aj.build.install.dir" message="define aj.build.install.dir"/> |
|
|
|
<mkdir dir="${aj.build.install.dir}"/> |
|
|
|
<delete dir="${aj.build.install.dir}"/> |
|
|
|
<mkdir dir="${aj.build.install.dir}"/> |
|
|
|
<java fork="true" jar="${aspectj.jar}" failonerror="true"> |
|
|
|
<arg line="-to ${aj.build.install.dir}"/> |
|
|
|
<target name="test" |
|
|
|
depends="init-variables,aspectj-available"> |
|
|
|
<!-- antcall target="build-examples"/ --> |
|
|
|
<antcall target="junit-module-tests"/> |
|
|
|
<antcall target="run-harness-tests"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="junit-module-tests" |
|
|
|
depends="init-variables,aspectj-available"> |
|
|
|
<echo message="need to build all with -Dtrim.testing.default=false"/> |
|
|
|
<antcall target="run-ant"> |
|
|
|
<param name="run.ant.file" value="junitModules.xml"/> |
|
|
|
<param name="ant.target" value=""/> |
|
|
|
<param name="ant.dir" |
|
|
|
location="${aspectj.modules.dir}/tests"/> |
|
|
|
<param name="ant.output" |
|
|
|
location="${aj.build.log.dir}/build-junitModules.txt"/> |
|
|
|
</antcall> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="build-examples" |
|
|
|
depends="init-variables,aspectj-available"> |
|
|
|
<antcall target="build-one-example"> |
|
|
|
<param name="example.target" value="nonGui"/> |
|
|
|
</antcall> |
|
|
|
<antcall target="build-one-example"> |
|
|
|
<param name="example.target" value="tracing-bc"/> |
|
|
|
</antcall> |
|
|
|
<echo message="Also setup and run compiler adapater example"/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="build-one-example" depends="init-variables"> |
|
|
|
<ant dir="${aj.build.install.dir}/doc/examples" |
|
|
|
inheritAll="false" |
|
|
|
target="${example.target}" |
|
|
|
output="${aj.build.log.dir}/example-${example.target}.txt" |
|
|
|
/> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="compile-aspectj-using-aspectj" |
|
|
|
depends="init-variables,sources-available"> |
|
|
|
<antcall target="run-ant"> |
|
|
|
<param name="ant.dir" |
|
|
|
location="${aspectj.modules.dir}/tests/product/build-aspectj"/> |
|
|
|
<param name="run.ant.file" value="build.xml"/> |
|
|
|
<param name="ant.target" value=""/> |
|
|
|
<param name="ant.output" |
|
|
|
location="${aj.build.log.dir}/build-aspectj-using-aspectj.txt"/> |
|
|
|
</antcall> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="run-harness-tests" depends="harness-available"> |
|
|
|
<antcall target="run-harness-once"> |
|
|
|
<param name="suite.filename" value="ajcTests.xml"/> |
|
|
|
<param name="emacssym" value=""/> |
|
|
|
</antcall> |
|
|
|
|
|
|
|
<antcall target="run-harness-once"> |
|
|
|
<param name="suite.filename" value="ajcTests.xml"/> |
|
|
|
<param name="emacssym" value="-emacssym"/> |
|
|
|
</antcall> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="run-harness-once" |
|
|
|
depends="init-variables"> |
|
|
|
<fail unless="suite.filename" |
|
|
|
message="define suite.filename"/> |
|
|
|
<available property="harness.available" |
|
|
|
file="${harness.jar}"/> |
|
|
|
<fail unless="harness.available" message="build harness first"/> |
|
|
|
<java |
|
|
|
dir="${aspectj.modules.dir}/tests" |
|
|
|
jar="${harness.jar}" |
|
|
|
maxmemory="250m" |
|
|
|
output="${aj.build.log.dir}/${suite.filename}${emacssym}.txt"> |
|
|
|
<arg value="${suite.filename}.xml"/> |
|
|
|
<arg line="-killTemp -release -logFail ${emacssym}"/> |
|
|
|
</java> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="run-ant" depends="init-variables"> |
|
|
|
<target name="harness-available" depends="init-variables"> |
|
|
|
<antcall target="run-ant"> |
|
|
|
<param name="ant.dir" location="${aspectj.build.dir}"/> |
|
|
|
<param name="run.ant.file" value="build.xml"/> |
|
|
|
<param name="ant.target" value="build-testing-drivers"/> |
|
|
|
<param name="ant.output" |
|
|
|
location="${aj.build.log.dir}/build-testing-drivers.txt"/> |
|
|
|
</antcall> |
|
|
|
</target> |
|
|
|
|
|
|
|
<target name="run-ant" depends="init-variables" |
|
|
|
description="the ant we use to build"> |
|
|
|
<!-- we could use normal ant, but we enforce using ours |
|
|
|
<ant dir="${aspectj.build.dir}" |
|
|
|
target="clean" |
|
|
@@ -130,18 +237,32 @@ |
|
|
|
<fail unless="ant.target" message="define ant.target"/> |
|
|
|
<java |
|
|
|
fork="true" |
|
|
|
dir="${aspectj.build.dir}" |
|
|
|
dir="${ant.dir}" |
|
|
|
jvm="${java.command}" |
|
|
|
classname="org.apache.tools.ant.Main" |
|
|
|
maxmemory="350m" |
|
|
|
failonerror="true" |
|
|
|
newenvironment="true" |
|
|
|
classpathref="ant.classpath" |
|
|
|
> |
|
|
|
output="${ant.output}"> |
|
|
|
<classpath> |
|
|
|
<fileset dir="${aspectj.ant.lib.dir}"> |
|
|
|
<include name="*.jar"/> |
|
|
|
</fileset> |
|
|
|
<pathelement path="${aspectj.lib.dir}/junit/junit.jar"/> |
|
|
|
<pathelement path="${java.home}/lib/tools.jar"/> |
|
|
|
<pathelement path="${java.home}/../lib/tools.jar"/> |
|
|
|
</classpath> |
|
|
|
<sysproperty key="JAVA_HOME" path="${java.home}"/> |
|
|
|
<sysproperty key="ANT_HOME" |
|
|
|
path="${aspectj.ant.home}"/> |
|
|
|
<arg line="-f build.xml ${ant.target} ${ant.verbose}"/> |
|
|
|
|
|
|
|
<sysproperty key="aspectjrt.path" |
|
|
|
file="${aj.build.install.dir}/lib/aspectjrt.jar"/> |
|
|
|
<sysproperty key="test.classpath" |
|
|
|
value="jar.classpath"/> |
|
|
|
|
|
|
|
<arg line="-f ${run.ant.file} ${ant.target} ${ant.verbose}"/> |
|
|
|
</java> |
|
|
|
</target> |
|
|
|
|
|
|
|
</project> |