bug#8635: Some Fortran files don't have the extensions automake wants
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
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
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