summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2009-01-06 22:10:17 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2009-01-06 22:10:17 (GMT)
commit0cd8441a97651e1a180a34ad82f927f31b04daaf (patch)
tree3918b0974d4caf853cda51030236c204be1f8f94
parent0b28fc00e162be1e5449762ee51807377ddb7ba0 (diff)
Add the Eclipse Java Compiler to be able to compile Java.
Andy JOHNSON wrote: The Java compiler for GCC versions 4.3.0 and up requires the Eclipse compiler "ecj1" to be built as well. I added "gcj" to the list of utilities to make the initial link. /trunk/scripts/build/cc/gcc.sh | 12 12 0 0 ++++++++++++ /trunk/scripts/crosstool.sh | 2 1 1 0 +- /trunk/config/cc/gcc.in | 6 6 0 0 ++++++ 3 files changed, 19 insertions(+), 1 deletion(-)
-rw-r--r--config/cc/gcc.in6
-rw-r--r--scripts/build/cc/gcc.sh12
-rwxr-xr-xscripts/crosstool.sh2
3 files changed, 19 insertions, 1 deletions
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index 610ac59..9eb99b1 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -223,3 +223,9 @@ config CC_BUGURL
default ""
help
Specify the URL that users should visit if they wish to report a bug.
+
+config CC_LANG_JAVA_USE_ECJ
+ bool
+ default y
+ depends on CC_LANG_JAVA
+ depends on CC_GCC_4_3_or_later
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
index 1263e76..3274abc 100644
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -12,12 +12,24 @@ do_cc_get() {
# subdirectory! You bastard!
CT_GetFile "gcc-${CT_CC_VERSION}" \
{ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_VERSION}}
+ # Starting with GCC 4.3, ecj is used for Java, and will only be
+ # built if the configure script finds ecj.jar at the top of the
+ # GCC source tree, which will not be there unless we get it and
+ # put it there ourselves
+ if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" ]; then
+ CT_GetFile ecj-latest .jar ftp://gcc.gnu.org/pub/java \
+ ftp://sourceware.org/pub/java
+ fi
}
# Extract gcc
do_cc_extract() {
CT_Extract "gcc-${CT_CC_VERSION}"
CT_Patch "gcc-${CT_CC_VERSION}"
+ # Copy ecj-latest.jar to ecj.jar at the top of the GCC source tree
+ if [ "${CT_CC_LANG_JAVA_USE_ECJ}" = "y" ]; then
+ CT_DoExecLog ALL cp -v "${CT_TARBALLS_DIR}/ecj-latest.jar" "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}/ecj.jar"
+ fi
}
#------------------------------------------------------------------------------
diff --git a/scripts/crosstool.sh b/scripts/crosstool.sh
index 228cb54..b00baa1 100755
--- a/scripts/crosstool.sh
+++ b/scripts/crosstool.sh
@@ -315,7 +315,7 @@ if [ -z "${CT_RESTART}" ]; then
t="${!r}-"
fi
- for tool in ar as dlltool gcc g++ gnatbind gnatmake ld nm objcopy objdump ranlib strip windres; do
+ for tool in ar as dlltool gcc g++ gcj gnatbind gnatmake ld nm objcopy objdump ranlib strip windres; do
# First try with prefix + suffix
# Then try with prefix only
# Then try with suffix only, but only for BUILD, and HOST iff REAL_BUILD == REAL_HOST