[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Automake currently provides limited support for creating programs and shared libraries that are a mixture of Fortran 77 and C and/or C++. However, there are many other issues related to mixing Fortran 77 with other languages that are not (currently) handled by Automake, but that are handled by other packages(7).
Automake can help in two ways:
These extra Fortran 77 linker flags are supplied in the output variable
FLIBS
by the AC_F77_LIBRARY_LDFLAGS
Autoconf macro
supplied with newer versions of Autoconf (Autoconf version 2.13 and
later). See section `Fortran 77 Compiler Characteristics' in The Autoconf.
If Automake detects that a program or shared library (as mentioned in
some _PROGRAMS
or _LTLIBRARIES
primary) contains source
code that is a mixture of Fortran 77 and C and/or C++, then it requires
that the macro AC_F77_LIBRARY_LDFLAGS
be called in
`configure.in', and that either $(FLIBS)
or @FLIBS@
appear in the appropriate _LDADD
(for programs) or _LIBADD
(for shared libraries) variables. It is the responsibility of the
person writing the `Makefile.am' to make sure that $(FLIBS)
or @FLIBS@
appears in the appropriate _LDADD
or
_LIBADD
variable.
For example, consider the following `Makefile.am':
bin_PROGRAMS = foo foo_SOURCES = main.cc foo.f foo_LDADD = libfoo.la @FLIBS@ pkglib_LTLIBRARIES = libfoo.la libfoo_la_SOURCES = bar.f baz.c zardoz.cc libfoo_la_LIBADD = $(FLIBS) |
In this case, Automake will insist that AC_F77_LIBRARY_LDFLAGS
is mentioned in `configure.in'. Also, if @FLIBS@
hadn't
been mentioned in foo_LDADD
and libfoo_la_LIBADD
, then
Automake would have issued a warning.
9.10.3.1 How the Linker is Chosen
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |