[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AC_SEARCH_LIBS and fortran
From: |
JoeOutflow |
Subject: |
Re: AC_SEARCH_LIBS and fortran |
Date: |
Sat, 15 Mar 2008 10:47:55 -0700 (PDT) |
Hi Keith....,
keithmarshall wrote:
>
> On Saturday 15 March 2008 02:57, JoeOutflow wrote:
>> ... the -L flags should be contained in the LDFLAGS
>> variable, but this is blank in the Makefiles. According to the manual
>> LDFLAGS is a preset output variable and a search for "LDFLAGS"
>> through the entire manual fails to turn up any explanation of how to
>> append a library directory to LDFLAGS. Assigning it directly in
>> configure.ac makes autoconf complain.
>
> Autoconf doesn't automagically guess where you may have installed your
> libraries; if that isn't in any of the compiler's default search paths,
> then you have to tell it where to look. Normally, you shouldn't
> hardwire that into your configure script; you should leave it for the
> user to specify the LDFLAGS setting at configure time:
>
> path/to/configure LDFLAGS=/path/to/extra/libs ...
>
> If you know, at autoconf time, where the extra libs path is likely to
> point, you can AC_SUBST some alternative PKG_LDFLAGS setting, and adapt
> your Makefile.in to also expand $(PKG_LDFLAGS) in the linking commands.
> It is bad manners to explicitly define LDFLAGS at autoconf time, as
> users expect to define it at configure time.
>
>> Secondly the test program that configure attempts to compile is bound
>> to fail even if all the "-L's" and "-l's" are exactly correct in the
>> compile/link commands. This is because a number of necessary lines
>> are missing from it. configure tries to compile:
>>
>> program test
>> call h5open_f
>> end program test
>
> You are using AC_SEARCH_LIBS to confirm that some library in the libs
> path can furnish the h5open_f function/subroutine, right? The test
> program doesn't have to be runnable; linkable is sufficient. The above
> test program should admirably satisfy that requirement.
>
>> but at minimum it must contain:
>>
>> program test
>> use hdf5
>> integer :: i
>> call h5open_f(i)
>> end program test
>
> Why? To be runnable, maybe, but it doesn't need to be runnable.
>
>> Can this be arranged? If there was a subroutine in the library that
>> didn't require an argument I'd have used it instead,
>
> There is no opportunity for the test program to discover that the
> subroutine should have had an argument, until runtime. AC_SEARCH_LIBS
> doesn't care, since it will never run this program; all it needs to
> know is that the symbol is exposed to the linker, no matter how many
> arguments it would normally take.
>
>> ... there is still the need for the "use hdf5" statement.
>
> It's been many years since I last wrote FORTRAN, and when I did, it was
> FORTRAN-77. I've never written a `use' statement in a FORTRAN program,
> in my life, but if this has the effect of telling the compiler what the
> argument requirements for the test function are, then it would actually
> *damage* the test program, to specify it; let the compiler assume that
> the subprogram requires no arguments, so the test doesn't fail at
> compile time, and the linker can then report the symbol availability,
> which is what you really are trying to test.
>
> Regards,
> Keith.
>
>
> Your response has been very enlightening, but I'm still in the dark about
> one thing. The AC_SEARCH_LIBS test is still failing and I think it's
> because the the compile command does not include a -I/library/is/here
> flag. At least I know the test program will compile when this flag is
> given by hand. How do I explain to autoconf that this flag is needed?
>
>
>
> _______________________________________________
> Autoconf mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/autoconf
>
>
--
View this message in context:
http://www.nabble.com/AC_SEARCH_LIBS-and-fortran-tp16064029p16070461.html
Sent from the Gnu - Autoconf - General mailing list archive at Nabble.com.