1 |
commit: 9510f103db692ccc77f5988bbdd4d0d0f33b0b87 |
2 |
Author: Matthew Brewer <tomboy64 <AT> sina <DOT> cn> |
3 |
AuthorDate: Wed May 25 12:16:40 2016 +0000 |
4 |
Commit: M. B. <tomboy64 <AT> sina <DOT> cn> |
5 |
CommitDate: Wed May 25 16:16:31 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/user/tbc.git/commit/?id=9510f103 |
7 |
|
8 |
new experimental perl6 ebuilds |
9 |
|
10 |
dev-lang/nqp/nqp-2016.04-r4.ebuild | 114 +++++++++++++++++++++ |
11 |
...rakudo-9999.ebuild => rakudo-2016.04-r3.ebuild} | 56 +++++----- |
12 |
2 files changed, 143 insertions(+), 27 deletions(-) |
13 |
|
14 |
diff --git a/dev-lang/nqp/nqp-2016.04-r4.ebuild b/dev-lang/nqp/nqp-2016.04-r4.ebuild |
15 |
new file mode 100644 |
16 |
index 0000000..6d3e38e |
17 |
--- /dev/null |
18 |
+++ b/dev-lang/nqp/nqp-2016.04-r4.ebuild |
19 |
@@ -0,0 +1,114 @@ |
20 |
+# Copyright 1999-2016 Gentoo Foundation |
21 |
+# Distributed under the terms of the GNU General Public License v2 |
22 |
+# $Id$ |
23 |
+ |
24 |
+EAPI=5 |
25 |
+ |
26 |
+inherit java-pkg-opt-2 |
27 |
+ |
28 |
+if [[ ${PV} == "9999" ]]; then |
29 |
+ EGIT_REPO_URI="https://github.com/perl6/${PN}.git" |
30 |
+ inherit git-r3 |
31 |
+ KEYWORDS="" |
32 |
+else |
33 |
+ SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" |
34 |
+ inherit vcs-snapshot |
35 |
+ KEYWORDS="" |
36 |
+fi |
37 |
+ |
38 |
+DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" |
39 |
+HOMEPAGE="http://rakudo.org/" |
40 |
+ |
41 |
+LICENSE="Artistic-2" |
42 |
+SLOT="0" |
43 |
+IUSE="doc clang java +moar test" |
44 |
+REQUIRED_USE="|| ( java moar )" |
45 |
+ |
46 |
+CDEPEND="java? ( |
47 |
+ dev-java/asm:4 |
48 |
+ dev-java/jline:0 |
49 |
+ dev-java/jna:4 |
50 |
+ ) |
51 |
+ moar? ( ~dev-lang/moarvm-${PV}[clang=] ) |
52 |
+ dev-libs/libffi" |
53 |
+RDEPEND="${CDEPEND} |
54 |
+ java? ( >=virtual/jre-1.7:* )" |
55 |
+DEPEND="${CDEPEND} |
56 |
+ clang? ( sys-devel/clang ) |
57 |
+ java? ( >=virtual/jdk-1.7:* ) |
58 |
+ dev-lang/perl" |
59 |
+ |
60 |
+java_prepare() { |
61 |
+ # Don't clean stage0 jars. |
62 |
+ java-pkg_clean 3rdparty/ |
63 |
+ |
64 |
+ # Don't use jars we just deleted. |
65 |
+ sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \ |
66 |
+ src/vm/jvm/runners/nqp-j || die |
67 |
+} |
68 |
+ |
69 |
+src_configure() { |
70 |
+ local backends |
71 |
+ use java && backends+="jvm," |
72 |
+ use moar && backends+="moar" |
73 |
+ |
74 |
+ local myconfargs=( |
75 |
+ "--backend=${backends}" |
76 |
+ "--prefix=/usr" ) |
77 |
+ |
78 |
+ perl Configure.pl "${myconfargs[@]}" || die |
79 |
+ |
80 |
+ if use java; then |
81 |
+ # Export this for the script we sed'd above. |
82 |
+ export THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) |
83 |
+ fi |
84 |
+} |
85 |
+ |
86 |
+src_compile() { |
87 |
+ if use java; then |
88 |
+ emake -j1 \ |
89 |
+ THIRDPARTY_JARS="${THIRDPARTY_JARS}" \ |
90 |
+ JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)" |
91 |
+ else |
92 |
+ emake -j1 |
93 |
+ fi |
94 |
+} |
95 |
+ |
96 |
+src_test() { |
97 |
+ emake -j1 test |
98 |
+} |
99 |
+ |
100 |
+src_install() { |
101 |
+ if use java; then |
102 |
+ # Set JAVA_PKG_JARDEST early. |
103 |
+ java-pkg_init_paths_ |
104 |
+ |
105 |
+ # Upstream sets the classpath to this location. Perhaps it's |
106 |
+ # used to locate the additional libraries? |
107 |
+ java-pkg_addcp "${JAVA_PKG_JARDEST}" |
108 |
+ |
109 |
+ insinto "${JAVA_PKG_JARDEST}" |
110 |
+ local jar |
111 |
+ |
112 |
+ for jar in *.jar; do |
113 |
+ if has ${jar} ${PN}.jar ${PN}-runtime.jar; then |
114 |
+ # jars for NQP itself. |
115 |
+ java-pkg_dojar ${jar} |
116 |
+ else |
117 |
+ # jars used by NQP. |
118 |
+ doins ${jar} |
119 |
+ fi |
120 |
+ done |
121 |
+ |
122 |
+ # Upstream uses -Xbootclasspath/a, which is faster due to lack |
123 |
+ # of verification, but gjl isn't flexible enough yet. :( |
124 |
+ java-pkg_dolauncher ${PN}-j --main ${PN} |
125 |
+ dosym ${PN}-j /usr/bin/${PN} |
126 |
+ dobin tools/jvm/eval-client.pl |
127 |
+ else |
128 |
+ emake DESTDIR="${ED}" install |
129 |
+ fi |
130 |
+ |
131 |
+ dodoc CREDITS README.pod |
132 |
+ use doc && dodoc -r docs/* |
133 |
+} |
134 |
|
135 |
diff --git a/dev-lang/rakudo/rakudo-9999.ebuild b/dev-lang/rakudo/rakudo-2016.04-r3.ebuild |
136 |
similarity index 64% |
137 |
rename from dev-lang/rakudo/rakudo-9999.ebuild |
138 |
rename to dev-lang/rakudo/rakudo-2016.04-r3.ebuild |
139 |
index c6696c6..5b8088c 100644 |
140 |
--- a/dev-lang/rakudo/rakudo-9999.ebuild |
141 |
+++ b/dev-lang/rakudo/rakudo-2016.04-r3.ebuild |
142 |
@@ -4,7 +4,7 @@ |
143 |
|
144 |
EAPI=6 |
145 |
|
146 |
-inherit java-pkg-2 |
147 |
+inherit java-pkg-opt-2 |
148 |
|
149 |
DESCRIPTION="A compiler for the Perl 6 programming language" |
150 |
HOMEPAGE="http://rakudo.org" |
151 |
@@ -15,31 +15,29 @@ if [[ ${PV} == "9999" ]]; then |
152 |
KEYWORDS="" |
153 |
else |
154 |
SRC_URI="${HOMEPAGE}/downloads/${PN}/${P}.tar.gz" |
155 |
- KEYWORDS="~amd64 ~x86" |
156 |
+ KEYWORDS="" |
157 |
fi |
158 |
|
159 |
LICENSE="Artistic-2" |
160 |
SLOT="0" |
161 |
# TODO: add USE="javascript" once that's usable in nqp |
162 |
-IUSE="clang java moar test" |
163 |
+IUSE="clang java +moar test" |
164 |
+REQUIRED_USE="|| ( java moar )" |
165 |
|
166 |
-RDEPEND="~dev-lang/nqp-${PV}:=[java=,moar=,clang=]" |
167 |
-DEPEND="${RDEPEND} |
168 |
- clang? ( sys-devel/clang ) |
169 |
- >=dev-lang/perl-5.10" |
170 |
+CDEPEND="~dev-lang/nqp-${PV}:${SLOT}=[java=,moar=,clang=]" |
171 |
|
172 |
-REQUIRED_USE="|| ( java moar )" |
173 |
-PATCHES=( "${FILESDIR}/${PN}-2016.04-Makefile.in.patch" ) |
174 |
+RDEPEND="${CDEPEND} |
175 |
+ java? ( >=virtual/jre-1.7:* )" |
176 |
|
177 |
-pkg_pretend() { |
178 |
- if has_version dev-lang/rakudo && use java; then |
179 |
- die "Rakudo is known to fail compilation with the jvm backend if it's already installed." |
180 |
- fi |
181 |
-} |
182 |
+DEPEND="${CDEPEND} |
183 |
+ clang? ( sys-devel/clang ) |
184 |
+ java? ( >=virtual/jdk-1.7:* ) |
185 |
+ >=dev-lang/perl-5.10" |
186 |
|
187 |
-pkg_setup() { |
188 |
- use java && java-pkg-2_pkg_setup |
189 |
-} |
190 |
+PATCHES=( |
191 |
+ "${FILESDIR}/${PN}-2016.04-Makefile.in.patch" |
192 |
+ "${FILESDIR}/${PN}-jna-lib.patch" |
193 |
+) |
194 |
|
195 |
src_prepare() { |
196 |
eapply "${PATCHES[@]}" |
197 |
@@ -52,32 +50,36 @@ src_prepare() { |
198 |
done |
199 |
|
200 |
eapply_user |
201 |
- use java && java-pkg-2_src_prepare |
202 |
+ java-pkg-opt-2_src_prepare |
203 |
} |
204 |
|
205 |
src_configure() { |
206 |
local backends |
207 |
use java && backends+="jvm," |
208 |
use moar && backends+="moar," |
209 |
- local myargs=( "--prefix=/usr" |
210 |
+ |
211 |
+ local myargs=( |
212 |
+ "--prefix=/usr" |
213 |
"--sysroot=/" |
214 |
"--sdkroot=/" |
215 |
- "--make-install" |
216 |
- "--sdkroot=/" |
217 |
"--backends=${backends}" |
218 |
) |
219 |
+ |
220 |
perl Configure.pl "${myargs[@]}" |
221 |
+ |
222 |
+ if use java; then |
223 |
+ NQP=$(java-pkg_getjars --with-dependencies nqp) |
224 |
+ fi |
225 |
} |
226 |
|
227 |
src_compile() { |
228 |
- emake DESTDIR="${D}" |
229 |
+ emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" |
230 |
} |
231 |
|
232 |
-src_test() { |
233 |
- export RAKUDO_PRECOMP_PREFIX=$(mktemp -d) |
234 |
- default |
235 |
+src_install() { |
236 |
+ emake DESTDIR="${D}" NQP_JARS="${NQP}" BLD_NQP_JARS="${NQP}" install |
237 |
} |
238 |
|
239 |
-src_install() { |
240 |
- emake DESTDIR="${D}" install |
241 |
+src_test() { |
242 |
+ RAKUDO_PRECOMP_PREFIX=$(mktemp -d) default |
243 |
} |