-dnl aclocal.m4 generated automatically by aclocal 1.2c
+dnl aclocal.m4 generated automatically by aclocal 1.3
-dnl Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
dnl This Makefile.in is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
fi
])
+
+
+dnl Check checks whether dlsym (if present) requires a leading underscore.
+dnl Written by Dan Hagerty <hag@ai.mit.edu> for scsh-0.5.0.
+AC_DEFUN(GUILE_DLSYM_USCORE, [
+ AC_MSG_CHECKING(for underscore before symbols)
+ AC_CACHE_VAL(guile_cv_uscore,[
+ echo "main(){int i=1;}
+ fnord(){int i=23; int ltuae=42;}" > conftest.c
+ ${CC} conftest.c > /dev/null
+ if (nm a.out | grep _fnord) > /dev/null; then
+ guile_cv_uscore=yes
+ else
+ guile_cv_uscore=no
+ fi])
+ AC_MSG_RESULT($guile_cv_uscore)
+ rm -f conftest.c a.out
+
+ if test $guile_cv_uscore = yes; then
+ AC_DEFINE(USCORE)
+
+ if test $ac_cv_func_dlopen = yes -o $ac_cv_lib_dl_dlopen = yes ; then
+ AC_MSG_CHECKING(whether dlsym always adds an underscore for us)
+ AC_CACHE_VAL(guile_cv_dlsym_adds_uscore,AC_TRY_RUN( [
+#include <dlfcn.h>
+#include <stdio.h>
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY);
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+ if(ptr1 && !ptr2) exit(0); } exit(1); }
+], [guile_cv_dlsym_adds_uscore=yes
+ AC_DEFINE(DLSYM_ADDS_USCORE) ], guile_cv_dlsym_adds_uscore=no,
+ guile_cv_dlsym_adds_uscore=no))
+
+ AC_MSG_RESULT($guile_cv_dlsym_adds_uscore)
+ fi
+ fi
+])
+
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
-AM_SANITY_CHECK
-AC_ARG_PROGRAM
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_PROG_MAKE_SET])
+AC_REQUIRE([AC_PROG_MAKE_SET])])
# serial 1
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
fi
+ if test "[$]*" != "X $srcdir/configure conftestfile" \
+ && test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
test "[$]2" = conftestfile
)
then
changequote([,]))])
-# serial 15 AM_PROG_LIBTOOL
+# serial 24 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_RANLIB])
-AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AM_PROG_LD])
-AC_REQUIRE([AM_PROG_NM])
-AC_REQUIRE([AC_PROG_LN_S])
-
+[AC_REQUIRE([AM_ENABLE_SHARED])dnl
+AC_REQUIRE([AM_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_RANLIB])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AM_PROG_LD])dnl
+AC_REQUIRE([AM_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)
+AC_SUBST(LIBTOOL)dnl
-dnl Allow the --disable-shared flag to stop us from building shared libs.
-AC_ARG_ENABLE(shared,
-[ --enable-shared build shared libraries [default=yes]],
-[if test "$enableval" = no; then
- enable_shared=no
-else
- enable_shared=yes
-fi])
-libtool_shared=
-test "$enable_shared" = no && libtool_shared=" --disable-shared"
-
-dnl Allow the --disable-static flag to stop us from building static libs.
-AC_ARG_ENABLE(static,
-[ --enable-static build static libraries [default=yes]],
-[if test "$enableval" = no; then
- enable_static=no
-else
- enable_static=yes
-fi])
-libtool_static=
-test "$enable_static" = no && libtool_static=" --disable-static"
-
-libtool_flags="$libtool_shared$libtool_static"
+# Check for any special flags to pass to ltconfig.
+libtool_flags=
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
-[case "$host" in
+case "$host" in
*-*-irix6*)
- ac_save_CFLAGS="$CFLAGS"
- # -n32 always needs to be added to the linker when using GCC.
- test "$ac_cv_prog_gcc" = yes && CFLAGS="$CFLAGS -n32"
- for f in '-32' '-64' '-cckr' '-n32' '-mips1' '-mips2' '-mips3' '-mips4'; do
- if echo " $CC $CFLAGS " | egrep -e "[ ]$f[ ]" > /dev/null; then
- LD="${LD-ld} $f"
- fi
- done
- CFLAGS="$ac_save_CFLAGS"
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
;;
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
CFLAGS="$CFLAGS -belf"
;;
-esac]
+esac
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
|| AC_MSG_ERROR([libtool configure failed])
])
+# AM_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AM_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AM_ENABLE_SHARED,
+[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT]
+changequote([, ])dnl
+[ --enable-shared=PKGS only build shared libraries if the current package
+ appears as an element in the PKGS list],
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN(AM_DISABLE_SHARED,
+[AM_ENABLE_SHARED(no)])
+
+# AM_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN(AM_DISABLE_STATIC,
+[AM_ENABLE_STATIC(no)])
+
+# AM_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AM_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN(AM_ENABLE_STATIC,
+[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT]
+changequote([, ])dnl
+[ --enable-static=PKGS only build shared libraries if the current package
+ appears as an element in the PKGS list],
+[p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
+])
+
+
# AM_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AM_PROG_LD,
[AC_ARG_WITH(gnu-ld,
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
- /*)
+ /* | [A-Za-z]:\\*)
test -z "$LD" && LD="$ac_prog"
;;
"")
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
[case "$NM" in
-/*)
+/* | [A-Za-z]:\\*)
ac_cv_path_NM="$NM" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in /usr/ucb $PATH /bin; do
- test -z "$ac_dir" && dir=.
+ for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
+ test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/nm; then
# Check to see if the nm accepts a BSD-compat flag.
- if ($ac_dir/nm -B /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -B"
- elif ($ac_dir/nm -p /dev/null 2>&1; exit 0) | grep /dev/null >/dev/null; then
+ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -p"
else
ac_cv_path_NM="$ac_dir/nm"
AC_SUBST(NM)
])
-dnl
-dnl CY_AC_WITH_THREADS determines which thread library the user intends
-dnl to put underneath guile. Pass it the path to find the guile top-level
-dnl source directory. Eg CY_AC_WITH_THREADS(../..) for tcl/unix.
-dnl
+dnl Autoconf macros for configuring the QuickThreads package
-AC_DEFUN([CY_AC_WITH_THREADS],[
-AC_CACHE_CHECK("threads package type",cy_cv_threads_package,[
-AC_CACHE_VAL(cy_cv_threads_cflags,[
-AC_CACHE_VAL(cy_cv_threads_libs,[
-use_threads=no;
-AC_ARG_WITH(threads,[ --with-threads thread interface],
- use_threads=$withval, use_threads=no)
-test -n "$use_threads" || use_threads=qt
-threads_package=unknown
-if test "$use_threads" != no; then
-dnl
-dnl Test for the qt threads package - used for cooperative threads
-dnl This may not necessarily be built yet - so just check for the
-dnl header files.
-dnl
- if test "$use_threads" = yes || test "$use_threads" = qt; then
- # Look for qt in source directory.
- if test -f $srcdir/qt/qt.c; then
- qtsrcdir="`(cd $srcdir; pwd)`/qt"
- threads_package=COOP
- cy_cv_threads_cflags="-I$qtsrcdir -I../qt"
- cy_cv_threads_libs="../qt/libqthreads.a"
- fi
- else
- if test -f $use_threads/qt.c; then
- # FIXME seems as though we should try to use an installed qt here.
- threads_package=COOP
- cy_cv_threads_cflags="-I$use_threads -I../qt"
- cy_cv_threads_libs="../qt/libqthreads.a"
- fi
- fi
- if test "$use_threads" = pthreads; then
- # Look for pthreads in srcdir. See above to understand why
- # we always set threads_package.
- if test -f $srcdir/../../pthreads/pthreads/queue.c \
- || test -f $srcdir/../pthreads/pthreads/queue.c; then
- threads_package=MIT
- cy_cv_threads_cflags="-I$srcdir/../../pthreads/include"
- cy_cv_threads_libs="-L../../pthreads/lib -lpthread"
- fi
- fi
- saved_CPP="$CPPFLAGS"
- saved_LD="$LDFLAGS"
- saved_LIBS="$LIBS"
- if test "$threads_package" = unknown; then
-dnl
-dnl Test for the FSU threads package
+dnl QTHREADS_CONFIGURE configures the QuickThreads package. The QT
+dnl sources should be in $srcdir/qt. If configuration succeeds, this
+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
- CPPFLAGS="-I$use_threads/include"
- LDFLAGS="-L$use_threads/lib"
- LIBS="-lgthreads -lmalloc"
- AC_TRY_LINK([#include <pthread.h>],[
-pthread_equal(NULL,NULL);
-], threads_package=FSU)
- fi
- if test "$threads_package" = unknown; then
+dnl It also sets the following variables, which describe how clients
+dnl can link against libqthreads.a:
+dnl THREAD_PACKAGE --- set to "QT" if configuration succeeds, or
+dnl the empty string if configuration fails.
+dnl THREAD_CPPFLAGS --- set to `-I' flags for thread header files
+dnl THREAD_LIBS_LOCAL --- linker options for use in this source tree
+dnl THREAD_LIBS_INSTALLED --- linker options for use after this package
+dnl is installed
+dnl It would be nice if all thread configuration packages for Guile
+dnl followed the same conventions.
dnl
-dnl Test for the MIT threads package
-dnl
- LIBS="-lpthread"
- AC_TRY_LINK([#include <pthread.h>],[
-pthread_equal(NULL,NULL);
-], threads_package=MIT)
- fi
- if test "$threads_package" = unknown; then
+dnl All of the above variables will be substituted into Makefiles in
+dnl the usual autoconf fashion.
dnl
-dnl Test for the PCthreads package
+dnl We distinguish between THREAD_LIBS_LOCAL and
+dnl THREAD_LIBS_INSTALLED because the thread library might be in
+dnl this tree, and be built using libtool. This means that:
+dnl 1) when building other executables in this tree, one must
+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 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
- LIBS="-lpthreads"
- AC_TRY_LINK([#include <pthread.h>],[
-pthread_equal(NULL,NULL);
-], threads_package=PCthreads)
- fi
-dnl
-dnl Set the appropriate flags!
-dnl
- cy_cv_threads_cflags="$CPPFLAGS $cy_cv_threads_cflags"
- cy_cv_threads_libs="$LDFLAGS $LIBS $cy_cv_threads_libs"
- cy_cv_threads_package=$threads_package
- CPPFLAGS="$saved_CPP"
- LDFLAGS="$saved_LD"
- LIBS="$saved_LIBS"
- if test "$threads_package" = unknown; then
- AC_MSG_ERROR("cannot find thread library installation")
+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 friends really ought not to be even mentioned in the top-level
+dnl configure script, but here they are.
+
+AC_DEFUN([QTHREADS_CONFIGURE],[
+ AC_REQUIRE([AC_PROG_LN_S])
+
+ AC_MSG_CHECKING(QuickThreads configuration)
+ # How can we refer to the qt source directory from within the qt build
+ # directory? For headers, we can rely on the fact that the qt src
+ # directory appears in the #include path.
+ qtsrcdir="`(cd $srcdir; pwd)`/qt"
+
+ changequote(,)dnl We use [ and ] in a regexp in the case
+
+ THREAD_PACKAGE=QT
+ case "$host" in
+ i[3456]86-*-*)
+ port_name=i386
+ qtmd_h=md/i386.h
+ qtmds_s=md/i386.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=
+ ;;
+ mips-sgi-irix[56]*)
+ port_name=irix
+ qtmd_h=md/mips.h
+ qtmds_s=md/mips-irix5.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/mips_b.s
+ ;;
+ mips-*-*)
+ port_name=mips
+ qtmd_h=md/mips.h
+ qtmds_s=md/mips.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/mips_b.s
+ ;;
+ sparc-*-sunos*)
+ port_name=sparc-sunos
+ qtmd_h=md/sparc.h
+ qtmds_s=md/_sparc.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/_sparc_b.s
+ ;;
+ sparc-*-*)
+ port_name=sparc
+ qtmd_h=md/sparc.h
+ qtmds_s=md/sparc.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/sparc_b.s
+ ;;
+ alpha-*-*)
+ port_name=alpha
+ qtmd_h=md/axp.h
+ qtmds_s=md/axp.s
+ qtmdc_c=md/null.c
+ qtdmdb_s=md/axp_b.s
+ ;;
+ *)
+ echo "Unknown configuration; threads package disabled"
+ THREAD_PACKAGE=""
+ ;;
+ esac
+ changequote([, ])
+
+ # Did configuration succeed?
+ if test -n "$THREAD_PACKAGE"; then
+ AC_MSG_RESULT($port_name)
+ QTHREAD_LTLIBS=libqthreads.la
+ THREAD_CPPFLAGS="-I$qtsrcdir -I../qt"
+ THREAD_LIBS_LOCAL="../qt/libqthreads.la"
+ THREAD_LIBS_INSTALLED="-lqthreads"
+ else
+ AC_MSG_RESULT(none; disabled)
fi
-fi
-])
-])
-],
-dnl
-dnl Set flags according to what is cached.
-dnl
-CPPFLAGS="$cy_cv_threads_cflags"
-LIBS="$cy_cv_threads_libs"
-)
+
+ AC_SUBST(QTHREAD_LTLIBS)
+ AC_SUBST(qtmd_h)
+ AC_SUBST(qtmds_s)
+ AC_SUBST(qtmdc_c)
+ AC_SUBST(qtdmdb_s)
+ AC_SUBST(THREAD_PACKAGE)
+ AC_SUBST(THREAD_CPPFLAGS)
+ AC_SUBST(THREAD_LIBS_LOCAL)
+ AC_SUBST(THREAD_LIBS_INSTALLED)
])