Re: SableVM SDK - General Info and Gentoo Update

"Grzegorz B. Prokopski" <[email protected]> Thu, 02 Jun 2005 02:11:33 -0400
Newsgroups gmane.comp.java.vm.sablevm.devel
Organization Debian http://www.debian.org - The Free Operating System
Message-ID <[email protected]>
On Tue, 2005-31-05 at 13:23 -0400, David Bélanger wrote:
> The thing is that on a Gentoo system, if IBM SDK (should be
> same for Sun or other) is installed and selected, the gjdoc/cp-tools will use
> the IBM SDK and not jikes since JAVAC will be set by Gentoo to the IBM
> SDK javac.  If JAVAC unset should work as it should autodetect and find
> jikes first (need to test it).  I am setting it to the wrapper script
> which, at least in the case of jikes, works even if the system installed
> jikes is used.

I think we should not rely on JAVAC.  What we're looking for is *jikes*
binary, that will be used by our wrapper script (which gives it *our*
bootclasspath) after installation.  So IMNSHO unsetting JAVAC and JAVA
is something we're perfectly right to do.  After all we don't want
SableVM SDK installation to be run-time dependant on IBM or other SDK,
right?

So in the top-level configure we're looking for a system-wide
installations of jikes and fastjar (libffi/libpopt are handled
automagically).

A little problem we might hit sometimes is that:
a) if the external jikes/fastjar is used, its location is the same
during the build of SableVM SDK and after installation.
b) if the internal jikes/fastjar is used, its location is different
during the build of SableVM SDK than after installation.

The solution, as I see it, is to *always* use the bin/ scripts during
the build.  These scripts in bin/ will always 'know' where to find the
right binary (or how to run SableVM *before* it's even installed, which
is kind of tricky).  Then, if a sub-package of SableVM SDK uses
jikes/fastjar then we pass it the location where the tool *will* be
available *after* installation via --with-jikes/fastjar=... option.

This is what is done for sablevm subpackage that needs jikes and fastjar
locations for wrapper scripts.  See the top-level configure.in.

The above approach means we will sometimes need to slightly modify
upstream way of handing --with-jikes/fastjar option, and way of looking
for javac/java/fastjar etc.  These changes are usually very small, and
as we always import new upstreams into 'vendor', then merge changes into
'sablevm-sdk', we should not have too big troubles maintaining them.

Actually, I believe that in the case of Gentoo simply unsetting
JAVA/JAVAC in the top-level Makefile during all 3 configure phases
(early, main, extra) will solve the problem, because we already set PATH
to include bin/ as the first element, and bin/ contains java, javac,
fastjar etc...

HTH,

			Grzegorz B. Prokopski
-- 
Grzegorz B. Prokopski           <[email protected]>
SableVM - Free, LGPL'ed Java VM  http://sablevm.org
Why SableVM ?!?                  http://sablevm.org/wiki/Features
Debian GNU/Linux - the Free OS   http://www.debian.org