Browse Source

initial version

tags/initial_CPL
wisberg 21 years ago
commit
3cde920c3f

+ 9
- 0
bridge/.classpath View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="testsrc"/>
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
<classpathentry kind="lib" path="/lib/junit/junit.jar" sourcepath="/lib/junit/junit-src.jar"/>
<classpathentry kind="src" path="/util"/>
<classpathentry kind="output" path="bin"/>
</classpath>

+ 4
- 0
bridge/.cvsignore View File

@@ -0,0 +1,4 @@
bin
ant.properties
bridge.mf.txt


+ 18
- 0
bridge/.project View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>bridge</name>
<comment></comment>
<projects>
<project>util</project>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

+ 9
- 0
build/.classpath View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="testsrc"/>
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
<classpathentry kind="lib" path="/lib/ant/lib/ant.jar"/>
<classpathentry kind="lib" path="/lib/junit/junit.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

+ 17
- 0
build/.project View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>build</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

+ 148
- 0
build/build-properties.xml View File

@@ -0,0 +1,148 @@
<!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -->
<!-- ========================================================================= -->
<!-- Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC). -->
<!-- All rights reserved. -->
<!-- This program and the accompanying materials are made available -->
<!-- under the terms of the Common Public License v1.0 -->
<!-- which accompanies this distribution and is available at -->
<!-- http://www.eclipse.org/legal/cpl-v10.html -->
<!-- -->
<!-- Contributors: -->
<!-- Xerox/PARC initial implementation -->
<!-- ========================================================================= -->

<!-- include as common entity for module build scripts -->
<!-- should only need to edit version properties -->

<target name="init-properties"
unless="aspectj.modules.build.dir">

<!-- change version manually -->
<property name="build.version" value="1.1b2"/>
<property name="build.version.base" value="1.1"/>
<property name="build.version.long" value="1.1beta2"/>
<property name="build.version.short" value="1.1b2"/>

<!-- formats comply with SimpleDateFormat -->
<property name="build.time.format" value="MM/dd/yy 'at' hh:mm:ss z"/>
<property name="build.date.format" value="EEEE MMM d, yyyy"/>
<tstamp>
<format property="build.date"
pattern="${build.date.format}"
timezone="PST"/>
<format property="build.time"
pattern="${build.time.format}"
timezone="PST"/>
</tstamp>
<property name="copyright.allRights.from1998"
value="Copyright (c) 1998-2001 Xerox Corporation, 2002 Palo Alto Research Center, Incorporated. All rights reserved." />
<!-- XXX interim hack -->
<property name="aspectj.home.url" value="http://aspectj.org" />

<!-- callers define basedir as dir of build file? -->
<property name="aspectj.modules.dir"
location="${basedir}/.."/>

<!-- aj... names are generated, can be mutated/cleaned -->
<property name="aj.results.dir"
location="${aspectj.modules.dir}/aj-build-results"/>
<!-- these names are known to BuildModule.java and common to all -->
<property name="aj.build.dir"
location="${aspectj.modules.dir}/aj-build"/>
<property name="aj.temp.dir"
location="${aj.build.dir}/temp"/>
<property name="aj.jar.dir"
location="${aj.build.dir}/jars"/>
<property name="aj.dist.dir"
location="${aj.build.dir}/dist"/>
<property name="aj.webDeploy.dir"
location="${aj.build.dir}/webDeploy"/>

<!-- aspectj... names are sources, not to be mutated -->
<property name="aspectj.modules.lib.dir"
location="${aspectj.modules.dir}/lib"/>
<property name="aspectj.modules.build.dir"
location="${aspectj.modules.dir}/build"/>
<property name="aspectj.modules.docs.dir"
location="${aspectj.modules.dir}/docs"/>
<property name="aspectj.modules.tests.dir"
location="${aspectj.modules.dir}/tests"/>
<!-- BuildModule.java assumes products are here -->
<property name="aspectj.products.dir"
location="${aspectj.modules.build.dir}/products"/>
<property name="aspectj.modules.tests.dir"
location="${aspectj.modules.dir}/tests"/>
<property name="aspectj.build.jar"
location="${aspectj.modules.lib.dir}/build/build.jar"/>
<available file="${aspectj.build.jar}"
property="aspectj.build.jar.available"
value="${aspectj.build.jar}"/>
</target>

<target name="init-taskdefs"
depends="init-properties"
unless="init-taskdefs.done" >
<fail unless="aspectj.build.jar.available"
message="unable to find aspectj.build.jar: ${aspectj.build.jar}"/>
<taskdef resource="org/aspectj/internal/tools/ant/taskdefs/taskdefs.properties"
classpath="${aspectj.build.jar}"/>
<property name="init-taskdefs.done" value="done"/>
</target>

<target name="init-directories"
depends="init-properties"
unless="init-directories.done" >
<mkdir dir="${aj.results.dir}" />
<mkdir dir="${aj.build.dir}" />
<mkdir dir="${aj.temp.dir}" />
<mkdir dir="${aj.jar.dir}" />
<mkdir dir="${aj.dist.dir}" />
<property name="init-directories.done" value="done"/>
</target>

<target name="init-filters"
depends="init-properties"
unless="init-filters.done" >
<!-- change version manually -->
<!-- see also org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties -->
<filter token="build.version" value="${build.version}"/>
<filter token="build.version.base" value="${build.version.base}"/>
<filter token="build.version.long" value="${build.version.long}"/>
<filter token="build.version.short" value="${build.version.short}"/>

<filter token="build.time.format" value="${build.time.format}"/>
<filter token="build.date.format" value="${build.date.format}"/>
<filter token="build.date" value="${build.date}"/>
<filter token="build.time" value="${build.time}"/>
<filter token="copyright.allRights.from1998"
value="${copyright.allRights.from1998}" />
<property name="init-filters.done" value="done"/>
</target>

<target name="clean-directories"
depends="init-directories"
unless="clean-directories.done" >
<property name="clean-directories.done" value="done"/>
<delete quiet="on" dir="${aj.build.dir}" /> <!-- warning if not deleted? -->
<antcall target="init-directories"/>
<!-- aj.results.dir is not cleaned -->
</target>

<target name="echo-properties" depends="init-properties">
<echo>
Build Properties

build.date = ${build.date}
build.time = ${build.time}
build.version = ${build.version}
build.version.long = ${build.version.long}
build.version.short = ${build.version.short}
aspectj.modules.dir = ${aspectj.modules.dir}
aj.build.dir = ${aj.build.dir}
aj.results.dir = ${aj.results.dir}
release.build = ${release.build}
ant.home = ${ant.home}
java.home = ${java.home}
</echo>
</target>

+ 264
- 0
build/build.xml View File

@@ -0,0 +1,264 @@
<!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -->

<!-- ========================================================================= -->
<!-- Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC). -->
<!-- All rights reserved. -->
<!-- This program and the accompanying materials are made available -->
<!-- under the terms of the Common Public License v1.0 -->
<!-- which accompanies this distribution and is available at -->
<!-- http://www.eclipse.org/legal/cpl-v10.html -->
<!-- -->
<!-- Contributors: -->
<!-- Xerox/PARC initial implementation -->
<!-- ========================================================================= -->

<!DOCTYPE project [
<!ENTITY build-properties SYSTEM "file:build-properties.xml">
]>
<project name="build" default="all" basedir=".">

<target name="all" depends="aspectj"/>
<target name="rebuild" depends="clean,all"/>
<target name="clean" depends="clean-directories"/>


<!-- ===================================================================== -->
<!-- Init -->
<!-- ===================================================================== -->
<!-- use this file to force prop values -->
<property file="${basedir}/local.properties"/>
&build-properties;

<target name="init" depends="init-properties,init-directories">
<property name="build.config" value="verbose"/>
<property name="aj.installer.jar"
location="${aj.dist.dir}/aspectj-${build.version.short}.jar"/>

<available property="ant.lib.aspectjtools"
file="${ant.home}/lib/aspectjtools.jar"
value="Expect classpath errors from ${ant.home}/lib/aspectjtools.jar"/>

<available property="ant.lib.aspectjrt"
file="${ant.home}/lib/aspectjrt.jar"
value="Expect classpath errors from ${ant.home}/lib/aspectjrt.jar"/>

<available property="testing.drivers.all.available"
file="${aj.jar.dir}/testing-drivers-all.jar"
value="${aj.jar.dir}/testing-drivers-all.jar"/>

</target>

<target name="init-version" depends="init,init-filters"
unless="init.version.done" if="release.build" > <!-- unless=version.uptodate -->
<antcall target="init-filters"/>
<copy file="${aspectj.modules.dir}/build/lib/BridgeVersion.java.txt"
tofile="${aspectj.modules.dir}/bridge/src/org/aspectj/bridge/Version.java"
overwrite="yes" filtering="yes"/>
<property name="init.version.done" value="done"/>
<!-- consider checking this in? -->
</target>


<!-- ===================================================================== -->
<!-- Misc setup and warnings -->
<!-- ===================================================================== -->
<target name="warn.ant.lib.aspectjrt" if="ant.lib.aspectjrt">
<echo message="----- WARNING: ${ant.lib.aspectjrt}" />
</target>

<target name="warn.ant.lib.aspectjtools" if="ant.lib.aspectjtools">
<echo message="----- WARNING: ${ant.lib.aspectjtools}" />
</target>

<!-- ===================================================================== -->
<!-- test targets -->
<!-- ===================================================================== -->
<target name="quicklook" >
<antcall target="clean"/>
<!-- todo: compile modules without test sources -->
<!-- todo: junit tests (compile with test sources) -->
<antcall target="aspectj"/>
<antcall target="ajcTests"/>
<!-- todo: product install and tests -->
</target>
<!-- ===================================================================== -->
<!-- tree targets -->
<!-- ===================================================================== -->
<target name="update.tree" depends="init"
description="update tree">
<fail unless="CVSROOT"
message="required: {ant} -DCVSROOT=... ..."/>
<cvs cvsRoot="${CVSROOT}"
dest="${aspectj.modules.dir}"
quiet="on"
failonerror="on"
command="update -dP" />
</target>

<!-- ===================================================================== -->
<!-- antcall targets -->
<!-- ===================================================================== -->
<target name="build-product" depends="init,init-taskdefs,init-version"
description="build $${product.name}">
<ajbuild jarDir="${aj.jar.dir}"
baseDir="${aspectj.modules.dir}"
distDir="${aj.dist.dir}"
productDir="${aspectj.modules.dir}/build/products/${product.name}"
trimTesting="true"
buildConfig="${build.config}"
version="${build.version.long}"
verbose="true"
failonerror="true"/>
</target>

<target name="build-module" depends="init,init-taskdefs,init-version">
<ajbuild jarDir="${aj.jar.dir}"
baseDir="${aspectj.modules.dir}"
distDir="${aj.dist.dir}"
module="${module.name}"
trimTesting="true"
buildConfig="${build.config}"
version="${build.version.long}"
verbose="true"
failonerror="true"/>
</target>


<target name="build-module-all" depends="init,init-taskdefs,init-version">
<ajbuild module="${module.name}"
baseDir="${aspectj.modules.dir}"
distDir="${aj.dist.dir}"
jarDir="${aj.jar.dir}"
trimTesting="true"
buildConfig="${build.config}"
version="${build.version.long}"
verbose="true"
assembleall="true"
failonerror="true"/>
</target>


<target name="create-installer" depends="init,init-taskdefs,init-filters"
description="create ${installer.file} from ${staging.dir} using ${htmlSrc.dir} and ${simpleClassName}">
<!-- init-filters: filter on copy used by ajinstaller taskdef -->
<delete quiet="on" file="${installer.file}"/>
<ajinstaller zipfile="${installer.file}"
installerclassjar="${aspectj.build.jar}"
basedir="${staging.dir}"
mainclass="$$installer$$.org.aspectj.${simpleClassName}"
htmlSrc="${htmlSrc.dir}"
resourcesSrc="${aspectj.modules.build.dir}/installer-resources"/>
</target>

<!-- ===================================================================== -->
<!-- custom targets -->
<!-- ===================================================================== -->
<target name="build-testing-drivers" depends="init-taskdefs,init"
unless="testing.drivers.all.available">
<ajbuild module="testing-drivers"
baseDir="${aspectj.modules.dir}"
jarDir="${aj.jar.dir}"
trimTesting="false"
buildConfig="${build.config}"
version="${build.version.long}"
verbose="true"
assembleall="true"
failonerror="true"/>
</target>
<target name="ajcTests" depends="init,build-testing-drivers">
<java fork="true" jar="${aj.jar.dir}/testing-drivers-all.jar"
dir="${aspectj.modules.tests.dir}"
output="${aj.results.dir}/ajcTests.out.txt">
<arg value="-traceTestsMin"/>
<arg value="-logFail"/>
<arg value="-hideStreams"/>
<arg value="-loud"/>
<arg value="-ajctestSkipKeywords=purejava,knownLimitations"/>
<arg value="ajcTests.xml"/>
</java>
<echo message="find result in ${aj.results.dir}/ajcTests.out.txt"/>
</target>
<target name="aspectj" depends="init,aspectjtools-dist,docs-dist"
description="create installer from local distributions">
<property name="installer.staging.dir"
location="${aj.temp.dir}/installer-staging"/>
<mkdir dir="${installer.staging.dir}"/>
<delete dir="${installer.staging.dir}"/>
<mkdir dir="${installer.staging.dir}"/>
<copy todir="${installer.staging.dir}">
<fileset dir="${aj.dist.dir}/tools"/>
<fileset dir="${aj.dist.dir}/docs"/>
</copy>
<antcall target="create-installer">
<param name="installer.file"
location="${aj.installer.jar}"/>
<param name="staging.dir"
location="${installer.staging.dir}"/>
<param name="htmlSrc.dir"
location="${aspectj.modules.build.dir}/products/aspectj/install"/>
<param name="simpleClassName" value="ToolsInstaller"/>
</antcall>
<delete dir="${installer.staging.dir}"/>
</target>
<target name="docs-dist" depends="init">
<ant dir="${aspectj.modules.dir}/docs"
antfile="build.xml"
target="local-dist"
inheritAll="false"/> <!-- true? -->
</target>
<!-- ===================================================================== -->
<!-- boilerplate antcalls -->
<!-- ===================================================================== -->

<!-- for any-[module|product], define [module|product].name -->
<target name="any-module" depends="init">
<antcall target="build-module">
<param name="module.name" value="${module.name}"/>
</antcall>
</target>

<target name="any-product" depends="init">
<antcall target="build-product">
<param name="product.name" value="${product.name}"/>
</antcall>
</target>

<!-- literal targets -->
<target name="eajc" depends="init">
<antcall target="build-module-all">
<param name="module.name" value="org.aspectj.ajdt.core"/>
</antcall>
<echo message="use org.aspectj.ajdt.core-all.jar for eajc.jar"/>
</target>

<target name="ajbrowser-all">
<antcall target="build-module-all">
<param name="module.name" value="ajbrowser"/>
</antcall>
</target>

<target name="build">
<antcall target="build-module">
<param name="module.name" value="build"/>
</antcall>
</target>

<target name="aspectjtools-dist" depends="init"
description="build local distribution">
<antcall target="build-product">
<param name="product.name" value="tools"/>
</antcall>
</target>

</project>


+ 59
- 0
build/readme-build-module.html View File

@@ -0,0 +1,59 @@
<html>
<title>AspectJ build</title>
<body>
<h1>AspectJ build</h1>

This build module contains taskdefs and resources for doing builds
and checking source licenses.

To do a build, use Ant to run
<a href="build.xml">build.xml</a>
from this directory.

<p>
The
<a href="src/org/aspectj/internal/tools/ant/taskdefs/BuildModule.java">
BuildModule</a>
taskdef implements an integrated module or product build.
<u>Module builds</u> are based on the Eclipse .classpath file, and can produce
a jar with the module classes, with two variations: (a) include only
the module classes, or assemble the jar complete with all antecedent
modules and libraries; and (b) compile the module(s) without any
testing source or libraries. If there is a file {moduleName}.mf.txt
in the module directory, it will be used as the manifest for the
module jar file.

<u>Product builds</u> are defined by introspection of a
<a href="products">products</a> subdirectory like
<a href="products/tools">products/tools</a> for the AspectJ tools installer.

These have an <code>install</code> directory for installer resources
and a <code>dist</code> directory containing all files belonging in
the distribution, including 0-length placeholders for the module build
results.

<p>
Top-level temporary build directories are prefixed "aj-",
so you can safely destroy any such directory or ignore it
in CVS or the Eclipse package explorer. By default the build script
puts them at the same level as other modules.
<p>
<u>Updating this module</u>:

Because the BuildModule taskdef extracts dependencies from the Eclipse
.classpath file, there is no need to update build scripts when
adding or removing modules or changing their dependencies, so long
as they are all in the base modules directory (usually the base of
the eclipse workspace.
All required libraries are checked into the <code>lib</code> module.

<p>The BuildModule taskdef makes some assumptions about the naming,
position, and contents of module directories and files.
Understand those (documented in
<a href="src/org/aspectj/internal/tools/ant/taskdefs/BuildModule.java">
BuildModule.java</a>) before using non-standard module directories.

<hr>

</body>
</html>

+ 5
- 0
lib/.classpath View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
<classpathentry kind="output" path=""/>
</classpath>

+ 17
- 0
lib/.project View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>lib</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

+ 44
- 0
lib/readme-lib-module.html View File

@@ -0,0 +1,44 @@
<html>
<title>AspectJ library module</title>
<body>
<h2>AspectJ library module</h2>

This module primarily contains binary libraries from open-source projects,
some of which are subject to licenses other than the Common Public License (CPL).
Those not subject to CPL are not distributed in source or binary form with
AspectJ (except for Apache's BCEL), but are used in the development of AspectJ.
This module also contains some bootstrap libraries and test sources.

<ul>
<li><a href="ant">ant</a>:
Ant 1.5.1 from
<a ="http:jakarta.apache.org/ant">http:jakarta.apache.org/ant</a>.
This contains a modified Ant script that works with our quicklook
and puts the optional tasks on the classpath by default.
Ant is available under the Apache Software License.
</li>
<li><a href="bcel">bcel</a>:
The Bytecode Engineering Library from
<a ="http:jakarta.apache.org/bcel">http:jakarta.apache.org/bcel</a>,
available under the Apache Software License.
</li>
<li><a href="build">build</a>: bootstrap libraries for the build process.
</li>
<li><a href="eclipse2.0">eclipse2.0</a>:
The AspectJ compiler is a patch to the Eclipse 2.0 compiler.
These are the non-compiler binaries. For the eclipse compiler
and patched, see the org.eclipse.jdt.core module.
This is available under the CPL.
</li>
<li><a href="junit">junit</a>:
JUnit 3.7 test libraries, available from
<a ="http:junit.org">junit.org</a> and under the CPL.
</li>
<li><a href="test">test</a>: bootstrap libraries for the test process.
These could be replaced with build products, to avoid the checked-in
versions being out of date, but these build products change rarely
(and almost never in binary-incompatible ways).
</li>
</ul>
</body>
</html>

+ 8
- 0
runtime/.classpath View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="testsrc"/>
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
<classpathentry kind="lib" path="/lib/junit/junit.jar" sourcepath="/lib/junit/junit-src.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

+ 3
- 0
runtime/.cvsignore View File

@@ -0,0 +1,3 @@
bin
ant.properties
runtime.mf.txt

+ 17
- 0
runtime/.project View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>runtime</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

+ 8
- 0
util/.classpath View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="testsrc"/>
<classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
<classpathentry kind="lib" path="/lib/junit/junit.jar" sourcepath="/lib/junit/junit-src.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

+ 2
- 0
util/.cvsignore View File

@@ -0,0 +1,2 @@
bin


+ 17
- 0
util/.project View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>util</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

Loading…
Cancel
Save