Back to the Main Page. | ac_prog_cc_strict_prototypes |
Download the M4 Source. |
AC_PROG_CC_STRICT_PROTOTYPES(substvar [,hard])
1.1.1.1 (2001/07/26) guidod @ ac-archive-0.5.39
Guido Draheim <guidod@gmx.de>
obsoleted by AX_CFLAGS_STRICT_PROTOTYPES
Try to find a compiler option that warns when a function prototype is not fully defined. Enable it only if the the system headers are reasonably clean with respect to compiling with strict-prototypes.
The sanity check is done by looking at sys/signal.h which has a set of macro-definitions SIG_DFL and SIG_IGN that are cast to the local signal-handler type. If that signal-handler type is not fully qualified then the system headers are not seen as strictly prototype clean.
Currently this macro knows about GCC. hopefully will evolve to use: Solaris C compiler, Digital Unix C compiler, C for AIX Compiler, HP-UX C compiler, and IRIX C compiler.
AC_DEFUN([AC_PROG_CC_STRICT_PROTOTYPES], [ pushdef([CV], ac_cv_prog_cc_strict_prototypes)dnl hard=$2 if test -z "$hard"; then msg="C to warn at nonstrict prototypes" else msg="C to require strict prototypes" fi AC_CACHE_CHECK($msg, CV, [ cat > conftest.c <<EOF #include <sys/signal.h> int main (void) { if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 0; return 1; } EOF dnl GCC if test "$GCC" = "yes"; then if test -z "$hard"; then CV="-Wstrict-prototypes" else CV="-fstrict-prototypes -Wstrict-prototypes" fi if test -n "`${CC-cc} -c $CV conftest.c 2>&1`" ; then CV="suppressed...sys/stat.h" fi dnl Solaris C compiler dnl HP-UX C compiler dnl Digital Unix C compiler dnl C for AIX Compiler dnl IRIX C compiler fi rm -f conftest.* ]) if test -z "[$]$1" ; then if test -n "$CV" ; then case "$CV" in *...*) $1="" ;; # known but suppressed *) $1="$CV" ;; esac fi fi AC_SUBST($1) popdef([CV])dnl ])