blob: 7863f733c0bfa0effe6dfd83c6a0db27903b561f (
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
85
86
|
DESCRIPTION = "Kaffe is a clean room implementation of the Java Virtual Machine"
HOMEPAGE = "http://www.kaffe.org/"
LICENSE = "GPL LGPL W3C Classpath BSD"
DEPENDS = "virtual/javac-native fastjar-native libffi zip-native libart-lgpl"
RDEPENDS_${PN} = "${PN}-common (>= ${PV})"
SRC_URI += "file://disable-automake-checks.patch;patch=1"
inherit autotools gettext
EXTRA_OECONF = "--with-engine=intrp \
--with-libffi \
--with-threads=unix-pthreads \
--disable-alsatest \
--disable-esdtest \
--disable-sound \
--with-jikes"
CFLAGS += "-D_GNU_SOURCE"
# kaffe installs to non-standard locations. apply a similar workaround to
# the one used in debian. i.e. override prefix
oe_runconf () {
if [ -x ${S}/configure ] ; then
cfgcmd="${S}/configure \
--build=${BUILD_SYS} \
--host=${HOST_SYS} \
--target=${TARGET_SYS} \
--prefix=${libdir}/${PN} \
--datadir=${datadir} \
--sysconfdir=${sysconfdir} \
--sharedstatedir=${sharedstatedir}/${PN} \
--includedir=${includedir} \
--oldincludedir=${oldincludedir} \
--infodir=${infodir} \
--mandir=${mandir} \
${EXTRA_OECONF} \
$@"
oenote "Running $cfgcmd..."
$cfgcmd || oefatal "oe_runconf failed"
else
oefatal "no configure script found"
fi
}
do_install () {
autotools_do_install
# move partially duplicate stuff to a single location
mv -f ${D}${libdir}/${PN}/bin/* ${D}${libdir}/${PN}/jre/bin
rmdir ${D}${libdir}/${PN}/bin
cd ${D}${libdir}/${PN} && ln -s jre/bin
}
# use update-alternatives for the various wrapper scripts
alternative_names = "appletviewer \
install-jar \
jar \
java \
javac \
javadoc \
javah \
javap \
kaffe \
kaffeh \
native2ascii \
rmic \
rmiregistry \
serialver"
pkg_postinst_${PN} () {
for name in ${alternative_names}; do
update-alternatives --install ${bindir}/$name $name ${libdir}/${PN}/jre/bin/$name 300
done
}
pkg_postrm_${PN} () {
for name in ${alternative_names}; do
update-alternatives --remove $name ${libdir}/${PN}/jre/bin/$name
done
}
PACKAGES =+ "${PN}-common"
FILES_${PN} += "${libdir}/${PN}"
FILES_${PN}-common = "${libdir}/${PN}/jre/lib/*.jar"
|