Subject: Re: problems configuring audio/mpg321
To: None <tech-pkg@NetBSD.org>
From: Klaus Heinz <k.heinz.jan.vier@onlinehome.de>
List: tech-pkg
Date: 01/25/2004 04:14:25
Georg Schwarz wrote:

> hmmm. I definitely need that -L/usr/local/pkg/lib argument here...
> 
> Why does buildlink think I would not?

Your example involved /usr/local/pkgsrc/lib which is _supposed_ to go
away. /usr/local/pkg/lib is a different matter, this should be
transformed to
  /usr/people/schwarz/pkgsrc/audio/mpg321/work/.buildlink/lib

by the work/.buildlink/bin/.transform.sed.

On of the main purposes of the buildlink framework is to separate the
package to be compiled from all unnecessary influences and provide
_only_ the files it really needs to see during the build.
pkgsrc/Packages.txt has some explanations why this is important.

To achieve this, the file and directory arguments for the compiler,
linker and other programs needed for the build of the package are
transformed to point to a set of private directories under
$WRKDIR/.buildlink/.
In order to get the correct transformation the package needs to know all
the files/directories which should be linked to this location. The
included buildlink2,mk (or the new buildlink3.mk) files of all the
packages the new one depends on for include files or libraries provide
this information about the needed files.

That's the short version. The buildlink framework can do other magic,
special transformations for special needs with a transformation
language, insert the correct compiler/linker options on some platforms
and other wonders I don't know about yet :-).


ciao
     Klaus