1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-06 15:40:29 +02:00
guile/libguile/configure.in
Gary Houston f93ddd3985 * configure.in: add tests for figuring out whether buffered data
is available in a FILE structure, which is needed by char-ready.

* acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
FILE_CNT_READPTR.

* simpos.c (scm_getenv): renamed from scm_sys_getenv.  Throw
exceptions using misc_error instead of syserror.  It seems a bit
odd to throw an exception if a string can't be found in the
environment, but it's consistent with open-file, stat etc.
(simpos.h): remove sys_ from getenv.

* posix.c (scm_putenv): renamed from scm_sys_putenv.  If an error
occurs, throw an error instead of returning errno.  Return value
is now unspecified.
(numerous in posix.c and posix.h): removed superfluous sys_ from names.
1996-10-28 09:44:07 +00:00

219 lines
6.3 KiB
Text

AC_INIT(eval.c)
AC_CONFIG_HEADER(scmconfig.h)
. $srcdir/../GUILE-VERSION
#--------------------------------------------------------------------
#
# 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
#--------------------------------------------------------------------
test -z "$CFLAGS" && CFLAGS=-g
test -z "$LDFLAGS" && LDFLAGS=-g
AC_PROG_CC
AC_PROG_CPP
AC_PROG_RANLIB
AC_AIX
AC_ISC_POSIX
AC_MINIX
builtin(sinclude, ../aclocal.m4)
CY_AC_WITH_THREADS
CFLAGS="$CPPFLAGS $CFLAGS"
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 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)
AC_TYPE_GETGROUPS
AC_TYPE_SIGNAL
AC_TYPE_MODE_T
AC_CHECK_FUNCS(ctermid ftime getcwd geteuid lstat mkdir mknod nice putenv readlink rename rmdir select setegid seteuid setlocale setpgid setsid strftime strptime symlink sync tcgetpgrp tcsetpgrp times uname waitpid)
AC_REPLACE_FUNCS(inet_aton strerror)
AC_STRUCT_ST_RDEV
AC_STRUCT_ST_BLKSIZE
AC_STRUCT_ST_BLOCKS
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/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?
#
#--------------------------------------------------------------------
FD_SETTER=""
if test "x$FD_SETTER" = x; then
AC_TRY_COMPILE(#include <stdio.h>
, stdout->_file = 1,
FD_SETTER="((F)->_file = (D))")
fi
if test "x$FD_SETTER" = x; then
AC_TRY_COMPILE(#include <stdio.h>
, stdout->_fileno,
FD_SETTER="((F)->_fileno = (D))")
fi
dnl
dnl Add FD_SETTER tests for other systems here. Your test should
dnl try a particular style of assigning to the descriptor
dnl field(s) of a FILE* and define FD_SETTER accordingly.
dnl
dnl The value of FD_SETTER is used as a macro body, as in:
dnl
dnl #define SET_FILE_FD_FIELD(F,D) @FD_SETTER@
dnl
dnl F is a FILE* and D a descriptor (int).
dnl
test "x$FD_SETTER" != x && AC_DEFINE(HAVE_FD_SETTER)
#--------------------------------------------------------------------
# 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)
fi
fi
fi
#--------------------------------------------------------------------
#
# Flags for thread support
#
#--------------------------------------------------------------------
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)
fi
## If we're using GCC, ask for aggressive warnings.
case "$GCC" in
yes ) CFLAGS="$CFLAGS -Wall -Wpointer-arith" ;;
esac
AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, "$GUILE_MAJOR_VERSION")
AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, "$GUILE_MINOR_VERSION")
AC_DEFINE_UNQUOTED(GUILE_VERSION, "$GUILE_VERSION")
AC_SUBST(CFLAGS)
AC_SUBST(LDFLAGS)
AC_SUBST(LIBOBJS)
AC_SUBST(FD_SETTER)
AC_SUBST(XINCLUDES)
AC_SUBST(GUILE_MAJOR_VERSION)
AC_SUBST(GUILE_MINOR_VERSION)
AC_SUBST(GUILE_VERSION)
AC_OUTPUT(Makefile fd.h)
dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
dnl End: