dev-java/tomcat-servlet-api: x86 stable wrt bug #722654
[gentoo.git] / dev-java / eclipse-ecj / eclipse-ecj-4.2.1.ebuild
1 # Copyright 1999-2018 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI="4"
5
6 inherit java-pkg-2
7
8 MY_PN="ecj"
9 DMF="R-${PV}-201209141800"
10
11 DESCRIPTION="Eclipse Compiler for Java"
12 HOMEPAGE="http://www.eclipse.org/"
13 SRC_URI="http://download.eclipse.org/eclipse/downloads/drops4/${DMF}/${MY_PN}src-${PV}.jar"
14
15 LICENSE="EPL-1.0"
16 KEYWORDS="amd64 ppc64 x86 ~amd64-linux ~x86-linux ~x86-solaris"
17 SLOT="4.2"
18 IUSE="+ant userland_GNU"
19
20 COMMON_DEP="
21         app-eselect/eselect-java"
22 RDEPEND="${COMMON_DEP}
23         >=virtual/jre-1.4"
24 DEPEND="${COMMON_DEP}
25         >=virtual/jdk-1.6
26         app-arch/unzip
27         userland_GNU? ( sys-apps/findutils )"
28 PDEPEND="
29         ant? ( ~dev-java/ant-eclipse-ecj-${PV} )"
30
31 S="${WORKDIR}"
32
33 JAVA_PKG_WANT_SOURCE=1.4
34 JAVA_PKG_WANT_TARGET=1.4
35
36 java_prepare() {
37         # These have their own package.
38         rm -f org/eclipse/jdt/core/JDTCompilerAdapter.java || die
39         rm -fr org/eclipse/jdt/internal/antadapter || die
40 }
41
42 src_compile() {
43         local javac_opts javac java jar
44
45         javac_opts="$(java-pkg_javac-args) -encoding ISO-8859-1"
46         javac="$(java-config -c)"
47         java="$(java-config -J)"
48         jar="$(java-config -j)"
49
50         find org/ -path org/eclipse/jdt/internal/compiler/apt -prune -o \
51                 -path org/eclipse/jdt/internal/compiler/tool -prune -o -name '*.java' \
52                 -print > sources-1.4
53         find org/eclipse/jdt/internal/compiler/{apt,tool} -name '*.java' > sources-1.6
54
55         mkdir -p bootstrap || die
56         cp -pPR org META-INF bootstrap || die
57         cd "${S}/bootstrap" || die
58
59         einfo "bootstrapping ${MY_PN} with ${javac} ..."
60         ${javac} ${javac_opts} @../sources-1.4 || die
61         ${javac} -encoding ISO-8859-1 -source 1.6 -target 1.6 @../sources-1.6 || die
62
63         find org/ META-INF/ \( -name '*.class' -o -name '*.properties' -o -name '*.rsc' -o -name '*.inf' -o -name '*.props' \) \
64                 -exec ${jar} cf ${MY_PN}.jar {} + || die
65
66         cd "${S}" || die
67         einfo "building ${MY_PN} with bootstrapped ${MY_PN} ..."
68         ${java} -classpath bootstrap/${MY_PN}.jar \
69                 org.eclipse.jdt.internal.compiler.batch.Main \
70                 ${javac_opts} -nowarn @sources-1.4 || die
71         ${java} -classpath bootstrap/${MY_PN}.jar \
72                 org.eclipse.jdt.internal.compiler.batch.Main \
73                 -encoding ISO-8859-1 -source 1.6 -target 1.6 -nowarn @sources-1.6 || die
74
75         find org/ META-INF/ \( -name '*.class' -o -name '*.properties' -o -name '*.rsc' -o -name '*.inf' -o -name '*.props' \) \
76                 -exec ${jar} cf ${MY_PN}.jar {} + || die
77 }
78
79 src_install() {
80         java-pkg_dolauncher ${MY_PN}-${SLOT} --main \
81                 org.eclipse.jdt.internal.compiler.batch.Main
82
83         # disable the class version verify, this has intentionally
84         # some classes with 1.6, but most is 1.4
85         JAVA_PKG_STRICT="" java-pkg_dojar ${MY_PN}.jar
86 }
87
88 pkg_postinst() {
89         einfo "To select between slots of ECJ..."
90         einfo " # eselect ecj"
91
92         eselect ecj update ecj-${SLOT}
93 }
94
95 pkg_postrm() {
96         eselect ecj update
97 }