On Monday 09 May 2011, Peter Williams wrote:

> Hi Stefano,

>

> Thanks for your prompt reply.

>

> On Mon, 2011-05-09 at 14:11 +0200, Stefano Lattarini wrote:

> > severity 8635 wishlist

> > thanks

> >

> > On Saturday 07 May 2011, Peter Williams wrote:

> > > I'm working on wrapping a large, preexisting piece of Fortran code with

> > > an Autotools-based build system. The code is written in Fortran 90 and

> > > uses ".for" for the file extension. Unfortunately, automake ...

> > >

> > I assume you are using automake 1.11.1, right?

>

> Yes.

>

> > Please try the attached patch (against the v1.11.1 tag in the automake git

> > repository). I *think* it should solve your problem for what concerns

> > automake. However, note that the GNU Fortran Compiler will still consider

> > `*.for' files to be Fortran 77 by default, so you'll have to instruct it

> > to explicitly assume free-form Fortran 90 input, with .e.g.:

> >

> > $ ./configure FCFLAGS='-ffree-form -x f95' LDFLAGS='-x none'

> >

> > This solution is probably not the best one, and is certainly not pretty,

> > but it should work. If you can come up with a more general one, I'd be

> > happy to hear about it.

>

> This does work. Do you think this change would be applied to released

> versions of automake, though?

>

Certainly no; the current automake behaviour w.r.t. the `.for' extension

has been in place for a long time, and it matches gfortran expectations,

so there's no reason to just change it. But making it configurable could

be a useful improvement.

> I don't think developers would be too

> happy about needing to run a custom-patched version of automake.

>

That's understandable. Unfortunately, the lack of easy extesibility is

a known problem of Automake, and IMHO its major shortcoming.

> I was thinking that there could be an Autoconf macro called

>

> AM_ALIAS_SOURCE_EXTENSION([.for],[.f90])

>

> that would mutate the %extension_map variable to treat .for files the

> way that .f90 files are normally treated. It looks like this could

> happen in &scan_autoconf_traces. I don't have a good enough

> understanding of the automake internals to know whether this would be a

> simple change or whether that would affect a lot of other things,

> though.

>

Hmm... I don't like this solution either; it still sounds a little too

hackish, and to me it seems wrong to have to declare project policy

decisions that are system-independent and relevant only for automake (in

this case, the policy decision being "use the `*.for' extension for

Fortran 90 sources") in the configure.ac file.

OTOH, some times ago a patch has been proposed which would allow user

extensions to the languages handled/understood by Automake:

<http://lists.gnu.org/archive/html/automake/2010-09/msg00003.html>

IMHO, resurrecting it (and possibly improving it to naturally serve your

user case) would be the best way to fix your problem (and similar ones)

in the long run.

Regards,

Stefano