source: trunk/essentials/sys-devel/automake-1.7/m4/ccstdc.m4

Last change on this file was 3120, checked in by bird, 18 years ago

automake 1.7.9

File size: 3.6 KB
Line 
1## ----------------------------------------- ##
2## ANSIfy the C compiler whenever possible. ##
3## From Franc,ois Pinard ##
4## ----------------------------------------- ##
5
6# Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
7
8# This program is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 2, or (at your option)
11# any later version.
12
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17
18# You should have received a copy of the GNU General Public License
19# along with this program; if not, write to the Free Software
20# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21# 02111-1307, USA.
22
23# serial 2
24
25# @defmac AC_PROG_CC_STDC
26# @maindex PROG_CC_STDC
27# @ovindex CC
28# If the C compiler in not in ANSI C mode by default, try to add an option
29# to output variable @code{CC} to make it so. This macro tries various
30# options that select ANSI C on some system or another. It considers the
31# compiler to be in ANSI C mode if it handles function prototypes correctly.
32#
33# If you use this macro, you should check after calling it whether the C
34# compiler has been set to accept ANSI C; if not, the shell variable
35# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
36# code in ANSI C, you can make an un-ANSIfied copy of it by using the
37# program @code{ansi2knr}, which comes with Ghostscript.
38# @end defmac
39
40AC_DEFUN([AM_PROG_CC_STDC],
41[AC_REQUIRE([AC_PROG_CC])
42AC_BEFORE([$0], [AC_C_INLINE])
43AC_BEFORE([$0], [AC_C_CONST])
44dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
45dnl a magic option to avoid problems with ANSI preprocessor commands
46dnl like #elif.
47dnl FIXME: can't do this because then AC_AIX won't work due to a
48dnl circular dependency.
49dnl AC_BEFORE([$0], [AC_PROG_CPP])
50AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
51AC_CACHE_VAL(am_cv_prog_cc_stdc,
52[am_cv_prog_cc_stdc=no
53ac_save_CC="$CC"
54# Don't try gcc -ansi; that turns off useful extensions and
55# breaks some systems' header files.
56# AIX -qlanglvl=ansi
57# Ultrix and OSF/1 -std1
58# HP-UX 10.20 and later -Ae
59# HP-UX older versions -Aa -D_HPUX_SOURCE
60# SVR4 -Xc -D__EXTENSIONS__
61for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
62do
63 CC="$ac_save_CC $ac_arg"
64 AC_TRY_COMPILE(
65[#include <stdarg.h>
66#include <stdio.h>
67#include <sys/types.h>
68#include <sys/stat.h>
69/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
70struct buf { int x; };
71FILE * (*rcsopen) (struct buf *, struct stat *, int);
72static char *e (p, i)
73 char **p;
74 int i;
75{
76 return p[i];
77}
78static char *f (char * (*g) (char **, int), char **p, ...)
79{
80 char *s;
81 va_list v;
82 va_start (v,p);
83 s = g (p, va_arg (v,int));
84 va_end (v);
85 return s;
86}
87int test (int i, double x);
88struct s1 {int (*f) (int a);};
89struct s2 {int (*f) (double a);};
90int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
91int argc;
92char **argv;
93], [
94return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
95],
96[am_cv_prog_cc_stdc="$ac_arg"; break])
97done
98CC="$ac_save_CC"
99])
100if test -z "$am_cv_prog_cc_stdc"; then
101 AC_MSG_RESULT([none needed])
102else
103 AC_MSG_RESULT([$am_cv_prog_cc_stdc])
104fi
105case "x$am_cv_prog_cc_stdc" in
106 x|xno) ;;
107 *) CC="$CC $am_cv_prog_cc_stdc" ;;
108esac
109])
110
111AU_DEFUN([fp_PROG_CC_STDC], [AM_PROG_CC_STDC])
Note: See TracBrowser for help on using the repository browser.