bug#8635: Some Fortran files don't have the extensions automake wants

2011-05-10 Thread Peter Williams
On Mon, 2011-05-09 at 21:40 +0200, Stefano Lattarini wrote:
 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/msg3.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.

Thanks for your thoughts. I'm willing to do a little bit of work to get
this bug fixed, but I don't have the time to make a major revision to
automake's internals, which it sounds this patch would entail. (Though
as a longtime automake user I definitely agree that more extensibility
would be awesome.)

Ralf, I think I understand what you mentioned about AC_FC_SRCEXT, and
that sounds like a nice approach. Is work actively being done on hooking
up those macros to Automake's language-choosing apparatus? If I wanted
that to happen, would I realistically have to do it myself?

Thanks,

Peter

 
 Regards,
 
 Stefano


-- 
Peter Williams / pwilli...@astro.berkeley.edu
Department of Astronomy, UC Berkeley






bug#8635: Some Fortran files don't have the extensions automake wants

2011-05-09 Thread Peter Williams
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? I don't think developers would be too
happy about needing to run a custom-patched version of automake.

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.

Peter


 
  Thanks,
  
  Peter
  
 
 HTH,
   Stefano

-- 
Peter Williams / pwilli...@astro.berkeley.edu
Department of Astronomy, UC Berkeley






bug#8635: Some Fortran files don't have the extensions automake wants

2011-05-08 Thread Peter Williams
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 thinks that
.for files are Fortran 77 code, so the wrong compiler gets used and
chokes on the F90 constructs.

It's not practical for me to rename the files -- tracking upstream would
become impossible. Would it be possible to provide a way for me to tell
automake that my .for files are actually Fortran 90, not Fortran 77? As
far as I can tell, this mapping is simply hardcoded
in /usr/bin/automake. It wouldn't be the most pleasant, but it'd suffice
if there were some global variable that I could set that would say hey,
Automake, .for files are F90. One could imagine more generic solutions
as well, but Fortran is probably the only language that has these kinds
of problems.

Thanks,

Peter

-- 
Peter Williams / pwilli...@astro.berkeley.edu
Department of Astronomy, UC Berkeley