dnl Process this file with autoconf to produce a configure script.
dnl ---
AC_REVISION($Revision: 1.1.1.1 $)dnl
dnl $Log: configure.in,v $
dnl Revision 1.1.1.1 2001/05/18 23:14:04 mb
dnl Move from private repository to open source repository
dnl
dnl Revision 1.3 2000/12/21 23:58:39 dmitch
dnl Misc. updates for clean build on Cheetah 1D7.
dnl
dnl Revision 1.2 2000/06/08 19:57:33 dmitch
dnl Mods for X port.
dnl
dnl Revision 1.1.1.1 1999/03/16 18:05:49 aram
dnl Originals from SMIME Free Library.
dnl
dnl Revision 1.13 1997/09/04 13:54:04 wan
dnl A little more portability
dnl
dnl Revision 1.12 1997/02/28 13:39:35 wan
dnl Modifications collected for new version 1.3: Bug fixes, tk4.2.
dnl
dnl Revision 1.11 1997/02/16 16:50:27 rj
dnl made return *this after calling abort()'' a compile time option.
dnl
dnl Revision 1.10 1997/02/15 20:06:27 rj
dnl adjust to changed AC_TRY_COMPILE macro
dnl
dnl Revision 1.9 1997/02/15 20:01:38 rj
dnl check whether the compiler supports volatile functions (and whether abort() is volatile).
dnl
dnl Revision 1.8 1997/01/01 19:57:01 rj
dnl changes for autoconf version 2.12
dnl
dnl Revision 1.7 1995/09/07 18:36:47 rj
dnl psbook and psnup are looked for (used by .../doc/makefile)
dnl
dnl Revision 1.6 1995/07/24 14:44:47 rj
dnl don't use gcc/g++ with -pipe, compiling some files may exceed virtual memory.
dnl
dnl look for tclsh(1). tcl-lib uses it to construct the tclIndex file. don't look for Tcl/Tk if the tclsh is absent.
dnl
dnl look for patch(1). the c-lib uses it to patch tbl.h.
dnl
dnl search for tree-3.6's libtktree.a and set TREELIBS in .../makehead accordingly.
dnl
dnl check for memset(3), memcpy(3) and memcmp(3). .../snacc.h reverts to bzero(3), bcopy(3) and bcmp(3) if necessary.
dnl
dnl Revision 1.5 1995/02/20 11:18:41 rj
dnl cpp switch HAVE_VARIABLE_SIZED_AUTOMATIC_ARRAYS added.
dnl check for isinf(3) and finite(3) added.
dnl
dnl Revision 1.4 1995/02/17 15:15:44 rj
dnl hack to let makedepend find .h files the way gcc does.
dnl
dnl Revision 1.3 1995/02/17 14:26:40 rj
dnl adjustments for autoconf 2.x
dnl
dnl Revision 1.2 1994/10/08 04:29:37 rj
dnl search for Tcl/Tk
dnl
dnl Revision 1.1 1994/09/01 00:51:22 rj
dnl first check-in (new file).
dnl
AC_INIT( compiler/core/snacc.c)
AC_CONFIG_HEADER( config.h)
dnl --- alternative programs:
AC_PROG_MAKE_SET
AC_PROG_CC
AC_ISC_POSIX
if test -n "$GCC"; then
dnl saveCC="$CC"
dnl CC="$CC -pipe"
dnl AC_MSG_CHECKING( whether $saveCC takes -pipe)
dnl AC_TRY_LINK( , , [AC_MSG_RESULT( yes)], [AC_MSG_RESULT( no); CC="$saveCC"])
# hack to let X11 makedepend find .h file a little more the way gcc does:
AC_MSG_CHECKING( for $CC's include path)
gcclibdir=`$CC -v 2>&1 | sed -n -e 's:Reading specs from \(.*\)/specs:\1:p'`
gxxincdir=`which gcc | sed "s/bin\/gcc//"`
#MKDEP_CCINC="-I$gxxincdir/lib/g++-include -I/usr/local/include -I$gcclibdir/include"
MKDEP_CCINC="-I/usr/local/include -I$gcclibdir/include -F/System/Library/PrivateFrameworks"
AC_MSG_RESULT( $MKDEP_CCINC)
AC_SUBST( MKDEP_CCINC)
fi
AC_PROG_GCC_TRADITIONAL
AC_PROG_CC_C_O
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
AC_MSG_WARN( since -c and -o don't seem to work together, the makefiles probably won't work!)
fi
AC_MSG_CHECKING( whether ANSI or K&R style C)
AC_TRY_RUN( [main (int argc, char **argv) { void *p; return 0; }], [AC_MSG_RESULT( ANSI); AC_DEFINE( __USE_ANSI_C__)], AC_MSG_RESULT( K&R), AC_MSG_RESULT( K&R))
AC_PROG_CXX
AC_LANG_CPLUSPLUS
dnl if test -n "$GCC"; then
dnl saveCXX="$CXX"
dnl CXX="$CXX -pipe"
dnl AC_MSG_CHECKING( whether $saveCXX takes -pipe)
dnl AC_TRY_LINK( , , [AC_MSG_RESULT( yes)], [AC_MSG_RESULT( no);CC="$saveCC"])
dnl fi
AC_MSG_CHECKING( for bool built-in)
AC_TRY_COMPILE( , bool b = false;, [AC_DEFINE( BOOL_BUILTIN) AC_MSG_RESULT( yes)], AC_MSG_RESULT( no))
AC_MSG_CHECKING( for variable sized automatic arrays)
AC_TRY_COMPILE( , changequote(<,>)int i = 42; char a[++i]; *a = i;changequote([,]), [AC_DEFINE( HAVE_VARIABLE_SIZED_AUTOMATIC_ARRAYS) AC_MSG_RESULT( yes)], AC_MSG_RESULT( no))
AC_MSG_CHECKING( for volatile functions)
AC_TRY_COMPILE( , changequote(<,>)abort();changequote([,]), [AC_MSG_RESULT( yes)], [AC_DEFINE( COMPILER_WITHOUT_VOLATILE_FUNCTIONS) SNACC_NOVOLAT=-novolat; AC_SUBST( SNACC_NOVOLAT) AC_MSG_RESULT( no)])
AC_LANG_C
AC_PROG_LEX
AC_DECL_YYTEXT
case "$LEX" in
lex)
LFLAGS="-Nc10000"
;;
flex)
CFLAGS="$CFLAGS -DFLEX_IN_USE"
esac
AC_SUBST( LFLAGS)
AC_SUBST( CFLAGS)
# the boot strapping code in .../c-lib/ needs patch:
AC_CHECK_PROGS( PATCH, patch, false)
AC_PROG_YACC
AC_CHECK_PROGS( MKDEP, makedepend mkdep mkdep.sh, $CC)
AC_CHECK_PROGS( AR, ar, ar)
AC_PROG_RANLIB
AC_PROG_INSTALL
dnl --- header files:
AC_HEADER_TIME
AC_HEADER_DIRENT
AC_TYPE_SIZE_T
AC_TYPE_UID_T
AC_HEADER_STDC
AC_CHECK_HEADERS( unistd.h memory.h string.h malloc.h fcntl.h)
AC_FUNC_VPRINTF
dnl --- system and compiler characteristics:
AC_C_CONST
AC_C_BIGENDIAN
AC_CHECK_SIZEOF( short)
AC_CHECK_SIZEOF( int)
AC_CHECK_SIZEOF( long)
AC_CHECK_SIZEOF( double)
AC_CHECK_LIB( m, sin)
AC_CHECK_FUNCS( isinf finite)
AC_CHECK_FUNCS( memset memcpy memcmp)
dnl ---
AC_PATH_X
AC_PATH_XTRA
AC_CHECK_PROGS( TCLSH, tclsh, false)
if test "$TCLSH" != false; then
AC_CHECK_HEADER(
tcl.h,
[AC_CHECK_LIB( ld, ldopen, TCLOTHERLIBS=-lld)
AC_CHECK_LIB(
tcl,
Tcl_CreateInterp,
[saveCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
AC_CHECK_LIB(
tk,
Tk_CreateWindow,
[AC_DEFINE( HAVE_TCL)
TCLLIBS="-ltk -ltcl $TCLOTHERLIBS"
AC_LANG_CPLUSPLUS
AC_CHECK_LIB(
TkTree,
Tree_Init,
[TREELIBS="-lTkTree"],
[AC_MSG_RESULT( [tcl/tk libs found, but tree widget is missing])],
-lTkTree -ltk -ltcl $TCLOTHERLIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
AC_LANG_C],
[AC_MSG_RESULT( [tcl lib found, but tk lib is missing])],
-ltcl $TCLOTHERLIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS)
CFLAGS="$saveCFLAGS"],
[AC_MSG_RESULT( [tcl library not found])],
$TCLOTHERLIBS -lm)])
fi
AC_SUBST( TCLLIBS)
AC_SUBST( TREELIBS)
dnl ---
AC_CHECK_PROGS( LATEX, latex, false)
AC_CHECK_PROGS( BIBTEX, bibtex, false)
AC_CHECK_PROGS( DVIPS, dvips, false)
AC_CHECK_PROGS( DETEX, detex2 detex, false)
AC_CHECK_PROGS( PSPREVIEW, ghostview gs, true)
AC_CHECK_PROGS( PSBOOK, psbook, false)
AC_CHECK_PROGS( PSNUP, psnup, false)
AC_CHECK_PROGS( SPELL, ispell spell, spell)
dnl ---
AC_OUTPUT( makehead, date > stamp-h)
dnl --- finis