]> sourceware.org Git - automake.git/commitdiff
*** empty log message ***
authorTom Tromey <tromey@redhat.com>
Mon, 27 Nov 1995 21:14:52 +0000 (21:14 +0000)
committerTom Tromey <tromey@redhat.com>
Mon, 27 Nov 1995 21:14:52 +0000 (21:14 +0000)
NEWS
automake.texi

diff --git a/NEWS b/NEWS
index c1f4a515bbf61bc68ec9bb54e04125a63766c2c3..ddc912b8bde4c8db281235211baa8387d840dc54 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ New in 0.21:
 * Reimplemented in Perl
 * Added --amdir option (for debugging)
 * Texinfo support cleaned up.
+* Automatic de-ANSI-fication cleaned up.
 \f
 New in 0.20:
 * Automatic dependency tracking
index fbb3031b0f3aa8f59bf6b45662d11bd14ac78572..79418e493b7f1a748849e2b0a2a54bc131fdc48f 100644 (file)
@@ -463,9 +463,85 @@ This means that each C source file will be treated as ANSI C.  If no
 ANSI C compiler is available on the build system, then the code will be
 turned into K&R C before compilation.
 
-FIXME need a section here about what really goes on here, what
-constraints there are, and what new files need to be in the
-distribution.  Only, I don't know.
+Each directory that uses automatic de-ANSI-fication must include the
+source files @file{ansi2knr.c} and @file{ansi2knr.1}.  Also, your
+@file{configure} script must define the variables @samp{U} and
+@samp{ANSI2KNR}.  Here is a snippet you can add to @file{aclocal.m4} to
+achieve this:
+
+@example
+## ------------------------------- ##
+## Check for function prototypes.  ##
+## ------------------------------- ##
+
+AC_DEFUN(fp_C_PROTOTYPES,
+[AC_REQUIRE([fp_PROG_CC_STDC])
+AC_MSG_CHECKING([for function prototypes])
+if test "$ac_cv_prog_cc_stdc" != no; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(PROTOTYPES)
+  U= ANSI2KNR=
+else
+  AC_MSG_RESULT(no)
+  U=_ ANSI2KNR=./ansi2knr
+fi
+AC_SUBST(U)dnl
+AC_SUBST(ANSI2KNR)dnl
+])
+
+
+## ----------------------------------------- ##
+## ANSIfy the C compiler whenever possible.  ##
+## ----------------------------------------- ##
+
+# @@defmac AC_PROG_CC_STDC
+# @@maindex PROG_CC_STDC
+# @@ovindex CC
+# If the C compiler in not in ANSI C mode by default, try to add an option
+# to output variable @@code@{CC@} to make it so.  This macro tries various
+# options that select ANSI C on some system or another.  It considers the
+# compiler to be in ANSI C mode if it defines @@code@{__STDC__@} to 1 and
+# handles function prototypes correctly.
+#
+# If you use this macro, you should check after calling it whether the C
+# compiler has been set to accept ANSI C; if not, the shell variable
+# @@code@{ac_cv_prog_cc_stdc@} is set to @@samp@{no@}.  If you wrote your source
+# code in ANSI C, you can make an un-ANSIfied copy of it by using the
+# program @@code@{ansi2knr@}, which comes with Ghostscript.
+# @@end defmac
+
+AC_DEFUN(fp_PROG_CC_STDC,
+[AC_MSG_CHECKING(for $@{CC-cc@} option to accept ANSI C)
+AC_CACHE_VAL(ac_cv_prog_cc_stdc,
+[ac_cv_prog_cc_stdc=no
+ac_save_CFLAGS="$CFLAGS"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX                  -qlanglvl=ansi
+# Ultrix and OSF/1     -std1
+# HP-UX                        -Aa -D_HPUX_SOURCE
+# SVR4                 -Xc
+for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" -Xc
+do
+  CFLAGS="$ac_save_CFLAGS $ac_arg"
+  AC_TRY_COMPILE(
+[#if !defined(__STDC__) || __STDC__ != 1
+choke me
+#endif 
+], [int test (int i, double x);
+struct s1 @{int (*f) (int a);@};
+struct s2 @{int (*f) (double a);@};],
+[ac_cv_prog_cc_stdc="$ac_arg"; break])
+done
+CFLAGS="$ac_save_CFLAGS"
+])
+AC_MSG_RESULT($ac_cv_prog_cc_stdc)
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno) ;;
+  *) CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+])
+@end example
 
 
 @node Install
This page took 0.031332 seconds and 5 git commands to generate.