You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

bootstrap.sh 3.6 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. #!/bin/sh
  2. # Copyright (c) 2000-2002 The Apache Software Foundation. All rights
  3. # reserved.
  4. # OS specific support. $var _must_ be set to either true or false.
  5. cygwin=false;
  6. case "`uname`" in
  7. CYGWIN*) cygwin=true ;;
  8. esac
  9. # For Cygwin, ensure paths are in UNIX format before anything is touched
  10. if $cygwin ; then
  11. [ -n "$JAVA_HOME" ] &&
  12. JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  13. [ -n "$CLASSPATH" ] &&
  14. CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
  15. fi
  16. # You will need to specify JAVA_HOME if compiling with 1.2 or later.
  17. if [ -n "$JAVA_HOME" ] ; then
  18. if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
  19. CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
  20. fi
  21. if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
  22. CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/classes.zip
  23. fi
  24. else
  25. echo "Warning: JAVA_HOME environment variable not set."
  26. echo " If build fails because sun.* classes could not be found"
  27. echo " you will need to set the JAVA_HOME environment variable"
  28. echo " to the installation directory of java."
  29. fi
  30. # IBM's JDK on AIX uses strange locations for the executables:
  31. # JAVA_HOME/jre/sh for java and rmid
  32. # JAVA_HOME/sh for javac and rmic
  33. if [ -z "$JAVAC" ] ; then
  34. if [ -n "$JAVA_HOME" ] ; then
  35. if [ -x "$JAVA_HOME/sh/javac" ] ; then
  36. JAVAC=${JAVA_HOME}/sh/javac;
  37. else
  38. JAVAC=${JAVA_HOME}/bin/javac;
  39. fi
  40. else
  41. JAVAC=javac
  42. fi
  43. fi
  44. if [ -z "$JAVACMD" ] ; then
  45. if [ -n "$JAVA_HOME" ] ; then
  46. if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
  47. JAVACMD=$JAVA_HOME/jre/sh/java
  48. else
  49. JAVACMD=$JAVA_HOME/bin/java
  50. fi
  51. else
  52. JAVACMD=java
  53. fi
  54. fi
  55. if [ ! -x "$JAVACMD" ] ; then
  56. echo "Error: JAVA_HOME is not defined correctly."
  57. echo " We cannot execute $JAVACMD"
  58. exit
  59. fi
  60. ANT_HOME=.
  61. export ANT_HOME
  62. echo ... Bootstrapping Ant Distribution
  63. if [ -d "bootstrap" ] ; then
  64. rm -r bootstrap
  65. fi
  66. if [ -d "build" ] ; then
  67. rm -r build
  68. fi
  69. CLASSPATH=lib/xercesImpl.jar:lib/xml-apis.jar:${CLASSPATH}
  70. DIRLIBS=lib/optional/*.jar
  71. for i in ${DIRLIBS}
  72. do
  73. # if the directory is empty, then it will return the input string
  74. # this is stupid, so case for it
  75. if [ "$i" != "${DIRLIBS}" ] ; then
  76. CLASSPATH=$CLASSPATH:"$i"
  77. fi
  78. done
  79. TOOLS=src/main/org/apache/tools
  80. CLASSDIR=build/classes
  81. CLASSPATH=${CLASSDIR}:src/main:${CLASSPATH}
  82. # For Cygwin, switch to Windows format before running java
  83. if $cygwin; then
  84. CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  85. fi
  86. export CLASSPATH
  87. mkdir -p build
  88. mkdir -p ${CLASSDIR}
  89. mkdir -p bin
  90. echo ... Compiling Ant Classes
  91. "${JAVAC}" $BOOTJAVAC_OPTS -d ${CLASSDIR} ${TOOLS}/bzip2/*.java ${TOOLS}/tar/*.java ${TOOLS}/zip/*.java \
  92. ${TOOLS}/ant/util/regexp/RegexpMatcher.java \
  93. ${TOOLS}/ant/util/regexp/RegexpMatcherFactory.java \
  94. ${TOOLS}/ant/util/*.java ${TOOLS}/ant/types/*.java \
  95. ${TOOLS}/ant/*.java ${TOOLS}/ant/taskdefs/*.java \
  96. ${TOOLS}/ant/taskdefs/compilers/*.java \
  97. ${TOOLS}/ant/taskdefs/condition/*.java
  98. ret=$?
  99. if [ $ret != 0 ]; then
  100. echo ... Failed compiling Ant classes !
  101. exit $ret
  102. fi
  103. echo ... Copying Required Files
  104. cp src/main/org/apache/tools/ant/taskdefs/defaults.properties \
  105. ${CLASSDIR}/org/apache/tools/ant/taskdefs
  106. cp src/main/org/apache/tools/ant/types/defaults.properties \
  107. ${CLASSDIR}/org/apache/tools/ant/types
  108. cp src/script/antRun bin
  109. chmod +x bin/antRun
  110. echo ... Building Ant Distribution
  111. "${JAVACMD}" -classpath "${CLASSPATH}" -Dant.home=. $ANT_OPTS org.apache.tools.ant.Main -emacs "$@" bootstrap
  112. ret=$?
  113. if [ $ret != 0 ]; then
  114. echo ... Failed Building Ant Distribution !
  115. exit $ret
  116. fi
  117. echo ... Cleaning Up Build Directories
  118. rm -rf ${CLASSDIR}
  119. rm -rf bin
  120. echo ... Done Bootstrapping Ant Distribution