diff options
author | wisberg <wisberg> | 2003-12-15 12:37:08 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2003-12-15 12:37:08 +0000 |
commit | 700a1a3b0cbe02993fedf1bc9598dd96fc5aab85 (patch) | |
tree | 89693beb743651b5a7034d6b3ae2f2d902ff7488 | |
parent | 18bc9e7ebbe011bcfa3ab942c766bd2fa13081b4 (diff) | |
download | aspectj-700a1a3b0cbe02993fedf1bc9598dd96fc5aab85.tar.gz aspectj-700a1a3b0cbe02993fedf1bc9598dd96fc5aab85.zip |
simple script to compile aspectjtools using ajc
-rw-r--r-- | build/scripts/makeAspectjtoolsLstFile.sh | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/build/scripts/makeAspectjtoolsLstFile.sh b/build/scripts/makeAspectjtoolsLstFile.sh new file mode 100644 index 000000000..50a705db0 --- /dev/null +++ b/build/scripts/makeAspectjtoolsLstFile.sh @@ -0,0 +1,180 @@ +#!/bin/bash
+# generate .lst file for aspectjtools.jar
+# by compile all non-testing src dirs
+# todo: copy ajbrowser manifest
+[ -n "$DEBUG" ] && set -vx
+
+usage() {
+ name=`basename "$0"`
+ cat<<EOF
+ Usage: $name { build | manifest }
+For compiling aspectjtools-aj.jar using ajc, generate build/aspectjtools.lst
+and files it refers to, aspectjtools-sources.lst and aspectj-resources.jar.
+
+To add to aspectjtools.jar a meta-inf/manifest.mf with a main-class,
+specify a single argument: "manifest"
+
+To create the .lst file, use ajc to build, and add the manifest,
+define ASPECTJ_HOME and specify a single argument: "build"
+
+EOF
+}
+
+canonicalPath() {
+ cygpath -ma "$@"
+}
+
+filterOutNonsourceDirs() {
+ sed '/\/build\//d;/\/testing/d'
+}
+
+listSourceDirs() {
+ for i in ../*/testsrc; do
+ p=`echo $i \
+ | filterOutNonsourceDirs \
+ | sed 's|../\(.*\)/testsrc|\1|'`;
+ p=`canonicalPath "../$p"`
+ [ -d "$p/src" ] && echo "$p/src"
+ done
+}
+
+generateSourcesLstFiles() {
+ [ -n "$DEBUG" ] && set -vx
+ rm -f aspectjtools-sources.lst;
+ for i in `listSourceDirs` ; do
+ find "$i" -type f -name \*.java \
+ | sed 's|/[^/]*.java|/*.java|' \
+ | sort -u ;
+ done > aspectjtools-sources.lst;
+ # head aspectjtools-sources.lst
+}
+
+genResourceJar() { # slow, but hey
+ [ -n "$DEBUG" ] && set -vx
+ jarFile=`canonicalPath "$1"`
+ [ -n "$jarFile" ] || exit 43
+
+ "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
+ cfM "$jarFile" build.xml
+
+ curDir=`pwd`;
+ for i in `listSourceDirs` ; do
+ cd "$i"
+ "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
+ ufM "$jarFile" `find . -type f | sed '/CVS/d;/\.java/d'`
+ cd "$curDir"
+ done
+ cd "$curDir"
+
+# mf=`canonicalPath "grj_manifest.txt"`
+# sed 's|@build.version.short@|1.1.1|;s|@company.name@|na|' \
+# ../ajbrowser/ajbrowser.mf.txt > "$mf"
+# "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
+# ufm "$jarFile" "$mf" build.xml
+# rm "$mf"
+}
+
+addManifest() {
+ outjar="$1"
+ mf=`canonicalPath "grj_manifest.txt"`
+ sed 's|@build.version.short@|1.1.1|;s|@company.name@|na|' \
+ ../ajbrowser/ajbrowser.mf.txt > "$mf"
+ echo "nothing" > am_nothing
+ "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
+ ufm "$outjar" "$mf" am_nothing
+ rm "$mf" am_nothing
+}
+
+getClasspath() {
+ [ -n "$DEBUG" ] && set -vx
+ ajrt=`canonicalPath "${ASPECTJ_HOME:-c:/home/apps/aspectj-1.1.1}/lib/aspectjrt.jar"`
+ echo "${ajrt};`cygpath -ma ../lib/ant/lib/ant.jar`"
+}
+
+getInjars() {
+ [ -n "$DEBUG" ] && set -vx
+ cp=""
+ sep=""
+ for i in "$1" ../lib/bcel/bcel.jar \
+ ../org.eclipse.jdt.core/jdtcore-for-aspectj.jar \
+ ; do
+ cp="${cp}${sep}`canonicalPath "$i"`"
+ [ -z "${sep}" ] && sep=";"
+ done
+ echo "$cp"
+}
+
+setupManifest() {
+ [ -n "$DEBUG" ] && set -vx
+ midir="../ajbrowser/src/META-INF"
+ [ -d "$midir" ] || mkdir ../ajbrowser/src/META-INF
+ sed 's|@build.version.short@|1.1.1|;s|@company.name@|na|' \
+ ../ajbrowser/ajbrowser.mf.txt > "$1"
+}
+
+generateFile() {
+ resourceJar="$1"
+ outputJar="$2"
+ [ -n "$DEBUG" ] && set -vx
+ [ -f "$resourceJar" ] || exit 98
+ [ -n "$outputJar" ] || exit 98
+ rm -f "$outputJar"
+ PS=";"
+ #sourceroots=`getSourceroots`
+ classpath=`getClasspath`
+ injars=`getInjars "$resourceJar"`
+ cat<<EOF
+# generated `date` by $0
+# remove this line if modifying this file
+-outjar
+$outputJar
+-classpath
+$classpath
+-injars
+$injars
+-argfile
+`canonicalPath aspectjtools-sources.lst`
+EOF
+}
+
+errExit() {
+ [ -n "$1" ] && echo "## error: $1"
+ [ -n "$2" ] && exit "$2"
+}
+
+#########################################################################
+#########################################################################
+scriptDir=`dirname "$0"`
+scriptDir=`cd "$scriptDir"; pwd`
+script=`canonicalPath "$0"`
+export PS=";" ### XXX platform
+ASPECTJ_HOME="${ASPECTJ_HOME:-~/dev/tools/aspectj-1.1.1}"
+export ASPECTJ_HOME=`cygpath -m "${ASPECTJ_HOME}"`
+
+cd "$scriptDir/.."
+outjar=`canonicalPath aspectjtools-aj.jar`
+
+if [ -f aspectjtools.lst ] ; then
+ grep -q "remove this line" aspectjtools.lst \
+ && rm -f aspectjtools.lst \
+ || exit 23
+fi
+set -e
+if [ "$1" = "manifest" ] ; then
+ addManifest "$outjar"
+elif [ "build" = "$1" ] ; then
+ [ "$script" -ot aspectjtools.lst ] || "$script"
+ [ -d "$ASPECTJ_HOME" ] || errExit "define ASPECTJ_HOME" 49
+ "$ASPECTJ_HOME"/bin/ajc -argfile aspectjtools.lst
+ "$script" manifest
+elif [ -n "$1" ] ; then
+ usage
+else
+ generateSourcesLstFiles
+ resourceJar=`canonicalPath aspectjtools-resources.jar`
+ [ -f "$resourceJar" ] || genResourceJar "$resourceJar"
+ outjar=`canonicalPath aspectjtools-aj.jar`
+ rm -f aspectjtools.lst
+ generateFile "$resourceJar" "$outjar" > aspectjtools.lst
+ ls -ald "$resourceJar" aspectjtools.lst
+fi
|