diff --git a/ChangeLog b/ChangeLog index 557b8b67..4d1588d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2001-07-18 Akim Demaille + + The C-Fortran 77 hooks are available only once AC_F77_DUMMY_MAIN + was run, while they are needed also when it is expanded. + Reported by Nicolas Joly. + + * aclang.m4 (AC_F77_DUMMY_MAIN): Define _AC_LANG_PROGRAM_C_F77_HOOKS. + (AC_LANG_PROGRAM(C)): Use it instead of depending upon + AC_F77_DUMMY_MAIN being expanded. + 2001-07-18 Akim Demaille * configure.in: Bump to 2.51a. diff --git a/aclang.m4 b/aclang.m4 index 4a5b9e26..b360c392 100644 --- a/aclang.m4 +++ b/aclang.m4 @@ -358,14 +358,7 @@ $1]) # against Fortran code, hence a dummy main might be needed. m4_define([AC_LANG_PROGRAM(C)], [$1 -m4_provide_ifelse([AC_F77_DUMMY_MAIN], -[#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -])dnl +m4_ifdef([_AC_LANG_PROGRAM_C_F77_HOOKS], [_AC_LANG_PROGRAM_C_F77_HOOKS()])dnl int main () { @@ -1961,6 +1954,14 @@ AC_LANG_POP(Fortran 77)dnl # MAIN _MAIN __MAIN main_ main__ _main (we follow DDD and try these too) AC_DEFUN([AC_F77_DUMMY_MAIN], [AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])dnl +m4_define([_AC_LANG_PROGRAM_C_F77_HOOKS], +[#ifdef F77_DUMMY_MAIN +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } +#endif +]) AC_CACHE_CHECK([for dummy main to link with Fortran 77 libraries], ac_cv_f77_dummy_main, [AC_LANG_PUSH(C)dnl diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index 4a5b9e26..b360c392 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -358,14 +358,7 @@ $1]) # against Fortran code, hence a dummy main might be needed. m4_define([AC_LANG_PROGRAM(C)], [$1 -m4_provide_ifelse([AC_F77_DUMMY_MAIN], -[#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -])dnl +m4_ifdef([_AC_LANG_PROGRAM_C_F77_HOOKS], [_AC_LANG_PROGRAM_C_F77_HOOKS()])dnl int main () { @@ -1961,6 +1954,14 @@ AC_LANG_POP(Fortran 77)dnl # MAIN _MAIN __MAIN main_ main__ _main (we follow DDD and try these too) AC_DEFUN([AC_F77_DUMMY_MAIN], [AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])dnl +m4_define([_AC_LANG_PROGRAM_C_F77_HOOKS], +[#ifdef F77_DUMMY_MAIN +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } +#endif +]) AC_CACHE_CHECK([for dummy main to link with Fortran 77 libraries], ac_cv_f77_dummy_main, [AC_LANG_PUSH(C)dnl diff --git a/lib/autoconf/fortran.m4 b/lib/autoconf/fortran.m4 index 4a5b9e26..b360c392 100644 --- a/lib/autoconf/fortran.m4 +++ b/lib/autoconf/fortran.m4 @@ -358,14 +358,7 @@ $1]) # against Fortran code, hence a dummy main might be needed. m4_define([AC_LANG_PROGRAM(C)], [$1 -m4_provide_ifelse([AC_F77_DUMMY_MAIN], -[#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -])dnl +m4_ifdef([_AC_LANG_PROGRAM_C_F77_HOOKS], [_AC_LANG_PROGRAM_C_F77_HOOKS()])dnl int main () { @@ -1961,6 +1954,14 @@ AC_LANG_POP(Fortran 77)dnl # MAIN _MAIN __MAIN main_ main__ _main (we follow DDD and try these too) AC_DEFUN([AC_F77_DUMMY_MAIN], [AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])dnl +m4_define([_AC_LANG_PROGRAM_C_F77_HOOKS], +[#ifdef F77_DUMMY_MAIN +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } +#endif +]) AC_CACHE_CHECK([for dummy main to link with Fortran 77 libraries], ac_cv_f77_dummy_main, [AC_LANG_PUSH(C)dnl diff --git a/lib/autoconf/lang.m4 b/lib/autoconf/lang.m4 index 4a5b9e26..b360c392 100644 --- a/lib/autoconf/lang.m4 +++ b/lib/autoconf/lang.m4 @@ -358,14 +358,7 @@ $1]) # against Fortran code, hence a dummy main might be needed. m4_define([AC_LANG_PROGRAM(C)], [$1 -m4_provide_ifelse([AC_F77_DUMMY_MAIN], -[#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -])dnl +m4_ifdef([_AC_LANG_PROGRAM_C_F77_HOOKS], [_AC_LANG_PROGRAM_C_F77_HOOKS()])dnl int main () { @@ -1961,6 +1954,14 @@ AC_LANG_POP(Fortran 77)dnl # MAIN _MAIN __MAIN main_ main__ _main (we follow DDD and try these too) AC_DEFUN([AC_F77_DUMMY_MAIN], [AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])dnl +m4_define([_AC_LANG_PROGRAM_C_F77_HOOKS], +[#ifdef F77_DUMMY_MAIN +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } +#endif +]) AC_CACHE_CHECK([for dummy main to link with Fortran 77 libraries], ac_cv_f77_dummy_main, [AC_LANG_PUSH(C)dnl diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4 index c06775d8..e25d7da3 100644 --- a/lib/m4sugar/m4sugar.m4 +++ b/lib/m4sugar/m4sugar.m4 @@ -371,7 +371,7 @@ m4_define([m4_ifset], [$3])]) -# ifndef(NAME, [IF-NOT-DEFINED], [IF-DEFINED]) +# m4_ifndef(NAME, [IF-NOT-DEFINED], [IF-DEFINED]) # ----------------------------------------------- m4_define([m4_ifndef], [m4_ifdef([$1], [$3], [$2])]) diff --git a/m4sugar.m4 b/m4sugar.m4 index c06775d8..e25d7da3 100644 --- a/m4sugar.m4 +++ b/m4sugar.m4 @@ -371,7 +371,7 @@ m4_define([m4_ifset], [$3])]) -# ifndef(NAME, [IF-NOT-DEFINED], [IF-DEFINED]) +# m4_ifndef(NAME, [IF-NOT-DEFINED], [IF-DEFINED]) # ----------------------------------------------- m4_define([m4_ifndef], [m4_ifdef([$1], [$3], [$2])])