123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- #!/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 \
- ../libx/jdtcore-aj/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
|