1 # The following is taken from automake 1.4,
2 # except that it prefers the compiler option -Ae to "-Aa -D_HPUX_SOURCE"
3 # because only the former supports 64-bit integral types on HP-UX 10.20.
5 ## ----------------------------------------- ##
6 ## ANSIfy the C compiler whenever possible. ##
7 ## From Franc,ois Pinard ##
8 ## ----------------------------------------- ##
12 # @defmac AC_PROG_CC_STDC
13 # @maindex PROG_CC_STDC
15 # If the C compiler in not in ANSI C mode by default, try to add an option
16 # to output variable @code{CC} to make it so. This macro tries various
17 # options that select ANSI C on some system or another. It considers the
18 # compiler to be in ANSI C mode if it handles function prototypes correctly.
20 # If you use this macro, you should check after calling it whether the C
21 # compiler has been set to accept ANSI C; if not, the shell variable
22 # @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
23 # code in ANSI C, you can make an un-ANSIfied copy of it by using the
24 # program @code{ansi2knr}, which comes with Ghostscript.
27 AC_DEFUN(AM_PROG_CC_STDC,
28 [AC_REQUIRE([AC_PROG_CC])
29 AC_BEFORE([$0], [AC_C_INLINE])
30 AC_BEFORE([$0], [AC_C_CONST])
31 dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
32 dnl a magic option to avoid problems with ANSI preprocessor commands
34 dnl FIXME: can't do this because then AC_AIX won't work due to a
35 dnl circular dependency.
36 dnl AC_BEFORE([$0], [AC_PROG_CPP])
37 AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
38 AC_CACHE_VAL(am_cv_prog_cc_stdc,
39 [am_cv_prog_cc_stdc=no
41 # Don't try gcc -ansi; that turns off useful extensions and
42 # breaks some systems' header files.
44 # Ultrix and OSF/1 -std1
45 # HP-UX -Aa -D_HPUX_SOURCE
46 # SVR4 -Xc -D__EXTENSIONS__
47 for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
49 CC="$ac_save_CC $ac_arg"
53 #include <sys/types.h>
55 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
56 struct buf { int x; };
57 FILE * (*rcsopen) (struct buf *, struct stat *, int);
64 static char *f (char * (*g) (char **, int), char **p, ...)
69 s = g (p, va_arg (v,int));
73 int test (int i, double x);
74 struct s1 {int (*f) (int a);};
75 struct s2 {int (*f) (double a);};
76 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
80 return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
82 [am_cv_prog_cc_stdc="$ac_arg"; break])
86 if test -z "$am_cv_prog_cc_stdc"; then
87 AC_MSG_RESULT([none needed])
89 AC_MSG_RESULT($am_cv_prog_cc_stdc)
91 case "x$am_cv_prog_cc_stdc" in
93 *) CC="$CC $am_cv_prog_cc_stdc" ;;