autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Handling __STDC__ on Windows


From: Thomas Dickey
Subject: Re: Handling __STDC__ on Windows
Date: Wed, 13 Jul 2005 18:03:28 -0400 (EDT)

On Wed, 13 Jul 2005, Paul D. Smith wrote:

I have a bunch of macros in GNU make that try to determine whether the
compiler groks ANSI C, like this:

 #if defined (__cplusplus) || (defined (__STDC__) && __STDC__)

But, that doesn't work on Windows because the Windows compilers do this:

   #define __STDC__ 0

I guess the feeling is they support standard C with extensions so they
define it to 0 or something--seems silly to me but there's not much we
can do about this.


What is the autoconf-recommended, portable way to handle this?

pretty much as you've started. Write something like that in your changelog, it it'll look like other comments that I've read.

fwiw, Windows compilers aren't the only ones to do this - you should
make a habit of reading manpages.  For instance (the usual one cited)
is Solaris C.  Reading the manpage:

          a    This is the default compiler mode. ISO C plus K&R
               C compatibility extensions, with semantic changes
               required by ISO C. Where K&R C and ISO C specify
               different semantics for the same construct, the
               compiler uses the ISO C interpretation. If the -Xa
               option is used in conjunction with the -xtransi-
               tion option, the compiler issues warnings about
               the different semantics. The predefined macro
               __STDC__ has a value of 0 with the -Xa option.

(Solaris isn't the only one - leave that as an exercise ;-)

--
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]