[MINC-development] AX_CHECK_GL and friends

Steve M. Robbins minc-development@bic.mni.mcgill.ca
Sat, 02 Apr 2005 03:00:11 -0500


On Fri, Apr 01, 2005 at 10:27:46PM +1000, Andrew Janke wrote:

> Whilst on the subject of libtool, do you happen to know of any way
> whereby you can force libtool to use relative paths (or facillitate
> prefixed installs?)
> 
> Reason being is that when building binary packages, Ibuild in a
> quarrantined directory so that I can check dependencies.  ie:
> 
>     ./configure --prefix=/tmp/epm-build/target/minc-${vers}  \
>          --with-build-path=/tmp/epm-build/target/comb
> 
> Then I build the binry package from the prefix before synching the
> result to the comb directory for building against (could use stow
> here, but haven't got to it). Problem is, the .la file paths are now
> all way of course.

Where is the package going to be installed?  Let's say it should
ultimately appear in /minc-${vers}/{bin,lib,etc}.  Then you must
configure and build using --prefix=/minc-${vers}, ditto for
--with-build-path.  I don't know of any way around this short of
sneaky, brittle sed-tricks on the .la file.

It sounds like you are building up the quarantine one package at
a time (MINC, BICPL, Display, ...) but you want to make a binary
of each package separately?

The solution is easy for packages that use automake: they always
support DESTDIR.  What you do is configure with the desired prefix,
/minc-${vers}, but install into a staging directory, say
/tmp/staging/minc-${vers}.

    ./configure --prefix=/minc-${vers} --with-build-path=/minc-${vers}
    make all test
    make install DESTDIR=/tmp/staging

The configuration and make will build .la files that refer to
/minc-${vers}, but the "make install" line will install into
directories rooted at $DESTDIR/$prefix; i.e. into
/tmp/staging/minc-${vers}/{bin,lib,etc}.  Then you simply build
the binary package from $DESTDIR.  This is a standard trick for
Debian packaging (presumably others', too).

For your quarantine you'd also want to do a regular "make install" so
that it appears in /minc-${vers}, available for the next package on
the list.  Or install the newly-created package.


> I guss the other thing I could do is chroot for
> the binary build, but chroot/fakeroot doesn't exist on all platforms.

Worse: you probably don't have a compiler and other build tools
in /tmp/epm-build/target/comb, so a chroot build will fail for
this reason.

-Steve