Hello John,
* John wrote on Mon, Dec 11, 2006 at 01:33:39PM CET:
> Ralf Wildenhues wrote:
> >
[...]
> > For example, you could have this in configure.ac:
> > MY_FPPFLAGS="-x f95-cpp-input"
> > AC_SUBST([MY_FPPFLAGS])
> >
> > and this in src/f90/Makefile.am:
> > AM_CPPFLAGS = $(MY_FPPFLAGS) ...
> MY_FPPFLAGS="-x f95-cpp-input"
> AC_SUBST([MY_FPPFLAGS])
>
> This doesn't work because the final makefile compile
lines are
>
> FCLD = $(FC)
> FCLINK = $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS)
$(LDFLAGS) -o $
> FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS)
>
> I don't know how to get the MY_FPPFLAGS into the
compile line flags.
That's what the other line was about: adding
AM_CPPFLAGS = $(MY_FPPFLAGS)
to your Makefile.am file.
> I could never get the following line to produce the
substitution.
> AC_SUBST([AM_FCFLAGS], [-x f95-cpp-input])
That's what I get for recommending untested code.
Apologies. It needs
to be
AC_SUBST([AM_FCFLAGS], ["-x f95-cpp-input"])
> But, in either case of the
> AM_FCFLAGS, I still have the original problem of the -x
f95-cpp-input
> getting passed to the linker, which completely doesn't
work since the
> preprocessor tries to process object files while
linking. How do I get
> the build system to add compile flags that aren't link
flags? As you
> can see above, all the compile flags are also passed to
the linker.
Here's a complete example. It makes use of the fact that
Automake
assumes that files ending in .F90 and .F95 (as opposed to
.f90 and .f95)
get preprocessed. The preprocessor flags will only be set
for the GNU
Fortran compiler.
cat >configure.ac <<EOF
AC_INIT([fortran-test], [1], [devnull])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_FILES([Makefile])
AC_PROG_FC
if test $ac_cv_fc_compiler_gnu = yes; then
AC_SUBST([MY_CPPFLAGS], ["-x f95-cpp-input"])
fi
AC_OUTPUT
EOF
cat >Makefile.am <<EOF
bin_PROGRAMS = foo
foo_SOURCES = foo.F95
AM_CPPFLAGS = $(MY_CPPFLAGS)
EOF
cat >foo.F95 <<EOF
program main
end
EOF
autoreconf -vi
./configure
make
With respect to portability among compilers, this example is
lacking the
flag for source file extensions, AC_FC_SRCEXT([F95]). I
omitted it
because Automake does not automatically add support for it
yet
(for .f90 and .f95, that has been added in Automake 1.10).
If you need
this, write me, and I'll post an updated example.
> By the way, where is the Automake list?
The address is <automake gnu.org>, the archives
are here at
<http
://lists.gnu.org/archive/html/automake/>.
Cheers,
Ralf
_______________________________________________
help-gnu-utils mailing list
help-gnu-utils gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-utils
|