Subject: use of bsd.lib.mk in pkgsrc
To: None <tech-pkg@netbsd.org>
From: None <mcmahill@mtl.mit.edu>
List: tech-pkg
Date: 05/19/2002 14:09:44
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


Any other suggestions?

I'd like to fix this asap as it breaks several pkgs on mips.

-Dan