blob: dcc08139c17fd11e40ae47e3645cd6bfae79151b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
# and no less features.
# This variant runs on the initial (not Java5-compatible runtime).
DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
HOMEPAGE = "http://www.eclipse.org/"
LICENSE = "EPL"
DEPENDS = "fastjar-native unzip-native jikes-initial virtual/java-initial"
SRC_URI = "\
http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.4-200806172000/ecjsrc.zip \
file://ecj.in \
"
S = "${WORKDIR}"
inherit native
JAR = "ecj-bootstrap-${PV}.jar"
do_unpackpost() {
if [ ! -d source ]; then
mkdir source
fi
if [ ! -d build ]; then
mkdir build
fi
# Remove crap.
rm about.html build.xml
rm -rf META-INF
# Move source into separate subdir.
mv org source/
# Remove stuff unneeded for the bootstrap compiler.
rm -rf source/org/eclipse/jdt/internal/compiler/apt
rm -rf source/org/eclipse/jdt/internal/compiler/tool
rm -rf source/org/eclipse/jdt/internal/antadapter
rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java
# Make a copy of the remaining source to get the embedded
# resources.
cp -r source/org build/
# Remove source code and other stuff.
find build -name '*.java' -exec rm -f {} \;
find build -name '*.html' -exec rm -f {} \;
}
addtask unpackpost after do_unpack before do_patch
do_compile() {
find source -name '*.java' > sourcefiles
split -l 25 sourcefiles ecj-sources.
# Compiling in place is done because the sources contain
# property files which need to be available at runtime.
for list in `find . -name 'ecj-sources.*'`; do
echo "building files in $list ...";
echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`;
jikes-initial \
-d build -source 1.4 -sourcepath source `cat $list`;
done
fastjar -c -C build . -f ${JAR}
# Create the start script
echo "#!/bin/sh" > ecj-initial
echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial
echo "RUNTIME=java-initial" >> ecj-initial
cat ecj.in >> ecj-initial
}
do_stage() {
install -d ${STAGING_DATADIR}/java
install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java
install -d ${STAGING_BINDIR}
install -m 755 ${S}/ecj-initial ${STAGING_BINDIR}
}
|