mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-04 22:40:25 +02:00
* configure.in: When sys/un.h exists, define HAVE_UNIX_DOMAIN_SOCKETS to indicate that Unix domain sockets will work. Check for socketpair, getgroups, setwent, pause, and tzset (cygwin currently lacks these them). Check for sethostent endhostent getnetent setnetent endnetent getprotoent endprotoent getservent endservent getnetbyaddr getnetbyname inet_lnaof inet_makeaddr inet_netof (cygwin currently lacks them). In the case of cygwin, temporarily prefix these functions with "cygwin32_", the way that netdb.h does. Don't define HAVE_REGCOMP unless both regcomp and regex.h are available (cygwin b18 came distributed without a working regex.h file). * acconfig.h (HAVE_UNIX_DOMAIN_SOCKETS): Add this. * configure: Regenerated.
401 lines
11 KiB
Text
401 lines
11 KiB
Text
dnl Process this file with autoconf to produce configure.
|
|
AC_INIT(Makefile.in)
|
|
. $srcdir/GUILE-VERSION
|
|
AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
|
|
AM_MAINTAINER_MODE
|
|
AM_CONFIG_HEADER(libguile/scmconfig.h)
|
|
|
|
#--------------------------------------------------------------------
|
|
#
|
|
# User options
|
|
#
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_ARG_ENABLE(debug,
|
|
[ --disable-debug Don't include debugging support])
|
|
if test "$enableval" != n && test "$enableval" != no; then
|
|
AC_DEFINE(DEBUG_EXTENSIONS)
|
|
AC_DEFINE(READER_EXTENSIONS)
|
|
LIBOBJS="backtrace.o stacks.o debug.o srcprop.o $LIBOBJS"
|
|
fi
|
|
|
|
AC_ARG_ENABLE(dynamic-linking,
|
|
[ --enable-dynamic-linking Include support for dynamic linking],,
|
|
enable_dynamic_linking=yes)
|
|
|
|
AC_ARG_ENABLE(guile-debug,
|
|
[ --enable-guile-debug Include internal debugging functions])
|
|
if test "$enableval" = y || test "$enableval" = yes; then
|
|
AC_DEFINE(GUILE_DEBUG)
|
|
fi
|
|
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AM_PROG_LIBTOOL
|
|
|
|
AC_AIX
|
|
AC_ISC_POSIX
|
|
AC_MINIX
|
|
|
|
AC_C_CONST
|
|
|
|
AC_HEADER_STDC
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_TIME
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(libc.h limits.h malloc.h memory.h string.h regex.h sys/ioctl.h sys/select.h sys/time.h sys/timeb.h sys/times.h sys/types.h sys/utime.h time.h unistd.h utime.h)
|
|
GUILE_HEADER_LIBC_WITH_UNISTD
|
|
|
|
AC_TYPE_GETGROUPS
|
|
AC_TYPE_SIGNAL
|
|
AC_TYPE_MODE_T
|
|
|
|
AC_CHECK_LIB(rx, main)
|
|
|
|
# Checks for dynamic linking
|
|
|
|
AC_CHECK_LIB(m, main)
|
|
AC_CHECK_FUNC(gethostbyname)
|
|
if test $ac_cv_func_gethostbyname = no; then
|
|
AC_CHECK_LIB(nsl, gethostbyname)
|
|
fi
|
|
AC_CHECK_FUNC(connect)
|
|
if test $ac_cv_func_connect = no; then
|
|
AC_CHECK_LIB(socket, connect)
|
|
fi
|
|
|
|
if test "$enable_dynamic_linking" = "yes"; then
|
|
|
|
AC_CHECK_LIB(dl,dlopen)
|
|
if test "$ac_cv_lib_dl_dlopen" = "yes"; then
|
|
AC_DEFINE(DYNAMIC_LINKING)
|
|
else
|
|
AC_CHECK_LIB(dld,dld_link)
|
|
if test "$ac_cv_lib_dld_dld_link" = "yes"; then
|
|
AC_DEFINE(DYNAMIC_LINKING)
|
|
else
|
|
AC_CHECK_FUNCS(shl_load)
|
|
if test "$ac_cv_func_shl_load" = "yes"; then
|
|
AC_DEFINE(DYNAMIC_LINKING)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
AC_CHECK_FUNCS(ctermid ftime getcwd geteuid gethostent gettimeofday lstat mkdir mknod nice readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid)
|
|
|
|
dnl <GNU-WIN32 hacks>
|
|
|
|
AC_CHECK_HEADER(sys/un.h, have_sys_un_h=1)
|
|
if test -n "$have_sys_un_h" ; then
|
|
AC_DEFINE(HAVE_UNIX_DOMAIN_SOCKETS)
|
|
fi
|
|
|
|
AC_CHECK_FUNCS(socketpair getgroups setpwent pause tzset)
|
|
|
|
cp confdefs.h confdefs.h.bak
|
|
for func in sethostent endhostent getnetent setnetent endnetent getprotoent endprotoent getservent endservent getnetbyaddr getnetbyname inet_lnaof inet_makeaddr inet_netof ; do
|
|
cp confdefs.h.bak confdefs.h
|
|
cat >> confdefs.h << EOF
|
|
#ifdef __CYGWIN32__
|
|
#define $func cygwin32_$func
|
|
#endif
|
|
EOF
|
|
AC_CHECK_FUNC($func)
|
|
done
|
|
cp confdefs.h.bak confdefs.h
|
|
|
|
dnl </GNU-WIN32 hacks>
|
|
|
|
AC_CACHE_CHECK([for restartable system calls], scm_cv_restarts,
|
|
if test $ac_cv_func_sigaction = yes; then
|
|
[AC_TRY_COMPILE([#include <signal.h>],
|
|
[int a = SA_RESTART],
|
|
scm_cv_restarts=yes,
|
|
scm_cv_restarts=no)]
|
|
else
|
|
scm_cv_restarts=no
|
|
fi)
|
|
if test $scm_cv_restarts = yes; then
|
|
AC_DEFINE(HAVE_RESTARTS)
|
|
fi
|
|
|
|
if test "$ac_cv_header_regex_h" = yes; then
|
|
AC_CHECK_FUNCS(regcomp, [LIBOBJS="regex-posix.o $LIBOBJS"])
|
|
fi
|
|
|
|
AC_REPLACE_FUNCS(inet_aton putenv strerror)
|
|
|
|
AC_FUNC_ALLOCA
|
|
|
|
AC_STRUCT_ST_RDEV
|
|
AC_STRUCT_ST_BLKSIZE
|
|
|
|
# We could use AC_STRUCT_ST_BLOCKS here, but that adds fileblocks.o to
|
|
# LIBOBJS, which we don't need. This seems more direct.
|
|
AC_CACHE_CHECK([for st_blocks in struct stat], ac_cv_struct_st_blocks,
|
|
[AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/stat.h>], [struct stat s; s.st_blocks;],
|
|
ac_cv_struct_st_blocks=yes, ac_cv_struct_st_blocks=no)])
|
|
if test $ac_cv_struct_st_blocks = yes; then
|
|
AC_DEFINE(HAVE_ST_BLOCKS)
|
|
fi
|
|
|
|
AC_STRUCT_TIMEZONE
|
|
GUILE_STRUCT_UTIMBUF
|
|
|
|
#--------------------------------------------------------------------
|
|
#
|
|
# Which way does the stack grow?
|
|
#
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_TRY_RUN(aux (l) unsigned long l;
|
|
{ int x; exit (l >= ((unsigned long)&x)); }
|
|
main () { int q; aux((unsigned long)&q); },
|
|
AC_DEFINE(SCM_STACK_GROWS_UP),,AC_MSG_WARN(Guessing that stack grows down -- see scmconfig.h.in))
|
|
|
|
|
|
AC_TRY_RUN(main () { exit (sizeof(float) != sizeof(long)); },
|
|
AC_DEFINE(SCM_SINGLES),,AC_DEFINE(SCM_SINGLES)
|
|
AC_MSG_WARN(Guessing that sizeof(long) == sizeof(float) -- see scmconfig.h.in))
|
|
|
|
AC_MSG_CHECKING(for struct linger)
|
|
AC_CACHE_VAL(scm_cv_struct_linger,
|
|
AC_TRY_COMPILE([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>],
|
|
[struct linger lgr; lgr.l_linger = 100],
|
|
scm_cv_struct_linger="yes",
|
|
scm_cv_struct_linger="no"))
|
|
AC_MSG_RESULT($scm_cv_struct_linger)
|
|
if test $scm_cv_struct_linger = yes; then
|
|
AC_DEFINE(HAVE_STRUCT_LINGER)
|
|
fi
|
|
|
|
#--------------------------------------------------------------------
|
|
#
|
|
# How can you violate a stdio abstraction by setting a stream's fd?
|
|
#
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_MSG_CHECKING(how to set a stream file descriptor)
|
|
AC_CACHE_VAL(scm_cv_fd_setter,
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[stdout->_file = 1],
|
|
scm_cv_fd_setter="_file",
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[stdout->_fileno = 1],
|
|
scm_cv_fd_setter="_fileno",
|
|
scm_cv_fd_setter="")))
|
|
|
|
if test "$scm_cv_fd_setter"; then
|
|
AC_MSG_RESULT($scm_cv_fd_setter)
|
|
AC_DEFINE_UNQUOTED(FD_SETTER, $scm_cv_fd_setter)
|
|
else
|
|
AC_MSG_RESULT(we couldn't do it!)
|
|
fi
|
|
|
|
#--------------------------------------------------------------------
|
|
# How to find out whether a FILE structure contains buffered data.
|
|
# From Tk we have the following list:
|
|
# _cnt: Most UNIX systems
|
|
# __cnt: HPUX
|
|
# _r: BSD
|
|
# readCount: Sprite
|
|
# Or, in GNU libc there are two fields, _gptr and _egptr, which
|
|
# have to be compared.
|
|
# These can also be known as _IO_read_ptr and _IO_read_end.
|
|
#--------------------------------------------------------------------
|
|
|
|
AC_MSG_CHECKING(how to get buffer char count from FILE structure)
|
|
AC_CACHE_VAL(scm_cv_struct_file_count,
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[FILE *f = stdin; f->_cnt = 0],
|
|
scm_cv_struct_file_count="_cnt",
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[FILE *f = stdin; f->_r = 0],
|
|
scm_cv_struct_file_count="_r",
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[FILE *f = stdin; f->readCount = 0],
|
|
scm_cv_struct_file_count="readCount",
|
|
scm_cv_struct_file_count=""))))
|
|
if test "$scm_cv_struct_file_count"; then
|
|
AC_MSG_RESULT($scm_cv_struct_file_count)
|
|
AC_DEFINE_UNQUOTED(FILE_CNT_FIELD, $scm_cv_struct_file_count)
|
|
else
|
|
AC_CACHE_VAL(scm_cv_struct_file_gptr,
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[FILE *f = stdin; f->_gptr = f->egptr;],
|
|
scm_cv_struct_file_gptr=1,
|
|
scm_cv_struct_file_gptr=""))
|
|
if test "$scm_cv_struct_gptr"; then
|
|
AC_MSG_RESULT(gptr)
|
|
AC_DEFINE_UNQUOTED(FILE_CNT_GPTR, $scm_cv_struct_file_gptr)
|
|
else
|
|
AC_CACHE_VAL(scm_cv_struct_file_readptr,
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[FILE *f = stdin; f->_IO_read_ptr = f->_IO_read_end;],
|
|
scm_cv_struct_file_readptr=1))
|
|
if test "$scm_cv_struct_file_readptr"; then
|
|
AC_MSG_RESULT(read_ptr)
|
|
AC_DEFINE_UNQUOTED(FILE_CNT_READPTR, $scm_cv_struct_file_readptr)
|
|
else
|
|
AC_MSG_RESULT(we couldn't do it!)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
#--------------------------------------------------------------------
|
|
#
|
|
# Flags for thread support
|
|
#
|
|
#--------------------------------------------------------------------
|
|
|
|
CY_AC_WITH_THREADS
|
|
CFLAGS="$CFLAGS $cy_cv_threads_cflags"
|
|
THREAD_LIBS="$cy_cv_threads_libs"
|
|
AC_SUBST(THREAD_LIBS)
|
|
|
|
dnl
|
|
dnl Set the appropriate flags!
|
|
dnl
|
|
if test "$cy_cv_threads_package" = FSU; then
|
|
AC_DEFINE(USE_FSU_PTHREADS, 1)
|
|
else if test "$cy_cv_threads_package" = COOP; then
|
|
AC_DEFINE(USE_COOP_THREADS, 1)
|
|
else if test "$cy_cv_threads_package" = MIT; then
|
|
AC_DEFINE(USE_MIT_PTHREADS, 1)
|
|
else if test "$cy_cv_threads_package" = PCthreads; then
|
|
AC_DEFINE(USE_PCTHREADS_PTHREADS, 1)
|
|
else if test "$cy_cv_threads_package" = unknown; then
|
|
AC_MSG_ERROR("cannot find threads installation")
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test "$cy_cv_threads_package" != ""; then
|
|
AC_DEFINE(USE_THREADS)
|
|
LIBOBJS="$LIBOBJS threads.o"
|
|
fi
|
|
|
|
## If we're using GCC, ask for aggressive warnings.
|
|
case "$GCC" in
|
|
yes ) CFLAGS="$CFLAGS -Wall -Wpointer-arith" ;;
|
|
esac
|
|
|
|
AC_PROG_AWK
|
|
|
|
## If we're creating a shared library (using libtool!), then we'll
|
|
## need to generate a list of .lo files corresponding to the .o files
|
|
## given in LIBOBJS. We'll call it LIBLOBJS.
|
|
LIBLOBJS="`echo ${LIBOBJS} | sed 's/\.o/.lo/g'`"
|
|
|
|
AC_SUBST(GUILE_MAJOR_VERSION)
|
|
AC_SUBST(GUILE_MINOR_VERSION)
|
|
AC_SUBST(GUILE_VERSION)
|
|
|
|
dnl timestamping the interpreter and scheme libraries:
|
|
dnl
|
|
dnl Help us notice when we're running one version of the Guile
|
|
dnl interpreter against a different version of the ice-9 Scheme code.
|
|
dnl This will definitely detect version skew due to differing
|
|
dnl snapshots and releases, but may not catch skew for the developers.
|
|
dnl Hopefully it will not detect skew when there is none; if that
|
|
dnl happens, the warnings will be useless, and we should remove this.
|
|
GUILE_STAMP="`date`"
|
|
AC_SUBST(GUILE_STAMP)
|
|
|
|
AC_SUBST(AWK)
|
|
AC_SUBST(LIBLOBJS)
|
|
|
|
|
|
dnl ======================================================================
|
|
dnl configuration for the Qt package
|
|
dnl ======================================================================
|
|
|
|
threads_enabled=false
|
|
if test "$cy_cv_threads_package" = COOP; then
|
|
threads_enabled=true
|
|
fi
|
|
|
|
# Determine the host we are working on
|
|
AC_CANONICAL_HOST
|
|
|
|
# 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
|
|
case "$host" in
|
|
i[3456]86-*-*)
|
|
qtmds_s=$qtsrcdir/md/i386.s
|
|
qtmd_h=md/i386.h
|
|
qtmdc_c=$qtsrcdir/md/null.c
|
|
;;
|
|
mips-sgi-irix5*)
|
|
qtmds_s=$qtsrcdir/md/mips-irix5.s
|
|
qtmd_h=md/mips.h
|
|
qtmdc_c=$qtsrcdir/md/null.c
|
|
qtdmdb_s=$qtsrcdir/md/mips_b.s
|
|
;;
|
|
mips-*-*)
|
|
qtmds_s=$qtsrcdir/md/mips.s
|
|
qtmd_h=md/mips.h
|
|
qtmdc_c=$qtsrcdir/md/null.c
|
|
qtdmdb_s=$qtsrcdir/md/mips_b.s
|
|
;;
|
|
sparc-*-sunos*)
|
|
qtmd_h=md/sparc.h
|
|
qtmdc_c=$qtsrcdir/md/null.c
|
|
qtmds_s=$qtsrcdir/md/_sparc.s
|
|
qtdmdb_s=$qtsrcdir/md/_sparc_b.s
|
|
;;
|
|
sparc-*-*)
|
|
qtmd_h=md/sparc.h
|
|
qtmdc_c=$qtsrcdir/md/null.c
|
|
qtmds_s=$qtsrcdir/md/sparc.s
|
|
qtdmdb_s=$qtsrcdir/md/sparc_b.s
|
|
;;
|
|
*)
|
|
echo "Unknown configuration; threads package disabled"
|
|
threads_enabled=false
|
|
;;
|
|
esac
|
|
changequote([, ])
|
|
|
|
|
|
if $threads_enabled; then
|
|
target_libs=libqt.a
|
|
else
|
|
target_libs=
|
|
fi
|
|
|
|
# Give the Makefile the names of the object files that will be
|
|
# generated by compiling $qtmdc_c and $qtmds_s.
|
|
qtmdc_o="`echo ${qtmdc_c} | sed -e 's:^.*/::' | sed -e 's:\.c$:\.o:'`"
|
|
qtmds_o="`echo ${qtmds_s} | sed -e 's:^.*/::' | sed -e 's:\.s$:\.o:'`"
|
|
|
|
AC_SUBST(target_libs)
|
|
AC_SUBST(qtmd_h)
|
|
AC_SUBST(qtmdc_c)
|
|
AC_SUBST(qtmdc_o)
|
|
AC_SUBST(qtmds_s)
|
|
AC_SUBST(qtmds_o)
|
|
AC_SUBST(qtmdb_s)
|
|
|
|
AC_OUTPUT([Makefile libguile/Makefile libguile/guile-snarf ice-9/Makefile ice-9/version.scm qt/Makefile qt/qt.h qt/md/Makefile qt/time/Makefile], [chmod +x libguile/guile-snarf])
|
|
|
|
dnl Local Variables:
|
|
dnl comment-start: "dnl "
|
|
dnl comment-end: ""
|
|
dnl comment-start-skip: "\\bdnl\\b\\s *"
|
|
dnl End:
|