[csw-maintainers] GAR and PKG_CONFIG_PATH
Dagobert Michelsen
dam at opencsw.org
Sun Apr 19 22:55:04 CEST 2009
Hi William,
Am 19.04.2009 um 11:00 schrieb William Bonnet:
> I am building X11 libs and i need to set PKG_CONFIG_PATH and i have
> a few problems... i am looking for the good way to define the
> PKG_CONFIG_PATH variable and add to its value /opt/csw/X11/lib/
> pkgconfig.
>
> I tried either setting
>
> EXTRA_PKGCONFIG_PATH = /opt/csw/X11/lib/pkgconfig
>
> or
>
> PKG_CONFIG_PATH = /opt/csw/X11/lib/pkgconfig
>
> in Makefile or category file, but it is not taken in account by GAR
> scripts.
This is basically ok, however I have some remarks.
You use this in x11/category.mk:
# pkg-config options
PKG_CONFIG_PATH = /opt/csw/X11/lib/pkgconfig
PKG_CONFIG_PATH += $(DESTDIR)/opt/csw/lib/pkgconfig
PKG_CONFIG_PATH += $(DESTDIR)/opt/csw/X11/lib/pkgconfig
Please avoid DESTDIR as much as possible as it circumvents the standard
workflow of
build base -> release -> install -> build dependent
There should be something to add category-specific stuff to pkgconfig:
_CATEGORY_PKG_CONFIG_PATH = $(abspath $(prefix)/X11/lib/$
(MM_LIBDIR)/pkgconfig)
I committed the appropriate changes in r4413 and changed x11/category.mk
accordingly.
You can always check the value of PKG_CONFIG_PATH by typing
> build8s% gmake modenv
> Arch: sparc
> Kernel: sparcv9
>
> Default ISA 32: sparcv8
> Default ISA 64: sparcv9
>
> Requested ISAs: sparcv8 sparcv9 i386 amd64
> Needed ISAs: sparcv8 sparcv9
> Build ISAs: sparcv8 sparcv9
>
> ISAEXEC dirs: /opt/csw/bin /opt/csw/sbin /opt/csw/libexec
> ISAEXEC files:
>
> Merge include:
> Merge exclude: /opt/csw/share/info/dir /opt/csw/lib/.*\.la .*
> \~ /opt/csw/lib/.*\.a
>
> Modulators: ISA
> Modulations: isa-sparcv8 isa-sparcv9
>
> Requested compiler flags:
>
> * Modulation isa-sparcv8: ISA=sparcv8
> PATH = /home/dam/mgar/pkg/x11/libXdmcp/trunk/work/install-
> isa-sparcv8/opt/csw/bin:/home/dam/mgar/pkg/x11/libXdmcp/trunk/work/
> install-isa-sparcv8/opt/csw/bin:/home/dam/mgar/pkg/x11/libXdmcp/
> trunk/work/install-isa-sparcv8/opt/csw/sbin:/home/dam/mgar/pkg/x11/
> libXdmcp/trunk/work/install-isa-sparcv8/opt/csw/sbin:/opt/csw/bin:/
> opt/csw/bin:/opt/csw/sbin:/opt/csw/sbin:/opt/studio/SOS11/SUNWspro/
> bin:/home/dam/mgar/pkg/x11/libXdmcp/trunk/gar/bin:/usr/bin:/usr/
> sbin:/usr/java/bin:/usr/ccs/bin:/usr/openwin/bin
> PKG_CONFIG_PATH = /opt/csw/lib/pkgconfig:/opt/csw/lib/X11/pkgconfig
> CFLAGS = -xlibmil -errtags=yes -erroff=E_EMPTY_DECLARATION -
> xlibmil -errtags=yes -erroff=E_EMPTY_DECLARATION -xlibmil -
> errtags=yes -erroff=E_EMPTY_DECLARATION
> CXXFLAGS = -xlibmil -xlibmopt -features=tmplife -norunpath -
> xlibmil -xlibmopt -features=tmplife -norunpath -xlibmil -xlibmopt -
> features=tmplife -norunpath
> CPPFLAGS =
> LDFLAGS = -L/opt/csw/lib -R/opt/csw/lib -L/opt/csw/lib -R/
> opt/csw/lib -L/opt/csw/lib -R/opt/csw/lib
> ASFLAGS =
> OPTFLAGS = -xO3 -xarch=v8
>
> * Modulation isa-sparcv9: ISA=sparcv9
> PATH = /home/dam/mgar/pkg/x11/libXdmcp/trunk/work/install-
> isa-sparcv9/opt/csw/bin/sparcv9:/home/dam/mgar/pkg/x11/libXdmcp/
> trunk/work/install-isa-sparcv9/opt/csw/bin:/home/dam/mgar/pkg/x11/
> libXdmcp/trunk/work/install-isa-sparcv9/opt/csw/sbin/sparcv9:/home/
> dam/mgar/pkg/x11/libXdmcp/trunk/work/install-isa-sparcv9/opt/csw/
> sbin:/opt/csw/bin/sparcv9:/opt/csw/bin:/opt/csw/sbin/sparcv9:/opt/
> csw/sbin:/opt/studio/SOS11/SUNWspro/bin:/home/dam/mgar/pkg/x11/
> libXdmcp/trunk/gar/bin:/usr/bin:/usr/sbin:/usr/java/bin:/usr/ccs/
> bin:/usr/openwin/bin
> PKG_CONFIG_PATH = /opt/csw/lib/64/pkgconfig:/opt/csw/lib/64/X11/
> pkgconfig
> CFLAGS = -xlibmil -errtags=yes -erroff=E_EMPTY_DECLARATION -
> xlibmil -errtags=yes -erroff=E_EMPTY_DECLARATION -xlibmil -
> errtags=yes -erroff=E_EMPTY_DECLARATION
> CXXFLAGS = -xlibmil -xlibmopt -features=tmplife -norunpath -
> xlibmil -xlibmopt -features=tmplife -norunpath -xlibmil -xlibmopt -
> features=tmplife -norunpath
> CPPFLAGS =
> LDFLAGS = -L/opt/csw/lib -R/opt/csw/lib -L/opt/csw/lib -R/
> opt/csw/lib -L/opt/csw/lib -R/opt/csw/lib
> ASFLAGS =
> OPTFLAGS = -xO3 -xarch=v9
>
> The only work around i dound is to set it and export into the shell
> before calling gmake.
Well, it is only passed during configure-time:
<http://apps.sourceforge.net/trac/gar/browser/csw/mgar/gar/v2/gar.conf.mk#L567
>
If you need it during build-time too you can set
EXTRA_BUILD_EXPORTS = PKG_CONFIG_PATH
but it usually shouldn't be necessary.
> So please anyone to explain me what i did wrong ? :)
The code looks like this:
1 comand # This is for foo-config chaos
2471 dmichelsen PKG_CONFIG_DIRS ?= $(libdir_install) $
(EXTRA_PKG_CONFIG_DIRS)
2471 dmichelsen PKG_CONFIG_PATH ?= $(call MAKEPATH,$(foreach D,$
(PKG_CONFIG_DIRS),$(abspath $D/$(MM_LIBDIR)/pkgconfig)) $(EXTRA_PKGCON
FIG_PATH))
The mistyping of PKGCONFIG is a bug, as pkg-config itself uses
PKG_CONFIG, this should be used.
This too is fixed in r4413 too (now EXTRA_PKG_CONFIG_PATH, it hadn't
been used anyway).
Additionally, I removed in r2471 in gar.conf.mk (line 547)
http://apps.sourceforge.net/trac/gar/changeset/2471
the export as I was not aware that it was really needed in a forked
process.
This is fixed in r4415.
BTW, there is a much easier way to use dynamic licenses. Just use
dynamic gspecs
and everything will be done automatically as the license has the
default name.
I converted this package as example for you and the package builds
fine now,
however, only 32 bit. For 64 bit the category.mk must have all the
MM_*-stuff
from gar.conf.mk that differentiates pathes for isa-specific stuff
during
install and merge. I'll take a look at that tomorrow.
I apologize for this accumulation of inaccuracies and confusion.
Best regards
-- Dago
More information about the maintainers
mailing list