* Ralf Wildenhues wrote on Sun, Mar 06, 2011 at 01:54:07PM CET: > * lib/autoconf/fortran.m4 (AC_FC_MODULE_FLAG): New macro, > adjusted and rewritten from the AX_F90_MODULE_FLAG macro from > the Autoconf Macro Archive by Luc Maisonobe, Julian C. Cummings, > and Alexander Pletzer. > * doc/autoconf.texi (Fortran Compiler): Document it. > * tests/fortran.at (AC_FC_MODULE_FLAG): New test. > * tests/local.at (AT_CHECK_ENV): Do not complain about FC_MODINC > setting. > * THANKS: Update.
This patch needed a fixup for gfortran 4.4 so it wouldn't choose -M as include flag, as below. (I would like Sun f95 to prefer -M over -I for module inclusion, as the latter also governs header inclusion.) Cheers, Ralf diff --git a/lib/autoconf/fortran.m4 b/lib/autoconf/fortran.m4 index b03af38..25b0540 100644 --- a/lib/autoconf/fortran.m4 +++ b/lib/autoconf/fortran.m4 @@ -1570,12 +1570,13 @@ AC_SUBST([FC_MODEXT])dnl # It may contain significant trailing whitespace. # # Known flags: -# gfortran: -Idir, -I dir (-M dir (deprecated), -Jdir for writing) +# gfortran: -Idir, -I dir (-M dir, -Mdir (deprecated), -Jdir for writing) # g95: -I dir (-fmod=dir for writing) # SUN: -Mdir, -M dir (-moddir=dir for writing; # -Idir for includes is also searched) # HP: -Idir, -I dir (+moddir=dir for writing) # IBM: -Idir (-qmoddir=dir for writing) +# Intel: -Idir -I dir (-mod dir for writing) # Absoft: -pdir # Lahey: -mod dir # Cray: -module dir, -p dir (-J dir for writing) @@ -1588,7 +1589,8 @@ AC_SUBST([FC_MODEXT])dnl # (-Am indicates how module information is saved) AC_DEFUN([AC_FC_MODULE_FLAG],[ AC_CACHE_CHECK([Fortran 90 module inclusion flag], [ac_cv_fc_module_flag], -[AC_LANG_PUSH(Fortran) +[AC_LANG_PUSH([Fortran]) +ac_cv_fc_module_flag=unknown mkdir conftest.dir cd conftest.dir AC_COMPILE_IFELSE([[ @@ -1599,11 +1601,11 @@ AC_COMPILE_IFELSE([[ end subroutine end module]], [cd .. - ac_cv_fc_module_flag=unknown ac_fc_module_flag_FCFLAGS_save=$FCFLAGS # Flag ordering is significant for gfortran and Sun. for ac_flag in -M -I '-I ' '-M ' -p '-mod ' '-module ' '-Am -I'; do - FCFLAGS="$ac_fc_module_flag_FCFLAGS_save ${ac_flag}conftest.dir" + # Add the flag twice to prevent matching an output flag. + FCFLAGS="$ac_fc_module_flag_FCFLAGS_save ${ac_flag}conftest.dir ${ac_flag}conftest.dir" AC_COMPILE_IFELSE([[ program main use conftest_module @@ -1617,7 +1619,7 @@ AC_COMPILE_IFELSE([[ FCFLAGS=$ac_fc_module_flag_FCFLAGS_save ]) rm -rf conftest.dir -AC_LANG_POP(Fortran) +AC_LANG_POP([Fortran]) ]) if test "$ac_cv_fc_module_flag" != unknown; then FC_MODINC=$ac_cv_fc_module_flag