[Rd] R-devel problems

Kurt Hornik Kurt.Hornik@wu-wien.ac.at
Wed Feb 26 09:13:25 2003

>>>>> Jan de Leeuw writes:

> The OS X configure in R-devel has been changed to use two-level
> namespaces. There are still some problems.

> 3. Configure does not pass the $(Rexecbindir) to the Makefiles in the
> /src/library directory, so the links cannot find the bundle_loader. I
> added them by hand for all package links.

I thought I had already fixed this, but maybe I am missing something
obvious.  It seems to me that e.g. ctest/src/Makefile has

R_HOME = $(top_builddir)
include $(top_srcdir)/share/make/shlib.mk

where the latter has

include $(R_HOME)/etc/Makeconf

which in turn has

## As we currently use
##   -bundle -bundle_loader $(Rexecbindir)/R.bin -undefined error
## for the default SHLIB_LDFLAGS on Darwin >= 5 ...
rhome = @libdir@/R
Rexecbindir = $(rhome)/bin

(in the source).  But I now see that on my system this gives

rhome = ${exec_prefix}/lib/R

for reasons maybe known to Autoconf wizards but not to me: so I will add
substitutions for prefix and exec_prefix as well.  Pls let me know if
this helps.

> 5. In order to link the bundles with -bundle -bundle_loader
> /usr/local/lib/R/bin/R.bin the /usr/local/lib/R/bin/R.bin must exist,
> and moreover must be an R-devel build.  This is a little bootstrap
> problem which can be easily hacked.

As I already tried to explain, I think there is a more substantial
problem here.  We build in say, BUILDDIR and install to INSTALLDIR, say,
and there no reason to assume for something to work in BUILDDIR that
something else has happened in INSTALLDIR.  In fact, for typical users
we cannot even do something in the default INSTALLDIR as they will have
no write permissions in /usr/local.

The only thing guaranteed to work is to use a bundle loader path in
BUILDDIR when building, and change to one in INSTALLDIR when
installing.  I assume this amounts to re-linking and hence a terrible
mess unless we use GNU libtool to provide an abstraction, and I hope we
will have this for R 2.0, but certainly not for 1.7.  Or is there a way
to change the bundle loader?