Gentoo Archives: gentoo-java

From: Karl Trygve Kalleberg <karltk@g.o>
To: Joshua Nichols <joshua.nichols@×××××.com>
Cc: gentoo-java@l.g.o
Subject: [gentoo-java] Re: filtering compilers for ejavac/eant
Date: Wed, 30 Nov 2005 02:04:37
Message-Id: 438D08A5.5000600@gentoo.org
1 Joshua Nichols wrote:
2 > Salutations,
3
4 Indeed:)
5
6 > I've been doing a little work on axxo's overlay recently, particularly
7 > with choosing a sane compiler, ie it supports the desired -source and
8 > -target. It seems there's a number of packages that jikes doesn't like
9 > (surprise). I was talking with axxo about how to handle this, and
10 > wanted some input from you.
11 >
12 > The current way of handling jikes is to not use eant/ejavac when the
13 > package doesn't work with all the compilers. I'm not particularly fond
14 > of this, because it doesn't give any indication that the package
15 > doesn't work with a particular compiler.
16 >
17 > Instead, I think an ebuild should know that it doesn't work. As its
18 > implemented, you can specify JAVA_PKG_FILTER_COMPILER to specify a
19 > list of compilers not to use. I think that this should be used in
20 > ebuilds that don't work with jikes (or alternatively, have a function
21 > which handles this modifying this variable).
22 >
23 > Axxo had some reservations about this, because he thought it wouldn't
24 > be much better than the old way of doing it with use flags. I don't
25 > think this is quite the case though, you don't get 'use flag
26 > pollution' with multiple compilers, and that most packages work with
27 > all the compilers.
28 >
29 > Please let me know what you think.
30
31 Well, we need to come with *some* solution. As I see it, there are
32 essentially two choices:
33
34 1a) For each package, we explictly list the compilers we know this
35 package works with. This can be done in src_compile, via an
36 eclass function; java-pkg_declare-compilers "javac ecj jikes".
37
38 1b) Same as 1a, but by default, we resort to a JAVA_SUPPORTED_COMPILERS
39 variable defined in the java-pkg.eclass as the default setting.
40
41 2a) We do your filtering stuff.
42
43 2b) We define a fancy-schmancy filter function in the spirit of
44 flag-o-matic, java-pkg_filter-compilers "jikes", and invoke this
45 in src_compile before eant/ejavac/ewhatever
46
47
48 For now, I don't see any other sane alternatives.
49
50 My personal favourite is 2b, since there is already a long standing
51 precedence with flag-o-matic on this.
52
53
54 -- Karl T
55 --
56 gentoo-java@g.o mailing list