Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] blas .pc files (was RFC: new eclass - pkgconfig.eclass)
Date: Thu, 29 Nov 2012 16:45:16
Message-Id: 50B790F3.7030806@gentoo.org
In Reply to: Re: [gentoo-dev] blas .pc files (was RFC: new eclass - pkgconfig.eclass) by justin
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 29/11/12 11:09 AM, justin wrote:
5 > On 29/11/12 16:51, Ian Stakenvicius wrote:
6 >> On 29/11/12 09:56 AM, justin wrote:
7 >>
8 >>> Standard autotools based packages always use
9 >>
10 >>> --with-blas=
11 >>
12 >>> so it is pretty simple for us to make it to
13 >>
14 >>> --with-blas="$(pkg-config --libs blas)"
15 >>
16 >>> same thing goes for cmake and
17 >>
18 >>> -DBLAS_LIBRARIES="$(pkg-config --libs blas)"
19 >>
20 >>> This game has been played since ever, because blas/lapack are
21 >>> bundled in more then 80% of the packages using it. So we are
22 >>> used to patch them to use system libs. So why not making our
23 >>> lives easier by having a pkg-config option?
24 >>
25 >>> justin
26 >>
27 >>
28 >> ..ok remind me again what the .pc files provide you? this is so
29 >> that you can have slotted blas providers and various packages can
30 >> choose their preferred one instead of having to use the eselected
31 >> one? or...
32 >>
33 >>
34 >>
35 >>
36 >>
37 >
38 > Not exactly. The user can choose for each package newly by
39 > eselecting the wanted implementation. This is the user side. From
40 > the pm side we ensure that the choice is really respected by
41 > linking against package specific names [1] instead of the generic
42 > ones e.g. libblas.so. And this can be achieved in an easy way by
43 > using pkg-config.
44 >
45 > justin
46 >
47 > 1) # eselect blas set atlas-threads # pkg-config --libs blas
48 > -lptf77blas -lm -latlas -lpthread
49 >
50 > # eselect blas set reference # pkg-config --libs blas -lrefblas
51 >
52 >
53
54 Doing this via an eclass that would export BLAS_LIBS and BLAS_CFLAGS
55 (and appending necessary equivalents to mycmakeargs) for src_configure
56 based on what is eselected wouldn't be as easy or easier to do?
57 -----BEGIN PGP SIGNATURE-----
58 Version: GnuPG v2.0.19 (GNU/Linux)
59
60 iF4EAREIAAYFAlC3kPMACgkQ2ugaI38ACPCa7gD+M7knL7yghfUe6oejohgV/upw
61 iDJmpCkt5WDZVoqu76EBAJGvMG1TgebSWreHx9RPdXc2RErstr7Cfg0ulfCy/WJ8
62 =uuBE
63 -----END PGP SIGNATURE-----