@@ -30,12 +30,39 @@ AC_ARG_VAR([FCLDFLAGS],[Fortran compiler-specific flags at link time])
3030AC_ARG_VAR ( [ LT_CFLAGS] ,[ C compiler flags passed to libtool in compile mode] )
3131AC_ARG_VAR ( [ LT_LDFLAGS] ,[ Flags passed to libtool in link mode] )
3232
33+ dnl
34+ # Enable fortran interface
35+ AC_ARG_ENABLE ( fortran ,
36+ [ --enable-fortran enable fortran interface to mat library] ,
37+ [ if test "$enableval" = "no" ; then
38+ enable_fortran=no
39+ else
40+ enable_fortran=yes
41+ fi] ,
42+ enable_fortran=no )
43+
3344dnl
3445dnl Build programs, C compiler, F77 compiler, make, install, etc.
3546dnl
3647AC_PROG_CC ( [ pgcc icc gcc cc] )
3748AC_USE_SYSTEM_EXTENSIONS
3849
50+ if test "$enable_fortran" = "yes"
51+ then
52+ AC_PROG_FC ( [ pgf95 pgf90 ifort gfortran g95] )
53+ AC_FC_WRAPPERS
54+ AC_CONFIG_FILES ( [ src/fortran/matio_t.inc] )
55+ dnl gfortran >= 10 requires -fallow-argument-mismatch for legacy interfaces
56+ AC_MSG_CHECKING ( [ whether $FC supports -fallow-argument-mismatch] )
57+ saved_FCFLAGS="$FCFLAGS"
58+ FCFLAGS="$FCFLAGS -fallow-argument-mismatch"
59+ AC_LANG_PUSH ( [ Fortran] )
60+ AC_COMPILE_IFELSE ( [ AC_LANG_PROGRAM ( [ ] ) ] ,
61+ [ AC_MSG_RESULT ( [ yes] ) ] ,
62+ [ AC_MSG_RESULT ( [ no] ) ; FCFLAGS="$saved_FCFLAGS"] )
63+ AC_LANG_POP ( [ Fortran] )
64+ fi
65+
3966AC_ARG_ENABLE ( coverage ,
4067[ --enable-coverage Enable coverage testing] ,
4168[ CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"] )
@@ -105,6 +132,10 @@ then
105132 FCFLAGS="$PROFILE_FCFLAGS $FCFLAGS"
106133fi
107134
135+ dnl
136+ dnl Try to avoid having libtool search for a fortran compiler
137+ dnl
138+ F77=$FC
108139AC_ENABLE_SHARED
109140AC_ENABLE_STATIC
110141LT_INIT
@@ -368,6 +399,18 @@ esac
368399AM_CONDITIONAL([ LINUX] , [ test "x$linux" = "xyes"] )
369400AM_CONDITIONAL([ WINNT] , [ test "x$winnt" = "xyes"] )
370401AM_CONDITIONAL([ SUN] , [ test "x$sun" = "xyes"] )
402+ AM_CONDITIONAL([ ENABLE_FORTRAN] , [ test "x$enable_fortran" = "xyes"] )
403+
404+ dnl
405+ dnl Without this, the linker line is incorrect on platforms without a fortran
406+ dnl compiler even if we are not using fortran sources
407+ dnl
408+ if test "x$enable_fortran" != "xyes"; then
409+ FCLINK='$(LINK)'
410+ else
411+ FCLINK='$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@'
412+ fi
413+ AC_SUBST ( FCLINK )
371414
372415winnt="no"
373416case "${host_os}" in
@@ -396,9 +439,13 @@ AC_MSG_RESULT([])
396439AC_MSG_RESULT ( [ MATIO Configuration Summary ] )
397440AC_MSG_RESULT ( [ ==============================================================] )
398441AC_MSG_RESULT ( [ C Compiler: $CC] )
442+ AC_MSG_RESULT ( [ Fortran Compiler: $FC] )
399443AC_MSG_RESULT ( [ CFLAGS: $CFLAGS] )
444+ AC_MSG_RESULT ( [ FCFLAGS: $FCFLAGS] )
445+ AC_MSG_RESULT ( [ FCLDFLAGS: $FCLDFLAGS] )
400446AC_MSG_RESULT ( [ Shared Libraries: $enable_shared] )
401447AC_MSG_RESULT ( [ Static Libraries: $enable_static] )
448+ AC_MSG_RESULT ( [ Fortran Interface: $enable_fortran] )
402449AC_MSG_RESULT ( [ default MAT version: $file_ver] )
403450AC_MSG_RESULT ( [ ] )
404451AC_MSG_RESULT ( [ Features --------------------------------------------] )
0 commit comments