diff options
author | Maho Nakata <maho@FreeBSD.org> | 2006-08-03 00:22:06 +0000 |
---|---|---|
committer | Maho Nakata <maho@FreeBSD.org> | 2006-08-03 00:22:06 +0000 |
commit | 4def9726efa65aceeb1e0a7c4004ab099531fab4 (patch) | |
tree | 49e052e3e29184f85a965a93a427a61c2a38a956 /java | |
parent | 7b313cf2930ed63f7df1de44fd42fd6afea208c0 (diff) | |
download | ports-4def9726efa65aceeb1e0a7c4004ab099531fab4.tar.gz ports-4def9726efa65aceeb1e0a7c4004ab099531fab4.zip |
The JDT Core Batch Compiler (stand alone verison of the Eclipse
Java Compiler).
This compiler is compatible with Java 1.3, 1.4 and 1.5.
WWW: http://www.eclipse.org
Notes
Notes:
svn path=/head/; revision=169509
Diffstat (limited to 'java')
-rw-r--r-- | java/Makefile | 1 | ||||
-rw-r--r-- | java/ecj-bootstrap/Makefile | 56 | ||||
-rw-r--r-- | java/ecj-bootstrap/distinfo | 6 | ||||
-rw-r--r-- | java/ecj-bootstrap/files/build.sh | 68 | ||||
-rw-r--r-- | java/ecj-bootstrap/files/patch-encoding | 32 | ||||
-rw-r--r-- | java/ecj-bootstrap/files/patch-gcjant | 22 | ||||
-rw-r--r-- | java/ecj-bootstrap/pkg-descr | 5 | ||||
-rw-r--r-- | java/ecj-bootstrap/pkg-plist | 4 |
8 files changed, 194 insertions, 0 deletions
diff --git a/java/Makefile b/java/Makefile index 8cbf39f7fb75..36d610c21a32 100644 --- a/java/Makefile +++ b/java/Makefile @@ -16,6 +16,7 @@ SUBDIR += diablo-jdk15 SUBDIR += diablo-jre15 SUBDIR += drexelsnmp + SUBDIR += ecj-bootstrap SUBDIR += eclipse SUBDIR += eclipse-EPIC SUBDIR += eclipse-cdt diff --git a/java/ecj-bootstrap/Makefile b/java/ecj-bootstrap/Makefile new file mode 100644 index 000000000000..98af3f974a34 --- /dev/null +++ b/java/ecj-bootstrap/Makefile @@ -0,0 +1,56 @@ +# New ports collection makefile for: ecj-bootstrap +# Date created: August 2, 2006 +# Whom: NAKATA, Maho <maho@FreeBSD.org> +# +# $FreeBSD$ +# + +PORTNAME= ecj-bootstrap +PORTVERSION= 3.2 +CATEGORIES= java devel +MASTER_SITES= ${MASTER_SITE_ECLIPSE:S,%SUBDIR%/,R-${PORTVERSION}-200606291905/,} \ + ${MASTER_SITE_APACHE:S,%SUBDIR%/,ant/binaries/:antbin,} +DISTFILES= eclipse-sourceBuild-srcIncluded-${PORTVERSION}.zip \ + ${ANT_DISTFILE}:antbin +DIST_SUBDIR= eclipse +EXTRACT_ONLY= eclipse-sourceBuild-srcIncluded-${PORTVERSION}.zip + +MAINTAINER= maho@FreeBSD.org +COMMENT= The JDT Core Batch Compiler + +USE_ZIP= yes + +BUILD_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt +RUN_DEPENDS+= ${LOCALBASE}/libdata/ldconfig/gcc41-withgcjawt:${PORTSDIR}/lang/gcc41-withgcjawt + +ANT_DISTFILE= apache-ant-${ANT_VERSION}-bin.tar.bz2 +ANT_VERSION= 1.6.5 + +GCJ= gcj41 +GIJ= gij41 +JAR= fastjar41 +ANT= ${WRKDIR}/apache-ant-${ANT_VERSION}/bin/ant +GCJDBTOOL= gcj-dbtool41 +WRKSRC= ${WRKDIR} + +MAKE_ENV+= WRKDIR="${WRKDIR}" GCJ="${GCJ}" JAR="${JAR}" GCJDBTOOL="${GCJDBTOOL}"\ + ANT="${ANT}" JAVACMD="${WRKDIR}/gnugcj/bin/gij" PATH="${WRKDIR}/gnugcj/bin:${PATH}" + +post-extract: + @cd ${WRKDIR} ; ${CAT} ${DISTDIR}/${DIST_SUBDIR}/${ANT_DISTFILE} | ${BZIP2_CMD} -d | ${TAR} xf - + +pre-build: + @${MKDIR} ${WRKDIR}/gnugcj/bin + @${LN} -sf ${LOCALBASE}/bin/${GCJ} ${WRKDIR}/gnugcj/bin/gcj + @${LN} -sf ${LOCALBASE}/bin/${GIJ} ${WRKDIR}/gnugcj/bin/gij + +do-build: + @cd ${WRKDIR} ; ${SETENV} ${MAKE_ENV} ${SH} -x ${FILESDIR}/build.sh + +do-install: + ${INSTALL_PROGRAM} ${WRKDIR}/ecj-bootstrap-gcj ${PREFIX}/bin + ${LN} -fs ${PREFIX}/bin/ecj-bootstrap-gcj ${PREFIX}/bin/ecj + ${INSTALL_DATA} ${WRKDIR}/ecj.jar.so ${PREFIX}/lib + ${INSTALL_DATA} ${WRKDIR}/ecj.jar ${PREFIX}/share/java/ +# ${INSTALL_DATA} ${WRKDIR}/ecj.db ${PREFIX}/share/gcj-4.1/classmap.d +.include <bsd.port.mk> diff --git a/java/ecj-bootstrap/distinfo b/java/ecj-bootstrap/distinfo new file mode 100644 index 000000000000..3ea6ac154eb2 --- /dev/null +++ b/java/ecj-bootstrap/distinfo @@ -0,0 +1,6 @@ +MD5 (eclipse/eclipse-sourceBuild-srcIncluded-3.2.zip) = 67b41802092d4b2f779fb756dcaec85c +SHA256 (eclipse/eclipse-sourceBuild-srcIncluded-3.2.zip) = e9366fd3046be753f821be786156c472148928101cf6bf8f9d31b455cb6039da +SIZE (eclipse/eclipse-sourceBuild-srcIncluded-3.2.zip) = 82018640 +MD5 (eclipse/apache-ant-1.6.5-bin.tar.bz2) = 26031ee1a2fd248ad0cc2e7f17c44c39 +SHA256 (eclipse/apache-ant-1.6.5-bin.tar.bz2) = d463b8259cb199cd26799c817756c73e4e7808b0cf915f86841ac9779e0f9936 +SIZE (eclipse/apache-ant-1.6.5-bin.tar.bz2) = 6743024 diff --git a/java/ecj-bootstrap/files/build.sh b/java/ecj-bootstrap/files/build.sh new file mode 100644 index 000000000000..aa8b03563348 --- /dev/null +++ b/java/ecj-bootstrap/files/build.sh @@ -0,0 +1,68 @@ +#!/bin/sh +# taken from eclipse.spec of +# <fedora mirror>/fedora/core/5/source/SRPMS/eclipse-3.1.2-1jpp_13fc.src.rpm +# for fedora mirror, please consult following site. +# http://fedora.redhat.com/download/mirrors.html + + # Bootstrapping is 3 parts: + # 1. Build ecj with gcj -C + # 2. Build ecj with gcj-built ecj ("javac") + # 3. Re-build ecj with output of 2. + + # Unzip the "stable compiler" source into a temp dir and build it. + # Note: we don't want to build the CompilerAdapter. + + mkdir ecj-bootstrap-tmp + unzip -qq -d ecj-bootstrap-tmp jdtcoresrc/src/ecj.zip + rm -f ecj-bootstrap-tmp/org/eclipse/jdt/core/JDTCompilerAdapter.java + + # 1a. Build ecj with gcj -C + cd ecj-bootstrap-tmp + for f in `find . -name '*.java' | cut -c 3-`; do + ${GCJ} -Wno-deprecated -C $f + done + find . -name '*.class' -or -name '*.properties' -or -name '*.rsc' |\ + xargs ${JAR} cf ../ecj-bootstrap.jar + cd .. + + # Delete our modified ecj and restore the backup + rm -rf ecj-bootstrap-tmp + + # 1b. Natively-compile it + + ${GCJ} -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic -o ecj-bootstrap.jar.so ecj-bootstrap.jar + + ${GCJDBTOOL} -n ecj-bootstrap.db 30000 + ${GCJDBTOOL} -a ecj-bootstrap.db ecj-bootstrap.jar ecj-bootstrap.jar.so + + # 2a. Build ecj + export CLASSPATH=ecj-bootstrap.jar:$ORIGCLASSPATH + export ANT_OPTS="-Dgnu.gcj.precompiled.db.path=`pwd`/ecj-bootstrap.db" + ${ANT} -Dbuild.compiler=gcj -buildfile jdtcoresrc/compilejdtcorewithjavac.xml + + ${GCJ} -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic \ + -o jdtcoresrc/ecj.jar.so jdtcoresrc/ecj.jar + + ${GCJDBTOOL} -n jdtcoresrc/ecj.db 30000 + ${GCJDBTOOL} -a jdtcoresrc/ecj.db jdtcoresrc/ecj.jar jdtcoresrc/ecj.jar.so + + # Remove our gcj-built ecj + rm ecj-bootstrap.db ecj-bootstrap.jar ecj-bootstrap.jar.so + + # To enSURE we're not using any pre-compiled ecj on the build system, set this + export ANT_OPTS="-Dgnu.gcj.precompiled.db.path=`pwd`/jdtcoresrc/ecj.db" + + # 3. Use this ecj to rebuild itself + export CLASSPATH=`pwd`/jdtcoresrc/ecj.jar:$ORIGCLASSPATH + ${ANT} -Dbuild.compiler=gcj -buildfile jdtcoresrc/compilejdtcore.xml + + # Natively-compile it + ${GCJ} -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic \ + -o ecj.jar.so ecj.jar + ${GCJDBTOOL} -n ecj.db 30000 + ${GCJDBTOOL} -a ecj.db ecj.jar ecj.jar.so + export ANT_OPTS="-Dgnu.gcj.precompiled.db.path=`pwd`/ecj.db" + rm jdtcoresrc/ecj.db jdtcoresrc/ecj.jar.so + + # Creating native executable + ${GCJ} -O2 -g -Wl,-Bsymbolic -fPIC -fjni -findirect-dispatch --main=org.eclipse.jdt.internal.compiler.batch.Main -o ecj-bootstrap-gcj ecj.jar diff --git a/java/ecj-bootstrap/files/patch-encoding b/java/ecj-bootstrap/files/patch-encoding new file mode 100644 index 000000000000..f3a2d16eee91 --- /dev/null +++ b/java/ecj-bootstrap/files/patch-encoding @@ -0,0 +1,32 @@ +A workaround for running ant with gcj. + +--- jdtcoresrc/compilejdtcorewithjavac.xml~ Fri Jun 30 08:20:48 2006 ++++ jdtcoresrc/compilejdtcorewithjavac.xml Wed Aug 2 23:09:35 2006 +@@ -15,7 +15,7 @@ + <delete dir="${destdir}"/> + <mkdir dir="${destdir}"/> + +- <property name="compilerArg" value="-encoding ISO-8859-1" /> ++ <property name="compilerArg" value="-encoding=ISO-8859-1" /> + <property name="javacSource" value="1.3" /> + <property name="javacTarget" value="1.2" /> + <property name="javacDebugInfo" value="on" /> +--- jdtcoresrc/compilejdtcore.xml~ Fri Jun 30 08:20:48 2006 ++++ jdtcoresrc/compilejdtcore.xml Wed Aug 2 23:11:00 2006 +@@ -25,14 +25,14 @@ + </condition> + </fail> + +- <condition property="compilerArg" value="-encoding ISO-8859-1"> ++ <condition property="compilerArg" value="-encoding=ISO-8859-1"> + <equals arg1="${build.compiler}" arg2="org.eclipse.jdt.core.JDTCompilerAdapter" /> + </condition> + + <echo message="compilerArg ${compilerArg}"/> + <echo message="build compiler ${build.compiler}"/> + +- <property name="compilerArg" value="-encoding ISO-8859-1" /> ++ <property name="compilerArg" value="-encoding=ISO-8859-1" /> + <property name="javacSource" value="1.3" /> + <property name="javacTarget" value="1.2" /> + <property name="javacDebugInfo" value="on" /> diff --git a/java/ecj-bootstrap/files/patch-gcjant b/java/ecj-bootstrap/files/patch-gcjant new file mode 100644 index 000000000000..0581579cfcb6 --- /dev/null +++ b/java/ecj-bootstrap/files/patch-gcjant @@ -0,0 +1,22 @@ +a workaround for running ant with gcj. ant+gcj +somehow doesn't find ecj.jar. + +--- jdtcoresrc/compilejdtcore.xml~ Thu Aug 3 00:17:48 2006 ++++ jdtcoresrc/compilejdtcore.xml Thu Aug 3 00:19:33 2006 +@@ -14,16 +14,6 @@ + <delete dir="${destdir}"/> + <mkdir dir="${destdir}"/> + +- <condition property="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"> +- <available file="ecj.jar" /> +- </condition> +- <fail message="The Eclipse compiler (ecj.jar) cannot be found."> +- <condition> +- <not> +- <equals arg1="${build.compiler}" arg2="org.eclipse.jdt.core.JDTCompilerAdapter" /> +- </not> +- </condition> +- </fail> + + <condition property="compilerArg" value="-encoding=ISO-8859-1"> + <equals arg1="${build.compiler}" arg2="org.eclipse.jdt.core.JDTCompilerAdapter" /> diff --git a/java/ecj-bootstrap/pkg-descr b/java/ecj-bootstrap/pkg-descr new file mode 100644 index 000000000000..03bf1dfb22ac --- /dev/null +++ b/java/ecj-bootstrap/pkg-descr @@ -0,0 +1,5 @@ +The JDT Core Batch Compiler (stand alone verison of the Eclipse +Java Compiler). +This compiler is compatible with Java 1.3, 1.4 and 1.5. + +WWW: http://www.eclipse.org/ diff --git a/java/ecj-bootstrap/pkg-plist b/java/ecj-bootstrap/pkg-plist new file mode 100644 index 000000000000..af6143de7fbf --- /dev/null +++ b/java/ecj-bootstrap/pkg-plist @@ -0,0 +1,4 @@ +bin/ecj-bootstrap-gcj +bin/ecj +lib/ecj.jar.so +share/java/ecj.jar |