automake-patches
[Top][All Lists]
Advanced

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

Support for interdependency tracking between Fortan 90 modules


From: Nicolai Stange
Subject: Support for interdependency tracking between Fortan 90 modules
Date: Thu, 28 Jul 2011 00:04:04 +0200

Hi everybody,

please forgive me for sending such a semi-finished work to you,
especially documentation is lacking. Since I'm new to automake
contributing, I expect many changes to be made.

This is what it's all about:
Say you've got two Fortran files, one defining and one using a module,
then the one defining has always to be compiled first to create a *.mod
file or whatever (compiler dependent).

This is different from C-headers where it suffices to generate the
dependencies (->*.Po files) as side effects of compilation. But with
Fortran modules, these dependencies have to be computed before the first
compilation. Things get worse with preprocessed Fortran where other
files can be included that in turn can define/use modules.
However, I think I've got a solution that works and open the discussion.

One thing to note: The solution depends heavily on this:
http://austingroupbugs.net/view.php?id=332 
Currently, this effectively introduces a dependency on GNU make, but I
personally think that people working with sth. 'exotic' like Fortran can
be demanded to install sth. like GNU make.

Here is how it works:
People call AM_FORTRAN_OBEY_INTERDEPS([ext]) for each fortran extension
they want to be included into the dependency tracking mechanism.
The Makefile's in turn keep track of the interdependencies with the help
of files in .fdeps (very similiar like the ones in .deps) which get
dynamically updated on relevant changes.

I attached a simple test project (nasty_f90) to this mail, unfortunately
the 'make dist'-created tarball is about 300K big. So, if you want to
just have a look on it without patching your automake, just send me a
notice, I'll send it to you, bypassing this list.

Best,

Nicolai

Attachment: nasty_f90.tar.bz2
Description: application/bzip-compressed-tar

Attachment: am_fortran_module_interdeps.diff.gz
Description: GNU Zip compressed data


reply via email to

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