Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

makeAspectjtoolsLstFile.sh 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. #!/bin/bash
  2. # generate .lst file for aspectjtools.jar
  3. # by compile all non-testing src dirs
  4. # todo: copy ajbrowser manifest
  5. [ -n "$DEBUG" ] && set -vx
  6. usage() {
  7. name=`basename "$0"`
  8. cat<<EOF
  9. Usage: $name { build | manifest }
  10. For compiling aspectjtools-aj.jar using ajc, generate build/aspectjtools.lst
  11. and files it refers to, aspectjtools-sources.lst and aspectj-resources.jar.
  12. To add to aspectjtools.jar a meta-inf/manifest.mf with a main-class,
  13. specify a single argument: "manifest"
  14. To create the .lst file, use ajc to build, and add the manifest,
  15. define ASPECTJ_HOME and specify a single argument: "build"
  16. EOF
  17. }
  18. canonicalPath() {
  19. cygpath -ma "$@"
  20. }
  21. filterOutNonsourceDirs() {
  22. sed '/\/build\//d;/\/testing/d'
  23. }
  24. listSourceDirs() {
  25. for i in ../*/testsrc; do
  26. p=`echo $i \
  27. | filterOutNonsourceDirs \
  28. | sed 's|../\(.*\)/testsrc|\1|'`;
  29. p=`canonicalPath "../$p"`
  30. [ -d "$p/src" ] && echo "$p/src"
  31. done
  32. }
  33. generateSourcesLstFiles() {
  34. [ -n "$DEBUG" ] && set -vx
  35. rm -f aspectjtools-sources.lst;
  36. for i in `listSourceDirs` ; do
  37. find "$i" -type f -name \*.java \
  38. | sed 's|/[^/]*.java|/*.java|' \
  39. | sort -u ;
  40. done > aspectjtools-sources.lst;
  41. # head aspectjtools-sources.lst
  42. }
  43. genResourceJar() { # slow, but hey
  44. [ -n "$DEBUG" ] && set -vx
  45. jarFile=`canonicalPath "$1"`
  46. [ -n "$jarFile" ] || exit 43
  47. "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
  48. cfM "$jarFile" build.xml
  49. curDir=`pwd`;
  50. for i in `listSourceDirs` ; do
  51. cd "$i"
  52. "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
  53. ufM "$jarFile" `find . -type f | sed '/CVS/d;/\.java/d'`
  54. cd "$curDir"
  55. done
  56. cd "$curDir"
  57. # mf=`canonicalPath "grj_manifest.txt"`
  58. # sed 's|@build.version.short@|1.1.1|;s|@company.name@|na|' \
  59. # ../ajbrowser/ajbrowser.mf.txt > "$mf"
  60. # "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
  61. # ufm "$jarFile" "$mf" build.xml
  62. # rm "$mf"
  63. }
  64. addManifest() {
  65. outjar="$1"
  66. mf=`canonicalPath "grj_manifest.txt"`
  67. sed 's|@build.version.short@|1.1.1|;s|@company.name@|na|' \
  68. ../ajbrowser/ajbrowser.mf.txt > "$mf"
  69. echo "nothing" > am_nothing
  70. "${JAVA_HOME:-c:/home/apps/jdk14}/bin/"jar \
  71. ufm "$outjar" "$mf" am_nothing
  72. rm "$mf" am_nothing
  73. }
  74. getClasspath() {
  75. [ -n "$DEBUG" ] && set -vx
  76. ajrt=`canonicalPath "${ASPECTJ_HOME:-c:/home/apps/aspectj-1.1.1}/lib/aspectjrt.jar"`
  77. echo "${ajrt};`cygpath -ma ../lib/ant/lib/ant.jar`"
  78. }
  79. getInjars() {
  80. [ -n "$DEBUG" ] && set -vx
  81. cp=""
  82. sep=""
  83. for i in "$1" ../lib/bcel/bcel.jar \
  84. ../libx/jdtcore-aj/jdtcore-for-aspectj.jar \
  85. ; do
  86. cp="${cp}${sep}`canonicalPath "$i"`"
  87. [ -z "${sep}" ] && sep=";"
  88. done
  89. echo "$cp"
  90. }
  91. setupManifest() {
  92. [ -n "$DEBUG" ] && set -vx
  93. midir="../ajbrowser/src/META-INF"
  94. [ -d "$midir" ] || mkdir ../ajbrowser/src/META-INF
  95. sed 's|@build.version.short@|1.1.1|;s|@company.name@|na|' \
  96. ../ajbrowser/ajbrowser.mf.txt > "$1"
  97. }
  98. generateFile() {
  99. resourceJar="$1"
  100. outputJar="$2"
  101. [ -n "$DEBUG" ] && set -vx
  102. [ -f "$resourceJar" ] || exit 98
  103. [ -n "$outputJar" ] || exit 98
  104. rm -f "$outputJar"
  105. PS=";"
  106. #sourceroots=`getSourceroots`
  107. classpath=`getClasspath`
  108. injars=`getInjars "$resourceJar"`
  109. cat<<EOF
  110. # generated `date` by $0
  111. # remove this line if modifying this file
  112. -outjar
  113. $outputJar
  114. -classpath
  115. $classpath
  116. -injars
  117. $injars
  118. -argfile
  119. `canonicalPath aspectjtools-sources.lst`
  120. EOF
  121. }
  122. errExit() {
  123. [ -n "$1" ] && echo "## error: $1"
  124. [ -n "$2" ] && exit "$2"
  125. }
  126. #########################################################################
  127. #########################################################################
  128. scriptDir=`dirname "$0"`
  129. scriptDir=`cd "$scriptDir"; pwd`
  130. script=`canonicalPath "$0"`
  131. export PS=";" ### XXX platform
  132. ASPECTJ_HOME="${ASPECTJ_HOME:-~/dev/tools/aspectj-1.1.1}"
  133. export ASPECTJ_HOME=`cygpath -m "${ASPECTJ_HOME}"`
  134. cd "$scriptDir/.."
  135. outjar=`canonicalPath aspectjtools-aj.jar`
  136. if [ -f aspectjtools.lst ] ; then
  137. grep -q "remove this line" aspectjtools.lst \
  138. && rm -f aspectjtools.lst \
  139. || exit 23
  140. fi
  141. set -e
  142. if [ "$1" = "manifest" ] ; then
  143. addManifest "$outjar"
  144. elif [ "build" = "$1" ] ; then
  145. [ "$script" -ot aspectjtools.lst ] || "$script"
  146. [ -d "$ASPECTJ_HOME" ] || errExit "define ASPECTJ_HOME" 49
  147. "$ASPECTJ_HOME"/bin/ajc -argfile aspectjtools.lst
  148. "$script" manifest
  149. elif [ -n "$1" ] ; then
  150. usage
  151. else
  152. generateSourcesLstFiles
  153. resourceJar=`canonicalPath aspectjtools-resources.jar`
  154. [ -f "$resourceJar" ] || genResourceJar "$resourceJar"
  155. outjar=`canonicalPath aspectjtools-aj.jar`
  156. rm -f aspectjtools.lst
  157. generateFile "$resourceJar" "$outjar" > aspectjtools.lst
  158. ls -ald "$resourceJar" aspectjtools.lst
  159. fi