Skip to content

Latest commit

 

History

History

config

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The GNU autotools list f77 and f90 as supported languages.  However, the
support for them is weak, due largely to a lack of developers who have
familiarity with fortran and the wide array of compilers available.  

Specifically, one must use automake 1.9.0 or greater to have the FC
variable work at all -- older versions always used F77COMPILE in the
target rules.  

Libtool doesn't have a good way of specifying which PIC flag to
test things with automatically.  As a result, any fortran compiler that
does not use "-fpic" can't generate PIC which is the first step in
generating a shared library.  This is an autoconf/libtool interaction
issue, with the onus on libtool to either have the correct libtool.m4 
file which has the PIC flags hardcodes (as has recently been done for
the PG compilers), or to tell the autoconf guys how to get the users to
specify the PIC flag.

In general, we need to do things the autotools way.  This means that f90
and f77 are separate languages -- I configure them in completely
separate files.  In addition to being consistent with autoconf, this 
has the advantage of allowing users to use only one compiler (pure f90
say) and fix things relative to the other compiler.  In the case of
automake, one can configure the f90 compiler and then set F77=$FC in
configure.in.

In the documentation and such, I use FC and F90 interchangeably.  FC is
the autotools awful variable name for any fortran version beyond F77.
It has nothing to do with f2c.  If you want to use an F90 variable in
makefiles, then set it manually in configure.in (F90=FC).  All of the
variables are FC to be autoconf consistent.


File layout and comments:
  f77.m4 and fc.m4
  	Replaces AC_PROG_FC and AC_PROG_F77
  f77flags.m4 and fcflags.m4
	Depends on compiler definitions as well as host.
	Keep separate from the compiler def to allow user friendliness:
	-if you change the compiler, it changes the default flags
	-specify flags (or flag type such as optimization or debug) 
	  independently of compiler
  f77interop.m4 and fcinterop.m4
  	Things required for interoperability.  If you want to use this,
	it is HIGHLY recommended that you read the autoconf info file.
	They have lots of detailed information on interoperability issues.
  mpif77.m4 and mpif90.m4
  	This can be tricky because we want the mpi wrappers to be
	consistent with the chosen compiler/flags.