toon-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Toon-members] pkgconfig support


From: Pekka Paalanen
Subject: Re: [Toon-members] pkgconfig support
Date: Wed, 23 Jun 2010 11:02:27 +0300

On Wed, 23 Jun 2010 14:31:14 +0930
Michael Marner <address@hidden> wrote:

> Re. Hard coding. - Again, this was a mistake on my part. I was using
> the TooN readme when deciding what linker flags needed to be
> included. I completely overlooked the fact that LAPACK probably has
> some linker requirements in addition to these. You are right that on
> Ubuntu there is no .pc file included with LAPACK. However, the macro
> in the autoconf archive seems to work.
> 
> I've attached another diff, this time with the hard coding removed.
> 
> Steps:
> 
> aclocal
> autoconf
> ./configure
> ./make install
> 
> I haven't included the M4 macro that checks for LAPACK, since it is
> included in the pkgconfig-archive package in Ubuntu's repository.

I had a quick try without actually trying to use TooN. As you said, I
needed to install sys-devel/autoconf-archive package (Gentoo) first.
I don't know if TooN maintainers are happy with this additional
dependency.

Btw. could the TooN developers comment something, so that we do not
massage this patch for nothing? Is this kind of thing wanted?
(I'm just a TooN user.)

If ACX_LAPACK macro is not installed, the error message is quite
misleading and happens late, at ./configure time:

./configure: line 2389: syntax error near unexpected token `newline'
./configure: line 2389: `ACX_LAPACK('

Could you add a test to check that ACX_LAPACK is an M4 macro, with a
proper error message?


On my system, this patch produces the following TooN.pc file:

prefix=/usr/local
includedir=${prefix}/include

Name: TooN
Description: Tom's Object-oriented numerics library
Version: version-2.0.0-beta7
Libs: -llapack -lblas   -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../x86_64-pc-linux-gnu/lib
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../.. -lgfortranbegin
-lgfortran -lm
Cflags: -I${includedir}

That is quite verbose in the linker flags, and gfortranbegin, gfortran
and m are probably redundant in this list for me, but I do not see
anything particularly wrong with it. It avoids linking to g2c and
especially to f2c, a library which may produce linking problems in the
applications due to missing symbol MAIN__.

Perhaps the -L flags could be reduced somehow, but I do not know the
implications. For me, three of them point to /usr/lib64, and the rest
to /usr/lib64/gcc/x86_64-pc-linux-gnu/4.3.4, /lib64,
and /usr/x86_64-pc-linux-gnu/lib.

From the same autoconf macro archive, would use of the macro
AX_CREATE_PKGCONFIG_INFO help, or is the hand-coded pkg-config check
and .pc file creation better?

Autoconf contains some ready macros for checking for the usual programs
like sed: AC_PROG_SED,
http://www.gnu.org/software/autoconf/manual/html_node/Particular-Programs.html
You could use that instead of
AC_CHECK_PROG(SED,sed,sed,AC_MSG_ERROR([You Must install sed])).

My final comment for this version of the patch is: it looks like it
should work.


Thanks.

-- 
Pekka Paalanen, M.Sc. (Eng.)   LUT/IT, room 6505
doctoral student               http://www.it.lut.fi/project/rtmosaic/
address@hidden          http://www.iki.fi/pq/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]