scsh-0.5/configure.in

394 lines
9.4 KiB
Plaintext

dnl Process this file with autoconf 2.x to produce a configure script.
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
dnl Autoconf does not seems to fit the needs of dynamic linking well -bri
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
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
AC_DEFUN(S48_CFLAG_CKR, [
AC_MSG_CHECKING(${CC} for -cckr)
AC_CACHE_VAL(s48_cv_cflag_ckr,[
if test ${CC} != gcc; then
echo "main(){int i=1;}" > conftest.c
if CFLAGS="-cckr ${CFLAGS}" eval $ac_compile
then
s48_cv_cflag_ckr=yes
else
s48_cv_cflag_ckr=no
fi
else
s48_cv_cflag_ckr=no
fi
rm -f conftest*])
AC_MSG_RESULT($s48_cv_cflag_ckr)
if test $s48_cv_cflag_ckr = yes; then
CFLAGS=$CFLAGS
fi
])
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
AC_DEFUN(S48_POSIX_LIBC, [
AC_MSG_CHECKING(for RISC/OS POSIX library lossage)
AC_CACHE_VAL(s48_cv_posix_libc,[
if test -f /usr/posix/usr/lib/libc.a; then
s48_cv_posix_libc=yes
else
s48_cv_posix_libc=no
fi])
AC_MSG_RESULT($s48_cv_posix_libc)
if test $s48_cv_posix_libc = yes; then
LIBS="${LIBS} /usr/posix/usr/lib/libc.a"
fi
])
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
AC_DEFUN(S48_CFLAG_O2, [
AC_MSG_CHECKING(whether we can use -O2)
AC_CACHE_VAL(s48_cv_cflag_o2,[
if test "z$CFLAGS" = "z"; then
if test "z$GCC" = "z"; then
s48_cv_cflag_o2=yes
else
s48_cv_cflag_o2=no
fi
else
s48_cv_cflag_o2=preset
fi])
AC_MSG_RESULT($s48_cv_cflag_o2)
case "$s48_cv_cflag_o2" in
yes )
CFLAGS="-O"
;;
no )
CFLAGS="-O2 -g"
;;
esac
])
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
AC_DEFUN(S48_USCORE, [
AC_MSG_CHECKING(for underscore before symbols)
AC_CACHE_VAL(s48_cv_uscore,[
echo "main(){int i=1;}
fnord(){int i=23; int ltuae=42;}" > conftest.c
${CC} -o a.out conftest.c > /dev/null
if (nm a.out | grep _fnord) > /dev/null; then
s48_cv_uscore=yes
else
s48_cv_uscore=no
fi])
AC_MSG_RESULT($s48_cv_uscore)
rm -f conftest.c a.out
if test $s48_cv_uscore = yes; then
AC_DEFINE(USCORE)
if test $ac_cv_func_dlopen = yes ; then
AC_MSG_CHECKING(whether dlsym always adds an underscore for us)
AC_CACHE_VAL(s48_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); }
], [s48_cv_dlsym_adds_uscore=yes
AC_DEFINE(DLSYM_ADDS_USCORE) ], s48_cv_dlsym_adds_uscore=no))
AC_MSG_RESULT($s48_cv_dlsym_adds_uscore)
fi
fi
])
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
AC_DEFUN(S48_NLIST,[
AC_MSG_CHECKING(for n_name)
AC_CACHE_VAL(s48_cv_nlist,[
AC_TRY_COMPILE([#include <nlist.h>],
[struct nlist name_list;
name_list.n_name = "foo";],
s48_cv_nlist=yes,
s48_cv_nlist=no)])
AC_MSG_RESULT($s48_cv_nlist)
if test $s48_cv_nlist = yes; then
AC_DEFINE(NLIST_HAS_N_NAME)
fi
])
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
AC_DEFUN(S48__CNT,[
AC_MSG_CHECKING(for _cnt)
AC_CACHE_VAL(s48_cv__cnt,[
AC_TRY_COMPILE([#include <stdio.h>],
[return stdin->_cnt;],
s48_cv__cnt=yes,
s48_cv__cnt=no)])
AC_MSG_RESULT($s48_cv__cnt)
if test $s48_cv__cnt = yes; then
AC_DEFINE(FILE_HAS__CNT)
fi
])
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
])
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
])
dnl -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
AC_INIT(scheme48vm.c)
AC_CONFIG_HEADER(sysdep.h)
AC_CANONICAL_HOST
AC_PROG_CC
AC_ISC_POSIX
SCSH_LINUX_STATIC_DEBUG
AC_PROG_INSTALL
AC_PROG_RANLIB
AC_C_CONST
AC_CYGWIN
AC_EXEEXT
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
## CX/UX
m88k-harris-cxux* )
dir=cxux
CC="cc -Xa"
CFLAGS="-O"
LDFLAGS="-O -Wl,-Bexport"
AC_DEFINE(HAVE_HARRIS)
;;
## DEC Ultrix
mips-dec-ultrix* )
dir=ultrix
if test ${CC} = cc; then
LDFLAGS=-N
fi
;;
## HP 9000 series 700 and 800, running HP/UX
hppa*-hp-hpux* )
dir=hpux
LDFLAGS="-Wl,-E"
if test ${CC} = cc; then
CFLAGS="-Ae -O +Obb1800"
AC_DEFINE(_HPUX_SOURCE)
AC_DEFINE(hpux)
fi
;;
## 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"
;;
## 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*|*-*-darwin* )
dir=bsd
SCSH_ELF
;;
## NeXT
*-next-* )
dir=next
CC="$CC -posix"
AC_DEFINE(HAVE_SIGACTION)
;;
## SGI IRIX
mips-sgi-irix* )
dir=irix
S48_CFLAG_CKR
INSTALL='$(srcdir)/install-sh'
;;
## SunOS
sparc*-sun-sunos* )
dir=sunos
;;
## Solaris - Sparc and i386
*-*-solaris* )
dir=solaris
AC_DEFINE(HAVE_NLIST)
;;
## NT - cygwin
*-*-cygwin* )
dir=cygwin32
;;
## Generic Configuration
* )
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
AC_CHECK_LIB(m, sqrt)
AC_CHECK_LIB(gen, pathfind)
AC_CHECK_LIB(nsl, gethostbyaddr)
AC_CHECK_LIB(socket, socket)
dnl Solaris 2.3 seems to need -lelf for nlist(). (tnx Bryan O'Sullivan)
AC_CHECK_LIB(elf, nlist)
AC_CHECK_LIB(ld, ldopen)
AC_CHECK_LIB(dl, dlopen)
AC_CHECK_LIB(dld, shl_findsym)
dnl AC_CHECK_LIB(mld, main)
AC_RETSIGTYPE
AC_HAVE_HEADERS(libgen.h sys/timeb.h posix/time.h sys/select.h nlist.h)
AC_HAVE_HEADERS(sys/un.h)
AC_HAVE_FUNCS(strerror)
AC_HAVE_FUNCS(dlopen gettimeofday ftime nlist select setitimer sigaction)
AC_HAVE_FUNCS(socket chroot)
S48_POSIX_LIBC
S48_CFLAG_O2
S48_USCORE
S48_NLIST
S48__CNT
SCSH_TZNAME
SCSH_GMTOFF
SCSH_CONST_SYS_ERRLIST
CFLAGS1=${CFLAGS}
if test "$CYGWIN" = yes; then
SCSHODBCLIBS=-lodbc32
SCSHODBCOBJS="\$(ODBCOBJS)"
fi
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(SCSHODBCLIBS)
AC_SUBST(SCSHODBCOBJS)
AC_SUBST(TMPDIR)
AC_OUTPUT(Makefile scsh/regexp/Makefile scsh/endian.scm scsh/static.scm)
chmod +x scsh/static.scm