Subject: Re: use of bsd.lib.mk in pkgsrc
To: None <mcmahill@mtl.mit.edu>
From: Alistair Crooks <agc@wasabisystems.com>
List: tech-pkg
Date: 05/20/2002 12:11:16
On Sun, May 19, 2002 at 02:09:44PM -0400, mcmahill@mtl.mit.edu wrote:
> 
> a number of pkgs currently use bsd.lib.mk in pkgsrc for building
> libraries.  While this is nice, its resulting in broken PLISTs and in some
> cases, broken packages.  The basic reason is that the set of libraries
> produced varies by MACHINE_ARCH.  For example, on mipsel (pmax),
> everything is PIC so there isn't a seperate libfoo_pic.a created.  Thus a
> PLIST generated on i386 may list libfoo_pic.a and the PLIST will be wrong
> on pmax.  Also, I've come across some pkgs which rather than using the
> install target from bsd.lib.mk, they explicitly add the install commands.
> Now, they end up trying to install a libfoo_pic.a which doesn't exist and
> the install fails.
> 
> Since there are around 15 pkgs that get patched to use bsd.lib.mk (and an
> unknown number which might already use it), I wonder if we need a slightly
> more unified way of handling this.  Maybe a BSD_LIBS variable which would
> expand into the PLIST?  Or maybe some flags in the PLIST which would get
> turned into @comments on arch's which don't install the particular flavor
> of lib?  Something like:
> 
> ${ARCH_INSTALLS_PIC}lib/libfoo_pic.a
> ${ARCH_INSTALLS_P}lib/libfoo_p.a
> ${ARCH_INSTALLS_SHARED}lib/libfoo.so
> ${ARCH_INSTALLS_SHARED}lib/libfoo.so.0
> ${ARCH_INSTALLS_SHARED}lib/libfoo.so.0.1

You could also modify the PLIST-modifying code in bsd.pkg.mk, but I agree that
it would be nice to solve this generically.

Regards,
Alistair