[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: fortran modules
Re: fortran modules
Mon, 02 Feb 2004 09:35:31 +0100
Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (gnu/linux)
keep any automake discussion public please
>>> "Michael" == Michael R Nolta <address@hidden> writes:
Michael> Not all files produce modules; only files containing
Michael> "module x ... end module" blocks do. And there can be
Michael> multiple module definitions per file.
>> I hope that does not mean many *.mod file can be produced by
>> a single compilation.
Michael> Yes, it does.
:( I don't know how that can be handled.
I assume any of these modules can be included (if that's the
word) by another .f90 file during the build. All the .f90 files
must therefore be compiled in the correct order, so that .mod
are available to others as needed. One way to ensure this is
with proper Makefile dependencies.
However the only way to know which .mod files a .f90 will
produce is to poke into that .f90, isn't it? That would
therefore had to be done at automake-time, but this is a very
unpleasant thing to do.
The Texinfo handling code already does something similar (it
search @setfilename into the .texi files) and we have hit a
problem because of this: the file must exist when automake is
run. This hinders support of generated .texi files.
Back to F90, that would mean that if automake has to scan the
.f90 files, any .f90 file which is actually produced at make
time (and couldn't be scanned by automake) is not allowed to
Michael> Yes, you're right. Should I say "nodist_EXTRA_HEADERS =
Michael> ..." too?
>> You can. It even looks more sensible. But actually it's
>> superfluous: EXTRA_* is really useful when there are extra
>> files to distribute or extra compile rule to generate.
Michael> But if I omit EXTRA_HEADERS (or if I use
Michael> nodist_EXTRA_HEADERS), then I get the following error
Michael> f90/Makefile.am:11: `nodist_include_HEADERS' contains configure
Michael> f90/Makefile.am:11: but `EXTRA_HEADERS' not defined
Well, so it is required then... Sorry for the confusion.