* Akim
| I agree there are *two* issues. One is that there is a AC_REQUIRE
| circular dependency because AC_EXEXT uses AC_LINK_IFELSE, the other
| is that both AC_LINK_IFELSE and AC_TRY_EVAL(ac_link) are
| inappropriate here.
Aha. How about the attached patch, then?
Regards,
Morten
Index: ChangeLog
===================================================================
RCS file: /cvs/autoconf/ChangeLog,v
retrieving revision 1.897
diff -u -r1.897 ChangeLog
--- ChangeLog 2000/10/05 13:52:41 1.897
+++ ChangeLog 2000/10/11 09:28:11
@@ -1,3 +1,9 @@
+2000-10-11 Morten Eriksen <[EMAIL PROTECTED]>
+
+ * acspecific.m4 (_AC_EXEEXT): Change of strategy for the macro, we
+ now search for a valid executable suffix. The old code had circular
+ dependencies which basically made it fubar.
+
2000-10-05 Akim Demaille <[EMAIL PROTECTED]>
Check that updated scripts are valid scripts.
Index: acspecific.m4
===================================================================
RCS file: /cvs/autoconf/acspecific.m4,v
retrieving revision 1.300
diff -u -r1.300 acspecific.m4
--- acspecific.m4 2000/10/02 12:47:13 1.300
+++ acspecific.m4 2000/10/11 15:14:45
@@ -1554,35 +1554,37 @@
# _AC_EXEEXT
# ----------
-# Check for the extension used for executables. This knows that we
-# add .exe for Cygwin or mingw32. Otherwise, it compiles a test
-# executable. If this is called, the executable extensions will be
-# automatically used by link commands run by the configure script.
+# Check for a valid extension to use for executables.
define([_AC_EXEEXT],
-[_AC_CYGWIN
-_AC_MINGW32
-_AC_EMXOS2
-AC_CACHE_CHECK([for executable suffix], ac_cv_exeext,
-[case "$CYGWIN $MINGW32 $EMXOS2" in
- *yes*) ac_cv_exeext=.exe ;;
- *)
- AC_LINK_IFELSE([AC_LANG_PROGRAM()],
- [if test ! -f conftest; then
- for ac_file in conftest.*; do
- case $ac_file in
- *.$ac_ext | *.o | *.obj | *.xcoff) ;;
- *) ac_cv_exeext=`expr "$ac_file" : 'conftest\(.*\)'`;;
- esac
- done
- fi],
- [AC_MSG_ERROR([cannot compile and link])])
- test -n "$ac_cv_exeext" && ac_cv_exeext=no;;
-esac])
-EXEEXT=
-test "$ac_cv_exeext" != no && EXEEXT=$ac_cv_exeext
-dnl Setting ac_exeext will implicitly change the ac_link command.
-ac_exeext=$EXEEXT
-AC_SUBST(EXEEXT)dnl
+[AC_CACHE_CHECK([for executable suffix], ac_cv_exeext,
+[# Try to compile and link an executable with no suffix first.
+ac_exeext=
+AC_LANG_CONFTEST([AC_LANG_PROGRAM()])
+if AC_TRY_EVAL(ac_link); then
+ # Ok, we can use an empty suffix for executables. Now see if the
+ # executable with the empty suffix is just a filesystem mapping
+ # from the real file (this happens under Cygwin, for instance).
+ if (test conftest -ef conftest.exe) >/dev/null 2>&1; then
+ # Prefer .exe over empty suffix.
+ ac_cv_exeext=.exe
+ else
+ ac_cv_exeext=
+ fi
+else
+ # Couldn't use empty suffix, try with suffix commonly used
+ # on MSWindows platforms.
+ ac_exeext=.exe
+ if AC_TRY_EVAL(ac_link); then
+ ac_cv_exeext=.exe
+ else
+ rm -f conftest.$ac_ext conftest.$ac_objext
+ AC_MSG_ERROR(cannot compile and link)
+ fi
+fi
+])
+rm -f conftest.$ac_ext conftest.$ac_objext conftest.$ac_exeext
+EXEEXT=$ac_cv_exeext
+AC_SUBST(EXEEXT)
])# _AC_EXEEXT