1999-09-14 08:45:02 -04:00
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
dnl
|
|
|
|
dnl We might want AC_WORDS_BIGENDIAN in the future.
|
|
|
|
dnl We might want AC_CHAR_UNSIGNED in the future.
|
|
|
|
dnl
|
|
|
|
dnl The -cckr (K&R) flag is for the IRIX C compiler. If this is left
|
|
|
|
dnl out, scheme48vm.c breaks because the rather pedantic SGI compiler
|
|
|
|
dnl decides that a char is not the same thing as an unsigned char.
|
|
|
|
dnl - Bryan O'Sullivan 3/94
|
|
|
|
dnl Note, this test didn't work correctly on Sun's which take -cckr as a
|
|
|
|
dnl synonym for -c. (HCC)
|
1999-09-14 21:06:21 -04:00
|
|
|
|
|
|
|
dnl JMG: hack hack hack
|
1999-10-10 13:34:09 -04:00
|
|
|
dnl AR=${AR-"ar cq"}
|
1999-09-14 21:06:21 -04:00
|
|
|
|
|
|
|
|
1999-09-14 08:45:02 -04:00
|
|
|
define(S48_CFLAG_CKR, [dnl
|
|
|
|
if test "z$GCC" = z; then
|
|
|
|
AC_MSG_CHECKING([-cckr])
|
|
|
|
oldCFLAGS="$CFLAGS"
|
|
|
|
CFLAGS="$CFLAGS -cckr"
|
|
|
|
AC_TRY_RUN([int main() { return 0;}],
|
|
|
|
[AC_MSG_RESULT(yes)],
|
|
|
|
[AC_MSG_RESULT(no)
|
|
|
|
CFLAGS="$oldCFLAGS"],
|
|
|
|
[AC_MSG_RESULT(no)
|
|
|
|
CFLAGS="$oldCFLAGS"])
|
|
|
|
fi
|
|
|
|
])dnl
|
|
|
|
dnl
|
|
|
|
define(S48_POSIX_LIBC, [dnl
|
|
|
|
echo checking for RISC/OS POSIX library lossage
|
|
|
|
if test -f /usr/posix/usr/lib/libc.a; then
|
|
|
|
LIBS="${LIBS} /usr/posix/usr/lib/libc.a"
|
|
|
|
fi
|
|
|
|
])dnl
|
|
|
|
dnl
|
|
|
|
dnl Run AC_PROG_CC, but don't accept it's changes to CFLAGS.
|
|
|
|
dnl For some insane reason, it sets CFLAGS to either `-O' or `-g -O' for gcc.
|
|
|
|
dnl I don't want the silly -g (because if you are using nlist, you can't strip
|
|
|
|
dnl the binary), I want -O2 for gcc and -O for other C compilers.
|
|
|
|
define(S48_PROG_CC, [dnl
|
|
|
|
oldCFLAGS="$CFLAGS"
|
|
|
|
AC_PROG_CC
|
|
|
|
if test "z$oldCFLAGS" = z; then
|
|
|
|
if test "z$GCC" = z; then
|
|
|
|
CFLAGS='-O'
|
|
|
|
else
|
|
|
|
CFLAGS='-O2'
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
])dnl
|
|
|
|
dnl
|
|
|
|
dnl Linux/ELF systems need the -rdynamic flag when linking so that
|
|
|
|
dnl dlsym() can find symbols in the executable.
|
|
|
|
dnl Note, on some Sun's, you can link with -rdynamic but the resulting
|
|
|
|
dnl a.out always core dumps.
|
|
|
|
define(S48_RDYNAMIC, [dnl
|
|
|
|
AC_MSG_CHECKING([link with -rdynamic])
|
|
|
|
AC_TRY_COMPILE([],
|
|
|
|
[#if defined(__linux__) && defined(__ELF__)
|
|
|
|
this must not compile
|
|
|
|
#endif],
|
|
|
|
[AC_MSG_RESULT(no)],
|
|
|
|
[AC_MSG_RESULT(yes)
|
|
|
|
LDFLAGS="$LDFLAGS -rdynamic"])
|
|
|
|
])dnl
|
|
|
|
dnl
|
|
|
|
define(S48_USCORE, [dnl
|
|
|
|
AC_MSG_CHECKING([underscore before symbols])
|
|
|
|
echo 'main() { return 0; } fnord() {}' >conftest.c
|
|
|
|
if ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c ${LIBS} &&
|
|
|
|
nm a.out | grep _fnord >/dev/null; then
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
AC_DEFINE(USCORE)
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT([no])
|
|
|
|
fi
|
|
|
|
rm -f conftest.c a.out
|
|
|
|
])dnl
|
|
|
|
dnl
|
1999-10-08 14:41:05 -04:00
|
|
|
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
AC_DEFUN(SCSH_TZNAME,[
|
|
|
|
AC_MSG_CHECKING(for tzname)
|
|
|
|
AC_CACHE_VAL(scsh_cv_tzname,[
|
|
|
|
AC_TRY_COMPILE([#include <time.h>],
|
|
|
|
[return (int) tzname;],
|
|
|
|
scsh_cv_tzname=yes,
|
|
|
|
scsh_cv_tzname=no)])
|
|
|
|
AC_MSG_RESULT($scsh_cv_tzname)
|
|
|
|
if test $scsh_cv_tzname = yes; then
|
|
|
|
AC_DEFINE(HAVE_TZNAME)
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
AC_DEFUN(SCSH_GMTOFF,[
|
|
|
|
AC_MSG_CHECKING(for gmtoff)
|
|
|
|
AC_CACHE_VAL(scsh_cv_gmtoff,[
|
|
|
|
AC_TRY_COMPILE([#include <time.h>],
|
|
|
|
[struct tm time;
|
|
|
|
return time.tm_gmtoff;],
|
|
|
|
scsh_cv_gmtoff=yes,
|
|
|
|
scsh_cv_gmtoff=no)])
|
|
|
|
AC_MSG_RESULT($scsh_cv_gmtoff)
|
|
|
|
if test $scsh_cv_gmtoff = yes; then
|
|
|
|
AC_DEFINE(HAVE_GMTOFF)
|
|
|
|
fi
|
|
|
|
])
|
1999-10-10 13:34:09 -04:00
|
|
|
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
AC_DEFUN(SCSH_ELF, [
|
|
|
|
AC_MSG_CHECKING(for ELF)
|
|
|
|
AC_CACHE_VAL(scsh_cv_elf,[
|
|
|
|
touch conftest.c
|
|
|
|
if ${CC} -v -o a.out conftest.c 2>&1 | grep -q __ELF__ ; then
|
|
|
|
scsh_cv_elf=yes
|
|
|
|
else
|
|
|
|
scsh_cv_elf=no
|
|
|
|
fi])
|
|
|
|
AC_MSG_RESULT($scsh_cv_elf)
|
|
|
|
if test $scsh_cv_elf = yes; then
|
|
|
|
LDFLAGS=-rdynamic
|
|
|
|
fi
|
|
|
|
rm -f conftest.c a.out
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
AC_DEFUN(SCSH_LINUX_STATIC_DEBUG, [
|
|
|
|
case "$host" in
|
|
|
|
*-*-linux* )
|
|
|
|
AC_MSG_CHECKING(for broken Linux that needs -static with -g)
|
|
|
|
AC_CACHE_VAL(scsh_cv_linux_static_debug,[
|
|
|
|
AC_TRY_LINK([],
|
|
|
|
[],
|
|
|
|
scsh_cv_linux_static_debug=no,
|
|
|
|
scsh_cv_linux_static_debug=yes)])
|
|
|
|
AC_MSG_RESULT($scsh_cv_linux_static_debug)
|
|
|
|
if test $scsh_cv_linux_static_debug = yes; then
|
|
|
|
LDFLAGS="-static ${LDFLAGS}"
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
AC_DEFUN(SCSH_CONST_SYS_ERRLIST,[
|
|
|
|
AC_MSG_CHECKING(for const sys_errlist)
|
|
|
|
AC_CACHE_VAL(scsh_cv_const_sys_errlist,[
|
|
|
|
AC_TRY_COMPILE([#include <errno.h>
|
|
|
|
#include <unistd.h>],
|
|
|
|
[const extern char *sys_errlist[];],
|
|
|
|
scsh_cv_const_sys_errlist=yes,
|
|
|
|
scsh_cv_const_sys_errlist=no)])
|
|
|
|
AC_MSG_RESULT($scsh_cv_const_sys_errlist)
|
|
|
|
if test $scsh_cv_const_sys_errlist = yes; then
|
|
|
|
AC_DEFINE(HAVE_CONST_SYS_ERRLIST)
|
|
|
|
fi
|
|
|
|
])
|
1999-10-08 14:41:05 -04:00
|
|
|
|
|
|
|
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
1999-09-14 08:45:02 -04:00
|
|
|
AC_INIT(c/scheme48vm.c)
|
|
|
|
AC_CONFIG_HEADER(c/sysdep.h)
|
1999-10-10 13:34:09 -04:00
|
|
|
AC_CANONICAL_HOST
|
1999-09-14 08:45:02 -04:00
|
|
|
S48_PROG_CC
|
|
|
|
AC_ISC_POSIX
|
1999-10-10 13:34:09 -04:00
|
|
|
SCSH_LINUX_STATIC_DEBUG
|
1999-09-14 08:45:02 -04:00
|
|
|
dnl set the cross-compile flag before we try anything.
|
|
|
|
AC_TRY_RUN([int main() { return 0;}], [], [], [true])
|
|
|
|
S48_CFLAG_CKR
|
|
|
|
AC_PROG_INSTALL
|
1999-10-10 13:34:09 -04:00
|
|
|
AC_PROG_RANLIB
|
|
|
|
AC_C_CONST
|
|
|
|
|
|
|
|
AC_C_BIGENDIAN
|
|
|
|
if test $ac_cv_c_bigendian = no ; then
|
|
|
|
ENDIAN=little
|
|
|
|
else
|
|
|
|
ENDIAN=big
|
|
|
|
fi
|
|
|
|
|
|
|
|
AR=${AR-"ar cq"}
|
|
|
|
TMPDIR=${TMPDIR-"/usr/tmp"}
|
|
|
|
case "$host" in
|
2000-10-19 04:24:02 -04:00
|
|
|
## IBM AIX
|
|
|
|
rs6000-ibm-aix*|powerpc-ibm-aix* )
|
|
|
|
dir=aix
|
|
|
|
LDFLAGS="-O"
|
|
|
|
if test ${CC} = gcc; then
|
|
|
|
LDFLAGS_AIX="-Xlinker -bexport:exportlist.aix"
|
|
|
|
else
|
|
|
|
LDFLAGS_AIX="-bexport:exportlist.aix"
|
|
|
|
fi
|
|
|
|
CFLAGS="-O"
|
|
|
|
AIX_P="exportlist.aix"
|
|
|
|
;;
|
|
|
|
|
1999-10-10 13:34:09 -04:00
|
|
|
## Linux
|
|
|
|
*-*-linux* )
|
|
|
|
dir=linux
|
|
|
|
# gross, but needed for some older a.out systems for 0.4.x
|
|
|
|
LIBS=-lc
|
|
|
|
SCSH_ELF
|
|
|
|
;;
|
|
|
|
|
|
|
|
## NetBSD and FreeBSD ( and maybe 386BSD also)
|
|
|
|
*-*-*bsd* )
|
|
|
|
dir=bsd
|
|
|
|
SCSH_ELF
|
|
|
|
;;
|
|
|
|
## Solaris - Sparc and i386
|
|
|
|
*-*-solaris* )
|
|
|
|
dir=solaris
|
|
|
|
AC_DEFINE(HAVE_NLIST)
|
|
|
|
;;
|
|
|
|
|
|
|
|
* )
|
|
|
|
dir=generic
|
|
|
|
echo "WARNING: "
|
|
|
|
echo "WARNING: Using generic configuration."
|
|
|
|
echo "WARNING: See doc/install.txt for more information."
|
|
|
|
echo "WARNING: "
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
rm -f $srcdir/scsh/machine
|
|
|
|
ln -s $srcdir/$dir $srcdir/scsh/machine
|
|
|
|
|
|
|
|
|
1999-09-14 08:45:02 -04:00
|
|
|
AC_CHECK_LIB(m, main)
|
|
|
|
AC_CHECK_LIB(dl, main)
|
|
|
|
AC_CHECK_LIB(mld, main)
|
|
|
|
AC_CHECK_LIB(nsl, main)
|
|
|
|
AC_CHECK_LIB(gen, main)
|
|
|
|
AC_CHECK_LIB(socket, main)
|
|
|
|
AC_CHECK_LIB(sun, getpwnam)
|
1999-11-12 10:31:16 -05:00
|
|
|
AC_CHECK_LIB(c, crypt, [true], AC_CHECK_LIB(crypt, crypt))
|
1999-09-14 08:45:02 -04:00
|
|
|
dnl Solaris 2.3 seems to need -lelf for nlist(). (tnx Bryan O'Sullivan)
|
|
|
|
AC_CHECK_LIB(elf, main)
|
|
|
|
S48_POSIX_LIBC
|
|
|
|
AC_CONST
|
|
|
|
AC_RETSIGTYPE
|
1999-10-10 13:34:09 -04:00
|
|
|
AC_CHECK_HEADERS(libgen.h sys/timeb.h posix/time.h sys/select.h nlist.h)
|
|
|
|
AC_CHECK_HEADERS(sys/un.h)
|
1999-11-12 10:31:16 -05:00
|
|
|
AC_CHECK_HEADERS(crypt.h)
|
1999-09-14 08:45:02 -04:00
|
|
|
AC_CHECK_FUNCS(gettimeofday ftime nlist select setitimer sigaction)
|
|
|
|
AC_CHECK_FUNC(dlopen, AC_DEFINE(HAVE_DLOPEN),
|
|
|
|
AC_CHECK_FUNC(nlist, [LIBOBJS="$LIBOBJS c/fake/libdl1.c],
|
|
|
|
[LIBOBJS="$LIBOBJS c/fake/libdl2.c]))
|
|
|
|
AC_CHECK_FUNCS(socket chroot)
|
|
|
|
AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR),
|
|
|
|
[LIBOBJS="$LIBOBJS c/fake/strerror.o"])
|
|
|
|
AC_MSG_CHECKING([n_name])
|
|
|
|
AC_TRY_LINK([#include <nlist.h>],
|
|
|
|
[struct nlist name_list;
|
|
|
|
name_list.n_name = "foo";],
|
|
|
|
AC_DEFINE(NLIST_HAS_N_NAME)
|
|
|
|
AC_MSG_RESULT([yes]),
|
|
|
|
AC_MSG_RESULT([no]))
|
|
|
|
AC_MSG_CHECKING([__NEXT__])
|
|
|
|
AC_TRY_LINK(,[
|
|
|
|
#ifdef __NeXT__
|
|
|
|
return 0;
|
|
|
|
#else
|
|
|
|
fail
|
|
|
|
#endif
|
|
|
|
],
|
|
|
|
CC="$CC -posix"
|
|
|
|
AC_DEFINE(HAVE_SIGACTION)
|
|
|
|
AC_MSG_RESULT([yes]),
|
|
|
|
AC_MSG_RESULT([no]))
|
|
|
|
S48_USCORE
|
|
|
|
S48_RDYNAMIC
|
1999-10-10 13:34:09 -04:00
|
|
|
SCSH_TZNAME
|
|
|
|
SCSH_GMTOFF
|
|
|
|
SCSH_CONST_SYS_ERRLIST
|
|
|
|
CFLAGS1=${CFLAGS}
|
|
|
|
|
1999-09-14 08:45:02 -04:00
|
|
|
AC_SUBST(CFLAGS)
|
|
|
|
AC_SUBST(LIBOBJS)
|
|
|
|
AC_SUBST(LDFLAGS)
|
1999-10-10 13:34:09 -04:00
|
|
|
|
|
|
|
|
|
|
|
AC_SUBST(AIX_P)
|
|
|
|
AC_SUBST(AR)
|
|
|
|
AC_SUBST(CC)
|
|
|
|
AC_SUBST(CFLAGS)
|
|
|
|
AC_SUBST(CFLAGS1)
|
|
|
|
AC_SUBST(EXEEXT)
|
|
|
|
AC_SUBST(ENDIAN)
|
|
|
|
AC_SUBST(LDFLAGS)
|
|
|
|
AC_SUBST(LDFLAGS_AIX)
|
|
|
|
AC_SUBST(LIBS)
|
|
|
|
AC_SUBST(TMPDIR)
|
|
|
|
|
|
|
|
|
|
|
|
AC_OUTPUT(Makefile scsh/regexp/Makefile scsh/endian.scm scsh/static.scm)
|
|
|
|
chmod +x scsh/static.scm
|
|
|
|
|