[Top][All Lists]

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

Re: Fortran 90/95 support (autoconf)

From: marq
Subject: Re: Fortran 90/95 support (autoconf)
Date: Fri, 6 Jul 2001 01:55:02 +0200 (CEST)

Hi AKim, and hello to all the other autoconf experts,

sorry that this took so long...

>From a mail from Akim about a month ago:

> | solution by Martin Wilck for autoconf; but his macros ceased to work
> | as the autoconf development is *so* rapid. 
> Used to be.

Still is...

But then, from Akim's mail two days ago:

> And anyway, before applying your changes, I think we ought to split
> aclang into aclang, aclang-c (C, C 89, C++), and aclang-fortran.  We
> can debate about the names.

Really, I don't care - whatever you suggest. I have attached a file
aclang.fortran.m4, containing the (somewhat changed, see below)
Fortran90/95 things. I have not included the Fortran 77 stuff, since you
once wrote:

> I would like to suggest that you submit something like acfortran.m4
> instead.  Do not import the Fortran 77 stuff, I will, but I think we
> should split aclang.m4.

As my earlier one, the patch defines the following macros (with similar
meanings like their Fortran 77 counterparts):

  AC_LANG(Fortran 90)

  AC_LANG_SOURCE(Fortran 90)(BODY)
  AC_LANG_CALL(Fortran 90)(PROLOGUE, FUNCTION)   *not* discarding the prologue

  AC_LANG_PREPROC(Fortran 90)                    doing nothing, actually...
  AC_LANG_COMPILER(Fortran 90)


plus the corresponding Fortran 95 macros (s/90/95/ in the above
list). Also, the following shell variables are defined (and later on


while the shell variable


is honored if set (the idea is that a user might want to link specific
libraries when linking a Fortran 90 program). The corresponding F95*
versions also exist. Essentially, all macros are plain copies of the
Fortran 77 versions, edited manually to avoid unwanted interactions
between them, and to adjust default settings.

You had a number of remarks; like these:

> | +# -----------------
> | +AU_DEFUN([AC_LANG_FORTRAN90], [AC_LANG(Fortran 90)])
> Don't.  AU_DEFUN is for compatibility with old stuff.  This is new,
> just don't define it at all.

Removed. Also removed AC_LANG_FORTRAN95, ac_cv_prog_g90, ac_cv_prog_g95,
as you suggested.

> | +AC_DEFUN([AC_PROG_F90],
> Make it private.  I.e. _AC_PROG_F90.

AC_PROG_F77 - it's used to set a default compiler in
What's wrong with it? Likewise with AC_PROG_F95  - I've kept them both.

> | +# _AC_PROG_F90_G
> Do you think this is needed?

Actually, no. Removed. Likewise for _AC_PROG_F95_G.

> | +# AC_PROG_F90_C_O
> | +# ---------------
> If you are not sure it is useful, don't include it at all.

Actually, I also copied the comments from the Fortran 77 version...
Don't know what this macro is really good for -> removed. Likewise for
the F95 version.

> Groumph.  I don't like this.  We have to look for a means to share
> this across all the languages.  There is too much, way too much, code
> duplication.

Definitely. The problem is, my understanding of m4 programming is rather
poor, so I essentially don't know how to write real 'functions' with

> You should submit some form of documentation too, and a NEWS snippet.

I'll over the next few days.



Here's the patch:


 Index: aclang-fortran.m4, autoconf.m4,

 2001-07-05  Christian Marquardt  <address@hidden>

        * aclang-fortran.m4: added basic Fortran 90/95 support
             (AC_LANG(Fortran 90), AC_LANG_SOURCE(Fortran 90),
              AC_LANG_CALL(Fortran 90), AC_LANG_PREPROC(Fortran 90),
              AC_LANG_COMPILER(Fortran 90), AC_PROG_F90,
        * autoconf.m4: Now includes aclang-fortran.m4.
        * likewise.


  Christian Marquardt

  GFZ Potsdam, Div. 1             |       Tel.: (+49) 331-288-1168
  Am Telegrafenberg               |       Fax:  (+49) 331-288-1732
  D-14473 Potsdam                 |       Email: address@hidden

Attachment: fortran_90_autoconf_patch.diff
Description: Text document

Attachment: aclang-fortran.m4
Description: Text document

reply via email to

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