--- Hin-Tak Leung <[EMAIL PROTECTED]> wrote: > Claudio Fontana wrote: > > Hello, > > > > --- Hin-Tak Leung <[EMAIL PROTECTED]> > <snipped> > >>Change to DESTDIR should be quite simple. I think > it > >>is mostly one > >>line change in R/Makeconf.in, > >>where > >> rhome = ${libdir}/R > >>to > >> rhome = ${DESTDIR}/${libdir}/R > >>and maybe one or two other places, concerning that > >>wrapper script. > > > > > > Please DON'T. If I understood your idea correctly, > > this is not the meaning of DESTDIR, > > and placing DESTDIR there is harmful since its > meaning > > is overloaded. The staged installation does _not_ > need > > to be functional. Its hard coded paths must refer > to > > the _final destination_ which is determined by > prefix > > only. > <snipped> > > Then try this (replace user with your user name): > > > > $ tar -zxvf bc-1.06.tar.gz > > $ cd bc-1.06 > > $ ./configure --prefix=/home/user/tmp > > $ make > > $ make install DESTDIR=/home/user/install-destdir > > $ ls /home/user/tmp > > ls: /home/user/tmp: No such file or directory > > $ find /home/user/install-destdir > > [study the output of this command] > > I don't think you understand me correctly.
I am now pretty sure I did. > Doing the insertion as I wrote, (Makeconf.in is > included by R's top-level Makefile as far as I > understand it), > would make "make install DESTDIR=/someotherroot/" > work. It works, but not in the way its intended. > Either way, please study what Makeconf.in > does. > > HTL I did, and does not seem ok. Look: - make the change in Makeconf.in: rhome = $(DESTDIR)${libdir}/R now I do: $ ./configure --prefix=/home/claudio/tmp $ make $ make install DESTDIR=/home/claudio/install-destdir $ find /home/claudio/tmp /home/claudio/tmp /home/claudio/tmp/man /home/claudio/tmp/man/man1 /home/claudio/tmp/man/man1/R.1 /home/claudio/tmp/bin /home/claudio/tmp/bin/R [not ok, should return: /home/claudio/tmp: No such file or directory. ] Now for the more important thing: $ cat /home/claudio/tmp/bin/R #!/bin/sh # Shell wrapper for R executable. R_HOME_DIR=/home/claudio/install-destdir/home/claudio/tmp/lib/R if test -n "${R_HOME}" && \ test "${R_HOME}" != "${R_HOME_DIR}"; then echo "WARNING: ignoring environment value of R_HOME" fi R_HOME="${R_HOME_DIR}" export R_HOME R_SHARE_DIR=/home/claudio/install-destdir/home/claudio/tmp/lib/R/share export R_SHARE_DIR R_INCLUDE_DIR=/home/claudio/install-destdir/home/claudio/tmp/lib/R/include export R_INCLUDE_DIR R_DOC_DIR=/home/claudio/install-destdir/home/claudio/tmp/lib/R/doc export R_DOC_DIR [ not ok: the software itself must be DESTDIR unaware. Those paths should read for example: R_SHARE_DIR=/home/claudio/tmp/lib/R/share The binaries, the datafiles, and the content of everything else that gets installed should be indistinguishable from a non-DESTDIR installation. Moving the staged installation to the final place should be (more or less[...]) a matter of one mv command. ] Do you see the difference in meaning between your concept and the DESTDIR concept? CLaudio ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel