| Hopefully this is it (barring a rename on the high level interface.
| I missed the CPPFLAGS in the last version..
| If you're code is portable this is effective with a simple
| AC_API_WIN32
You should really read the CVS Autoconf documentation. Your quotation
is dangerous at some points, and there are a few suggestions in there
on how to unobfuscate M4 code.
| dnl COMPILER WIN32 support ====================================
| AC_DEFUN(AC_PROG_CC_WIN32, [
| dnl figure out how to run CC with access to the win32 api if present
| dnl configure that as the CC program,
| dnl WIN32 may be present with WINE, under cygwin, or under mingw,
| dnl or cross compilers targeting those same three targets.
| dnl as it happens, I can only test cygwin, so extra input here will be appreciated
| dnl send bug reports to Robert Collins <[EMAIL PROTECTED]>
|
| dnl logic: is CC already configured? if not, call AC_PROG_CC.
| dnl if so - try it. If that doesn't work ,try -mwin32. If that doesn't work, fail
| dnl
| dnl 2001-03-15 - Changed from yes/no to true/false -suggested by Lars J
|Aas<[EMAIL PROTECTED]>
| dnl * Change true to : - suggest by Alexandre Oliva <[EMAIL PROTECTED]>
| dnl * changed layout on the basis of autoconf mailing list:
| dnl there are now two interfaces, a language specific one which sets
| dnl or clears WIN32 && WIN32FLAGS as appropriate
| dnl
Move the comments out of the macro, use `#', not dnl, quote the name
being defined.
| AC_REQUIRE([AC_PROG_CC])
dnl at the end
| echo $ECHO_N "checking how to access the Win32 API..." >&6
This is wrong, use the AC_FD_* if you need to, otherwise you certainly
mean AC_MSG_*
| WIN32FLAGS=
| AC_TRY_COMPILE(,[#ifndef WIN32
| #ifndef _WIN32
| #error WIN32 or _WIN32 not defined
| #endif
| #endif],
#error is suspected to cause problems, although I don't recall having
seen it happen. Please indent cpp directives.
| [
| dnl found windows.h with the current config.
| echo "${ECHO_T}Win32 API found by default" >&6
| ], [
You must not use ECHO_N, you are breaking the abstraction layers :)
| dnl try -mwin32
| save_cc="$ac_compile"
You break out of the Autoconf name space: use ac_compile_save for
readability.
| dnl we change CC so config.log looks correct
| save_CC="$CC"
| ac_compile="$ac_compile -mwin32"
| CC="$CC -mwin32"
| AC_TRY_COMPILE(,[#ifndef WIN32
| #ifndef _WIN32
| #error WIN32 or _WIN32 not defined
| #endif
| #endif], [
| dnl found windows.h using -mwin32
| echo "${ECHO_T}Win32 API found via -mwin32" >&6
| ac_compile="$save_cc"
| CC="$save_CC"
| WIN32FLAGS="-mwin32"
| ], [
| ac_compile="$save_cc"
| CC="$save_CC"
| echo "${ECHO_T}Win32 API Not found" >&6
| ])
| ])
|
| AC_PROVIDE([$0])
Huh? Don't, AC_DEFUN did for you.
| AC_DEFUN(AC_PROG_CXX_WIN32, [
Same comments.
| AC_DEFUN(AC_API_WIN32, [
| dnl high level interface for finding out compiler support for win32.
|
| AC_LANG_CASE([C], AC_PROG_CC_WIN32 [CFLAGS="$WIN32FLAGS $CFLAGS"
| CPPFLAGS="$WIN32FLAGS $CPPFLAGS"],
| [C++], AC_PROG_CXX_WIN32 [CXXFLAGS="$WIN32FLAGS $CXXFLAGS"
| CPPFLAGS="$WIN32FLAGS $CPPFLAGS"],
| [echo "No macro support for WIN32 with $_AC_LANG"
| exit 1])
| ])
Use AC_FATAL. Quote the exec parts. And in fact, just factor
AC_PROG_CXX_WIN32 as an AC_REQUIRE of this macros.