]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
fix c++, remove NO_ARG_ARRAY, check for more X libs
authorDavid MacKenzie <djm@djmnet.org>
Thu, 25 Aug 1994 21:55:22 +0000 (21:55 +0000)
committerDavid MacKenzie <djm@djmnet.org>
Thu, 25 Aug 1994 21:55:22 +0000 (21:55 +0000)
NEWS
TODO
acconfig.h
acgeneral.m4
acspecific.m4
autoconf.texi
doc/autoconf.texi
lib/autoconf/general.m4
lib/autoconf/specific.m4

diff --git a/NEWS b/NEWS
index 26fdb0c2ed99585df99703464a402bf0a47f74ec..3134b8c1cc19ddb47124e9db0804ae8b7f25801d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -49,8 +49,10 @@ Major changes in release 2.0:
   execute on success.
 * AC_REMOTE_TAPE and AC_RSH removed; too specific to tar and cpio, and
   better maintained with them.
+* AC_ARG_ARRAY removed because no one was likely using it.
 * AC_HAVE_POUNDBANG replaced with AC_SYS_INTERPRETER, which doesn't
   take arguments.
+* Checking for C functions in C++ works.
 
 ** New utilities:
 * autoscan to generate a preliminary configure.in for a package by
diff --git a/TODO b/TODO
index c074f6710c60c97cf658b0cb0a50a8e104317e25..736eea57edd7cd5a894f10726a8cc42b06282a8b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -96,11 +96,8 @@ in a dnl comment.  (Seems to be hard.)
 
 ------------------------------------------------------------------------------
 
-* Prototypes and IEEE math contributed macros.
-
-------------------------------------------------------------------------------
-
-* Functions to check for C++ functions, or C functions under C++.
+* Look at user contributed macros: prototypes, IEEE double precision math, 
+shared libraries, various other things.
 
 ------------------------------------------------------------------------------
 
index 939be7b87bf835e3b5e06e7b1fa22d85a159c255..f0757865be6298f8b5e22a480116496c9d14f468 100644 (file)
 /* Define if you have <nlist.h>.  */
 #undef NLIST_STRUCT
 
-/* Define if you can't use the address of an argument to a function
-   as the start of an array.  */
-#undef NO_ARG_ARRAY
-
 /* Define if your C compiler doesn't accept -c and -o together.  */
 #undef NO_MINUS_C_MINUS_O
 
index bd9550632414e83f1389ac237dc250383e2dd04f..c2eb678e06933f0c95d1a47eed98cb0b9d5564d1 100644 (file)
@@ -35,7 +35,7 @@ Install it before installing Autoconf or set the
 M4 environment variable to its path name.
 )m4exit(2)])dnl
 dnl
-define(AC_ACVERSION, 1.103)dnl
+define(AC_ACVERSION, 1.104)dnl
 dnl This is defined by the --version option of the autoconf script.
 ifdef([AC_PRINT_VERSION], [Autoconf version AC_ACVERSION
 m4exit(0)])dnl
@@ -84,9 +84,7 @@ ac_help=])dnl
 dnl
 dnl AC_INIT_PARSE_ARGS()
 AC_DEFUN(AC_INIT_PARSE_ARGS,
-[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl
-AC_BEFORE([$0], [AC_ARG_WITH])dnl
-# Save the original args to write them into config.status later.
+[# Save the original args to write them into config.status later.
 configure_args="[$]@"
 
 # Omit some internal, obsolete, or unimplemented options to make the
@@ -381,13 +379,7 @@ divert(AC_DIVERSION_NORMAL)dnl
 dnl
 dnl AC_INIT_PREPARE(UNIQUE-FILE-IN-SOURCE-DIR)
 AC_DEFUN(AC_INIT_PREPARE,
-[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl
-AC_BEFORE([$0], [AC_ARG_WITH])dnl
-AC_BEFORE([$0], [AC_CONFIG_HEADER])dnl
-AC_BEFORE([$0], [AC_REVISION])dnl
-AC_BEFORE([$0], [AC_PREREQ])dnl
-dnl AC_BEFORE([$0], [AC_CONFIG_SUBDIRS])dnl
-trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+[trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
 trap 'rm -fr confdefs* $ac_clean_files' 0
 
 # File descriptor usage:
@@ -1139,12 +1131,15 @@ dnl
 dnl AC_TRY_LINK(INCLUDES, FUNCTION-BODY,
 dnl             ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
 AC_DEFUN(AC_TRY_LINK,
-[dnl We use return because because C++ requires a prototype for exit.
-cat > conftest.${ac_ext} <<EOF
+[cat > conftest.${ac_ext} <<EOF
 dnl This sometimes fails to find confdefs.h, for some reason.
 dnl [#]line __LINE__ "[$]0"
 #line __LINE__ "configure"
 #include "confdefs.h"
+ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+extern "C" void exit(int);
+#endif
+])dnl
 [$1]
 int main() { return 0; }
 int t() {
@@ -1175,6 +1170,10 @@ else
 cat > conftest.${ac_ext} <<EOF
 #line __LINE__ "configure"
 #include "confdefs.h"
+ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+extern "C" void exit(int);
+#endif
+])dnl
 [$1]
 EOF
 eval $ac_compile
@@ -1243,7 +1242,11 @@ AC_CACHE_VAL(ac_cv_func_$1,
 choke me
 #else
 /* Override any gcc2 internal prototype to avoid an error.  */
-extern char $1(); $1();
+]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+extern "C"
+#endif
+])dnl
+[char $1(); $1();
 #endif
 ], eval "ac_cv_func_$1=yes", eval "ac_cv_func_$1=no")])dnl
 if eval "test \"`echo '$ac_cv_func_'$1`\" = yes"; then
index 8a35e9930322b1e1a7c34cf1257714bed7e29ff1..2c9ff75a12f7ac5a96fcc89fc70c5fa6415696c5 100644 (file)
@@ -702,7 +702,12 @@ AC_TRY_RUN([/* Thanks to Paul Eggert for this test.  */
    Test for this by using a static variable whose address
    is put into a register that is clobbered by the vfork.  */
 static
-sparc_address_test (arg) int arg; {
+#ifdef __cplusplus
+sparc_address_test (int arg)
+#else
+sparc_address_test (arg) int arg;
+#endif
+{
   static pid_t child;
   if (!child) {
     child = vfork ();
@@ -1248,27 +1253,6 @@ if test $ac_cv_c_bigendian = yes; then
 fi
 ])dnl
 dnl
-AC_DEFUN(AC_C_ARG_ARRAY,
-[AC_MSG_CHECKING(whether the address of an argument can be used as an array)
-AC_CACHE_VAL(ac_cv_c_arg_array,
-[AC_TRY_RUN([main() {
-/* Return 0 iff arg arrays are ok.  */
-exit(!x(1, 2, 3, 4));
-}
-x(a, b, c, d) {
-  return y(a, &b);
-}
-/* Return 1 iff arg arrays are ok.  */
-y(a, b) int *b; {
-  return a == 1 && b[0] == 2 && b[1] == 3 && b[2] == 4;
-}], ac_cv_c_arg_array=no, ac_cv_c_arg_array=yes)
-rm -f core])dnl
-AC_MSG_RESULT($ac_cv_c_arg_array)
-if test $ac_cv_c_arg_array = no; then
-  AC_DEFINE(NO_ARG_ARRAY)
-fi
-])dnl
-dnl
 AC_DEFUN(AC_C_INLINE,
 [AC_REQUIRE([AC_PROG_CC])dnl
 AC_MSG_CHECKING([for inline])
@@ -1610,7 +1594,15 @@ else
     fi
   fi
 
-  # Check for additional X libraries.
+  # Check for libraries that R6 introduced.  Xt/Xaw programs need these.
+
+  ac_save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -L$x_libraries"
+  AC_HAVE_LIBRARY(ICE, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lICE"])
+  AC_HAVE_LIBRARY(SM, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM"])
+  LDFLAGS="$ac_save_LDFLAGS"
+
+  # Check for system-dependent libraries X programs must link with.
 
   if test "$ISC" = yes; then
     X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
@@ -1624,6 +1616,12 @@ else
       AC_CHECK_LIB(dnet_stub, dnet_ntoa,
         [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
     fi
+
+    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT.
+    # Not sure which flavor of 386 Unix this is, but it seems harmless to
+    # check for it.
+    AC_HAVE_LIBRARY(nsl, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"])
+
     # lieder@skyler.mavd.honeywell.com says without -lsocket,
     # socket/setsockopt and other routines are undefined under SCO ODT 2.0.
     # But -lsocket is broken on IRIX, according to simon@lia.di.epfl.ch.
index 01d0f9fc2527e08f4681e2ee7823dc003cd447a4..34c5803d7955a0ba8fdad6f042bb99d5d1734aa8 100644 (file)
@@ -6,8 +6,8 @@
 @c @setchapternewpage odd
 @c %**end of header
 
-@set EDITION 1.103
-@set VERSION 1.103
+@set EDITION 1.104
+@set VERSION 1.104
 @set UPDATED August 1994
 
 @iftex
@@ -954,26 +954,26 @@ something like the following, which assumes that you have also called
 @example
 @group
 #ifdef HAVE_UNISTD_H
-#include <sys/types.h>
-#include <unistd.h>
+# include <sys/types.h>
+# include <unistd.h>
 #endif
 
 #ifdef HAVE_DIRENT_H
 # include <dirent.h>
 # define NAMLEN(dirent) (strlen((dirent)->d_name))
-#else /* !HAVE_DIRENT_H */
+#else
 # define dirent direct
 # define NAMLEN(dirent) ((dirent)->d_namlen)
 # ifdef HAVE_SYS_NDIR_H
 #  include <sys/ndir.h>
-# endif /* HAVE_SYS_NDIR_H */
+# endif
 # ifdef HAVE_SYS_DIR_H
 #  include <sys/dir.h>
-# endif /* HAVE_SYS_DIR_H */
+# endif
 # ifdef HAVE_NDIR_H
 #  include <ndir.h>
-# endif /* HAVE_NDIR_H */
-#endif /* !HAVE_DIRENT_H */
+# endif
+#endif
 @end group
 @end example
 
@@ -1024,15 +1024,14 @@ Then, in the code, use a test like this:
 
 @example
 @group
+/* memory.h might conflict with an ANSI string.h, or strings.h.  */
 #if STDC_HEADERS || HAVE_STRING_H
 # include <string.h>
-/* An ANSI string.h and pre-ANSI memory.h might conflict.  */
 # if !STDC_HEADERS && HAVE_MEMORY_H
 #  include <memory.h>
-# endif /* not STDC_HEADERS and HAVE_MEMORY_H */
-#else /* not STDC_HEADERS and not HAVE_STRING_H */
+# endif
+#else
 # include <strings.h>
-/* memory.h and strings.h conflict on some systems.  */
 # ifndef strchr
 #  define strchr index
 # endif
@@ -1045,7 +1044,7 @@ Then, in the code, use a test like this:
 # ifndef memcmp
 #  define memcmp(s1, s2, n) bcmp ((s1), (s2), (n))
 # endif
-#endif /* not STDC_HEADERS and not HAVE_STRING_H */
+#endif
 @end group
 @end example
 
@@ -1424,15 +1423,6 @@ macro calls @code{AC_STRUCT_TM} if it hasn't been called already.
 The following macros check for C compiler or machine architecture
 features:
 
-@defmac AC_C_ARG_ARRAY
-@maindex C_ARG_ARRAY
-@cvindex NO_ARG_ARRAY
-If the address of an argument to a C function can not be used like
-the start of an array, define @code{NO_ARG_ARRAY}.  This ability allows
-a sequence of arguments with the same type to be accessed as if they
-were an array of values.
-@end defmac
-
 @defmac AC_C_BIGENDIAN
 @maindex C_BIGENDIAN
 @cvindex WORDS_BIGENDIAN
@@ -1991,7 +1981,8 @@ macro uses @code{CFLAGS} or @code{CXXFLAGS}, @code{CPPFLAGS},
 backquote substitutions are performed.  If it compiles and links
 successfully and returns an exit status of 0 when executed, run shell
 commands @var{action-if-true}.  Otherwise run shell commands
-@var{action-if-false}.  This macro uses @code{CFLAGS} or
+@var{action-if-false}; the exit status of the program is available in
+the shell variable @samp{$?}.  This macro uses @code{CFLAGS} or
 @code{CXXFLAGS}, @code{CPPFLAGS}, @code{LDFLAGS}, and @code{LIBS} when
 compiling.
 
@@ -2015,12 +2006,15 @@ future use (@pxref{Caching Values}, for more information).
 
 @defmac AC_CHECK_FUNC (@var{function}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]})
 @maindex CHECK_FUNC
-If @var{function} is available, run shell commands
+If C function @var{function} is available, run shell commands
 @var{action-if-found}, otherwise @var{action-if-not-found}.  If the
 functions might be in libraries other than the default C library, first
 call @code{AC_CHECK_LIB} for those libraries.  If you just want to
 define a symbol if the function is available, consider using
-@code{AC_CHECK_FUNCS} instead.
+@code{AC_CHECK_FUNCS} instead.  This macro checks for functions with C
+linkage even when @code{AC_LANG_CPLUSPLUS} has been called, since C++ is
+more standardized than C is.  (@pxref{Language Choice}, for more
+information about selecting the language for checks.)
 @end defmac
 
 @defmac AC_CHECK_FUNCS (@var{function}@dots{} @r{[}, @var{action}@r{]})
@@ -2983,13 +2977,23 @@ tests impossible.  You do this by passing the optional last argument to
 @node Guidelines, Tricks, , Test Programs
 @subsection Guidelines for Test Programs
 
-Test programs should return 0 if the test succeeds, nonzero otherwise,
-so that success can be distinguished easily from a core dump or other
-failure; segmentation violations and other failures produce a nonzero
-exit status.  Test programs should @code{exit}, not @code{return}, from
-@code{main}, because on some systems the argument to @code{return} in
-@code{main} is ignored.  They should not write anything to the standard
-output.
+Test programs should not write anything to the standard output.  They
+should return 0 if the test succeeds, nonzero otherwise, so that success
+can be distinguished easily from a core dump or other failure;
+segmentation violations and other failures produce a nonzero exit
+status.  Test programs should @code{exit}, not @code{return}, from
+@code{main}, because on some systems (old Suns, at least) the argument
+to @code{return} in @code{main} is ignored.  Functions that take
+arguments should have a prototype conditionalized for C++.  In practice,
+test programs rarely need functions that take arguments.
+
+@example
+#ifdef __cplusplus
+foo(int i)
+#else
+foo(i) int i;
+#endif
+@end example
 
 Test programs can use @code{#if} or @code{#ifdef} to check the values of
 preprocessor macros defined by tests that have already run.  For
@@ -3108,11 +3112,13 @@ By default, configure uses @file{./config.cache} as the cache file,
 creating it if it does not exist already.  @code{configure} accepts the
 @samp{--cache-file=@var{file}} option to use a different cache file;
 that is what @code{configure} does when it calls @code{configure}
-scripts in subdirectories, so they share the cache.  @xref{Setup}, for
-information on configuring subdirectories with the
-@code{AC_CONFIG_SUBDIRS} macro.  @file{config.status} only pays
-attention to the cache file if it is given the @samp{--recheck} option,
-which makes it rerun @code{configure}.
+scripts in subdirectories, so they share the cache.  Giving
+@samp{--cache-file=/dev/null} disables caching, for debugging
+@code{configure}.  @xref{Setup}, for information on configuring
+subdirectories with the @code{AC_CONFIG_SUBDIRS} macro.
+@file{config.status} only pays attention to the cache file if it is
+given the @samp{--recheck} option, which makes it rerun
+@code{configure}.
 
 It is wrong to try to distribute cache files for particular system types.
 There is too much room for error in doing that, and too much
@@ -3349,6 +3355,7 @@ stamp-h.in: configure.in aclocal.m4 acconfig.h config.h.top config.h.bot
 
 # config.status might not change config.h
 # Don't rerun config.status if we just configured.
+# Use || so the command line always returns success.
 config.h: stamp-h
 stamp-h: config.h.in config.status
         test ! -f stamp-h || ./config.status
@@ -3543,7 +3550,7 @@ for backward compatibility, the old names are considered obsolete.
 @code{AC_FUNC_ALLOCA}
 @item AC_ARG_ARRAY
 @maindex ARG_ARRAY
-@code{AC_C_ARG_ARRAY}
+removed because of limited usefulness
 @item AC_CHAR_UNSIGNED
 @maindex CHAR_UNSIGNED
 @code{AC_C_CHAR_UNSIGNED}
index 01d0f9fc2527e08f4681e2ee7823dc003cd447a4..34c5803d7955a0ba8fdad6f042bb99d5d1734aa8 100644 (file)
@@ -6,8 +6,8 @@
 @c @setchapternewpage odd
 @c %**end of header
 
-@set EDITION 1.103
-@set VERSION 1.103
+@set EDITION 1.104
+@set VERSION 1.104
 @set UPDATED August 1994
 
 @iftex
@@ -954,26 +954,26 @@ something like the following, which assumes that you have also called
 @example
 @group
 #ifdef HAVE_UNISTD_H
-#include <sys/types.h>
-#include <unistd.h>
+# include <sys/types.h>
+# include <unistd.h>
 #endif
 
 #ifdef HAVE_DIRENT_H
 # include <dirent.h>
 # define NAMLEN(dirent) (strlen((dirent)->d_name))
-#else /* !HAVE_DIRENT_H */
+#else
 # define dirent direct
 # define NAMLEN(dirent) ((dirent)->d_namlen)
 # ifdef HAVE_SYS_NDIR_H
 #  include <sys/ndir.h>
-# endif /* HAVE_SYS_NDIR_H */
+# endif
 # ifdef HAVE_SYS_DIR_H
 #  include <sys/dir.h>
-# endif /* HAVE_SYS_DIR_H */
+# endif
 # ifdef HAVE_NDIR_H
 #  include <ndir.h>
-# endif /* HAVE_NDIR_H */
-#endif /* !HAVE_DIRENT_H */
+# endif
+#endif
 @end group
 @end example
 
@@ -1024,15 +1024,14 @@ Then, in the code, use a test like this:
 
 @example
 @group
+/* memory.h might conflict with an ANSI string.h, or strings.h.  */
 #if STDC_HEADERS || HAVE_STRING_H
 # include <string.h>
-/* An ANSI string.h and pre-ANSI memory.h might conflict.  */
 # if !STDC_HEADERS && HAVE_MEMORY_H
 #  include <memory.h>
-# endif /* not STDC_HEADERS and HAVE_MEMORY_H */
-#else /* not STDC_HEADERS and not HAVE_STRING_H */
+# endif
+#else
 # include <strings.h>
-/* memory.h and strings.h conflict on some systems.  */
 # ifndef strchr
 #  define strchr index
 # endif
@@ -1045,7 +1044,7 @@ Then, in the code, use a test like this:
 # ifndef memcmp
 #  define memcmp(s1, s2, n) bcmp ((s1), (s2), (n))
 # endif
-#endif /* not STDC_HEADERS and not HAVE_STRING_H */
+#endif
 @end group
 @end example
 
@@ -1424,15 +1423,6 @@ macro calls @code{AC_STRUCT_TM} if it hasn't been called already.
 The following macros check for C compiler or machine architecture
 features:
 
-@defmac AC_C_ARG_ARRAY
-@maindex C_ARG_ARRAY
-@cvindex NO_ARG_ARRAY
-If the address of an argument to a C function can not be used like
-the start of an array, define @code{NO_ARG_ARRAY}.  This ability allows
-a sequence of arguments with the same type to be accessed as if they
-were an array of values.
-@end defmac
-
 @defmac AC_C_BIGENDIAN
 @maindex C_BIGENDIAN
 @cvindex WORDS_BIGENDIAN
@@ -1991,7 +1981,8 @@ macro uses @code{CFLAGS} or @code{CXXFLAGS}, @code{CPPFLAGS},
 backquote substitutions are performed.  If it compiles and links
 successfully and returns an exit status of 0 when executed, run shell
 commands @var{action-if-true}.  Otherwise run shell commands
-@var{action-if-false}.  This macro uses @code{CFLAGS} or
+@var{action-if-false}; the exit status of the program is available in
+the shell variable @samp{$?}.  This macro uses @code{CFLAGS} or
 @code{CXXFLAGS}, @code{CPPFLAGS}, @code{LDFLAGS}, and @code{LIBS} when
 compiling.
 
@@ -2015,12 +2006,15 @@ future use (@pxref{Caching Values}, for more information).
 
 @defmac AC_CHECK_FUNC (@var{function}, @var{action-if-found} @r{[}, @var{action-if-not-found}@r{]})
 @maindex CHECK_FUNC
-If @var{function} is available, run shell commands
+If C function @var{function} is available, run shell commands
 @var{action-if-found}, otherwise @var{action-if-not-found}.  If the
 functions might be in libraries other than the default C library, first
 call @code{AC_CHECK_LIB} for those libraries.  If you just want to
 define a symbol if the function is available, consider using
-@code{AC_CHECK_FUNCS} instead.
+@code{AC_CHECK_FUNCS} instead.  This macro checks for functions with C
+linkage even when @code{AC_LANG_CPLUSPLUS} has been called, since C++ is
+more standardized than C is.  (@pxref{Language Choice}, for more
+information about selecting the language for checks.)
 @end defmac
 
 @defmac AC_CHECK_FUNCS (@var{function}@dots{} @r{[}, @var{action}@r{]})
@@ -2983,13 +2977,23 @@ tests impossible.  You do this by passing the optional last argument to
 @node Guidelines, Tricks, , Test Programs
 @subsection Guidelines for Test Programs
 
-Test programs should return 0 if the test succeeds, nonzero otherwise,
-so that success can be distinguished easily from a core dump or other
-failure; segmentation violations and other failures produce a nonzero
-exit status.  Test programs should @code{exit}, not @code{return}, from
-@code{main}, because on some systems the argument to @code{return} in
-@code{main} is ignored.  They should not write anything to the standard
-output.
+Test programs should not write anything to the standard output.  They
+should return 0 if the test succeeds, nonzero otherwise, so that success
+can be distinguished easily from a core dump or other failure;
+segmentation violations and other failures produce a nonzero exit
+status.  Test programs should @code{exit}, not @code{return}, from
+@code{main}, because on some systems (old Suns, at least) the argument
+to @code{return} in @code{main} is ignored.  Functions that take
+arguments should have a prototype conditionalized for C++.  In practice,
+test programs rarely need functions that take arguments.
+
+@example
+#ifdef __cplusplus
+foo(int i)
+#else
+foo(i) int i;
+#endif
+@end example
 
 Test programs can use @code{#if} or @code{#ifdef} to check the values of
 preprocessor macros defined by tests that have already run.  For
@@ -3108,11 +3112,13 @@ By default, configure uses @file{./config.cache} as the cache file,
 creating it if it does not exist already.  @code{configure} accepts the
 @samp{--cache-file=@var{file}} option to use a different cache file;
 that is what @code{configure} does when it calls @code{configure}
-scripts in subdirectories, so they share the cache.  @xref{Setup}, for
-information on configuring subdirectories with the
-@code{AC_CONFIG_SUBDIRS} macro.  @file{config.status} only pays
-attention to the cache file if it is given the @samp{--recheck} option,
-which makes it rerun @code{configure}.
+scripts in subdirectories, so they share the cache.  Giving
+@samp{--cache-file=/dev/null} disables caching, for debugging
+@code{configure}.  @xref{Setup}, for information on configuring
+subdirectories with the @code{AC_CONFIG_SUBDIRS} macro.
+@file{config.status} only pays attention to the cache file if it is
+given the @samp{--recheck} option, which makes it rerun
+@code{configure}.
 
 It is wrong to try to distribute cache files for particular system types.
 There is too much room for error in doing that, and too much
@@ -3349,6 +3355,7 @@ stamp-h.in: configure.in aclocal.m4 acconfig.h config.h.top config.h.bot
 
 # config.status might not change config.h
 # Don't rerun config.status if we just configured.
+# Use || so the command line always returns success.
 config.h: stamp-h
 stamp-h: config.h.in config.status
         test ! -f stamp-h || ./config.status
@@ -3543,7 +3550,7 @@ for backward compatibility, the old names are considered obsolete.
 @code{AC_FUNC_ALLOCA}
 @item AC_ARG_ARRAY
 @maindex ARG_ARRAY
-@code{AC_C_ARG_ARRAY}
+removed because of limited usefulness
 @item AC_CHAR_UNSIGNED
 @maindex CHAR_UNSIGNED
 @code{AC_C_CHAR_UNSIGNED}
index bd9550632414e83f1389ac237dc250383e2dd04f..c2eb678e06933f0c95d1a47eed98cb0b9d5564d1 100644 (file)
@@ -35,7 +35,7 @@ Install it before installing Autoconf or set the
 M4 environment variable to its path name.
 )m4exit(2)])dnl
 dnl
-define(AC_ACVERSION, 1.103)dnl
+define(AC_ACVERSION, 1.104)dnl
 dnl This is defined by the --version option of the autoconf script.
 ifdef([AC_PRINT_VERSION], [Autoconf version AC_ACVERSION
 m4exit(0)])dnl
@@ -84,9 +84,7 @@ ac_help=])dnl
 dnl
 dnl AC_INIT_PARSE_ARGS()
 AC_DEFUN(AC_INIT_PARSE_ARGS,
-[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl
-AC_BEFORE([$0], [AC_ARG_WITH])dnl
-# Save the original args to write them into config.status later.
+[# Save the original args to write them into config.status later.
 configure_args="[$]@"
 
 # Omit some internal, obsolete, or unimplemented options to make the
@@ -381,13 +379,7 @@ divert(AC_DIVERSION_NORMAL)dnl
 dnl
 dnl AC_INIT_PREPARE(UNIQUE-FILE-IN-SOURCE-DIR)
 AC_DEFUN(AC_INIT_PREPARE,
-[AC_BEFORE([$0], [AC_ARG_ENABLE])dnl
-AC_BEFORE([$0], [AC_ARG_WITH])dnl
-AC_BEFORE([$0], [AC_CONFIG_HEADER])dnl
-AC_BEFORE([$0], [AC_REVISION])dnl
-AC_BEFORE([$0], [AC_PREREQ])dnl
-dnl AC_BEFORE([$0], [AC_CONFIG_SUBDIRS])dnl
-trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+[trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
 trap 'rm -fr confdefs* $ac_clean_files' 0
 
 # File descriptor usage:
@@ -1139,12 +1131,15 @@ dnl
 dnl AC_TRY_LINK(INCLUDES, FUNCTION-BODY,
 dnl             ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
 AC_DEFUN(AC_TRY_LINK,
-[dnl We use return because because C++ requires a prototype for exit.
-cat > conftest.${ac_ext} <<EOF
+[cat > conftest.${ac_ext} <<EOF
 dnl This sometimes fails to find confdefs.h, for some reason.
 dnl [#]line __LINE__ "[$]0"
 #line __LINE__ "configure"
 #include "confdefs.h"
+ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+extern "C" void exit(int);
+#endif
+])dnl
 [$1]
 int main() { return 0; }
 int t() {
@@ -1175,6 +1170,10 @@ else
 cat > conftest.${ac_ext} <<EOF
 #line __LINE__ "configure"
 #include "confdefs.h"
+ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+extern "C" void exit(int);
+#endif
+])dnl
 [$1]
 EOF
 eval $ac_compile
@@ -1243,7 +1242,11 @@ AC_CACHE_VAL(ac_cv_func_$1,
 choke me
 #else
 /* Override any gcc2 internal prototype to avoid an error.  */
-extern char $1(); $1();
+]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+extern "C"
+#endif
+])dnl
+[char $1(); $1();
 #endif
 ], eval "ac_cv_func_$1=yes", eval "ac_cv_func_$1=no")])dnl
 if eval "test \"`echo '$ac_cv_func_'$1`\" = yes"; then
index 8a35e9930322b1e1a7c34cf1257714bed7e29ff1..2c9ff75a12f7ac5a96fcc89fc70c5fa6415696c5 100644 (file)
@@ -702,7 +702,12 @@ AC_TRY_RUN([/* Thanks to Paul Eggert for this test.  */
    Test for this by using a static variable whose address
    is put into a register that is clobbered by the vfork.  */
 static
-sparc_address_test (arg) int arg; {
+#ifdef __cplusplus
+sparc_address_test (int arg)
+#else
+sparc_address_test (arg) int arg;
+#endif
+{
   static pid_t child;
   if (!child) {
     child = vfork ();
@@ -1248,27 +1253,6 @@ if test $ac_cv_c_bigendian = yes; then
 fi
 ])dnl
 dnl
-AC_DEFUN(AC_C_ARG_ARRAY,
-[AC_MSG_CHECKING(whether the address of an argument can be used as an array)
-AC_CACHE_VAL(ac_cv_c_arg_array,
-[AC_TRY_RUN([main() {
-/* Return 0 iff arg arrays are ok.  */
-exit(!x(1, 2, 3, 4));
-}
-x(a, b, c, d) {
-  return y(a, &b);
-}
-/* Return 1 iff arg arrays are ok.  */
-y(a, b) int *b; {
-  return a == 1 && b[0] == 2 && b[1] == 3 && b[2] == 4;
-}], ac_cv_c_arg_array=no, ac_cv_c_arg_array=yes)
-rm -f core])dnl
-AC_MSG_RESULT($ac_cv_c_arg_array)
-if test $ac_cv_c_arg_array = no; then
-  AC_DEFINE(NO_ARG_ARRAY)
-fi
-])dnl
-dnl
 AC_DEFUN(AC_C_INLINE,
 [AC_REQUIRE([AC_PROG_CC])dnl
 AC_MSG_CHECKING([for inline])
@@ -1610,7 +1594,15 @@ else
     fi
   fi
 
-  # Check for additional X libraries.
+  # Check for libraries that R6 introduced.  Xt/Xaw programs need these.
+
+  ac_save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -L$x_libraries"
+  AC_HAVE_LIBRARY(ICE, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lICE"])
+  AC_HAVE_LIBRARY(SM, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM"])
+  LDFLAGS="$ac_save_LDFLAGS"
+
+  # Check for system-dependent libraries X programs must link with.
 
   if test "$ISC" = yes; then
     X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
@@ -1624,6 +1616,12 @@ else
       AC_CHECK_LIB(dnet_stub, dnet_ntoa,
         [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
     fi
+
+    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT.
+    # Not sure which flavor of 386 Unix this is, but it seems harmless to
+    # check for it.
+    AC_HAVE_LIBRARY(nsl, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"])
+
     # lieder@skyler.mavd.honeywell.com says without -lsocket,
     # socket/setsockopt and other routines are undefined under SCO ODT 2.0.
     # But -lsocket is broken on IRIX, according to simon@lia.di.epfl.ch.