X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/b8f08e26adb42974f5e8072cd653b11b9e3c08b9..089067091c8d8b7e0e8df4345d4725d94fcca698:/aclocal.m4 diff --git a/aclocal.m4 b/aclocal.m4 index f8d5e0e20..eff9309c2 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -539,7 +539,117 @@ AC_MSG_RESULT([$NM]) AC_SUBST(NM) ]) + +# serial 1 + +# @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 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{am_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(AM_PROG_CC_STDC, +[AC_REQUIRE([AC_PROG_CC]) +AC_BEFORE([$0], [AC_C_INLINE]) +AC_BEFORE([$0], [AC_C_CONST]) +dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require +dnl a magic option to avoid problems with ANSI preprocessor commands +dnl like #elif. +dnl FIXME: can't do this because then AC_AIX won't work due to a +dnl circular dependency. +dnl AC_BEFORE([$0], [AC_PROG_CPP]) +AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) +AC_CACHE_VAL(am_cv_prog_cc_stdc, +[am_cv_prog_cc_stdc=no +ac_save_CC="$CC" +# 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 -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + AC_TRY_COMPILE( +[#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +], [ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +], +[am_cv_prog_cc_stdc="$ac_arg"; break]) +done +CC="$ac_save_CC" +]) +if test -z "$am_cv_prog_cc_stdc"; then + AC_MSG_RESULT([none needed]) +else + AC_MSG_RESULT($am_cv_prog_cc_stdc) +fi +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac +]) + dnl Autoconf macros for configuring the QuickThreads package +dnl Jim Blandy --- July 1998 +dnl +dnl Copyright (C) 1998 Free Software Foundation, Inc. +dnl +dnl This file is part of GUILE. +dnl +dnl GUILE is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as +dnl published by the Free Software Foundation; either version 2, or +dnl (at your option) any later version. +dnl +dnl GUILE is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public +dnl License along with GUILE; see the file COPYING. If not, write +dnl to the Free Software Foundation, Inc., 59 Temple Place, Suite +dnl 330, Boston, MA 02111-1307 USA + + dnl QTHREADS_CONFIGURE configures the QuickThreads package. The QT dnl sources should be in $srcdir/qt. If configuration succeeds, this @@ -547,7 +657,10 @@ dnl macro creates the appropriate symlinks in the qt object directory, dnl and sets the following variables, used in building libqthreads.a: dnl QTHREAD_LTLIBS --- set to libqthreads.la if configuration dnl succeeds, or the empty string if configuration fails. -dnl qtmd_h --- the name of the machine-dependent header file. +dnl qtmd_h, qtmds_s, qtmdc_c, qtdmdb_s --- the names of the machine- +dnl dependent source files. +dnl qthread_asflags --- flags to pass to the compiler when processing +dnl assembly-language files. dnl dnl It also sets the following variables, which describe how clients dnl can link against libqthreads.a: @@ -571,13 +684,13 @@ dnl pass the relative path to the ../libfoo.la file, but dnl 2) once the whole package has been installed, users should dnl link using -lfoo. dnl Normally, we only care about the first case, but since the -dnl build-guile script needs to give users all the flags they need +dnl guile-config script needs to give users all the flags they need dnl to link programs against guile, the GUILE_WITH_THREADS macro dnl needs to supply the second piece of information as well. dnl dnl This whole thing is a little confused about what ought to be dnl done in the top-level configure script, and what ought to be -dnl taken care of in the subdirectory. For example, qtmdc_lo and +dnl taken care of in the subdirectory. For example, qtmds_s and dnl friends really ought not to be even mentioned in the top-level dnl configure script, but here they are. @@ -593,6 +706,7 @@ AC_DEFUN([QTHREADS_CONFIGURE],[ changequote(,)dnl We use [ and ] in a regexp in the case THREAD_PACKAGE=QT + qthread_asflags='' case "$host" in i[3456]86-*-*) port_name=i386 @@ -600,6 +714,17 @@ AC_DEFUN([QTHREADS_CONFIGURE],[ qtmds_s=md/i386.s qtmdc_c=md/null.c qtdmdb_s= + case "$host" in + *-*-netbsd* ) + ## NetBSD needs to be told to pass the assembly code through + ## the C preprocessor. Other GCC installations seem to do + ## this by default, but NetBSD's doesn't. We could get the + ## same effect by giving the file a name ending with .S + ## instead of .s, but I don't see how to tell automake to do + ## that. + qthread_asflags='-x assembler-with-cpp' + ;; + esac ;; mips-sgi-irix[56]*) port_name=irix @@ -659,6 +784,7 @@ AC_DEFUN([QTHREADS_CONFIGURE],[ AC_SUBST(qtmds_s) AC_SUBST(qtmdc_c) AC_SUBST(qtdmdb_s) + AC_SUBST(qthread_asflags) AC_SUBST(THREAD_PACKAGE) AC_SUBST(THREAD_CPPFLAGS) AC_SUBST(THREAD_LIBS_LOCAL)