--- gforth/configure.in 2005/01/24 18:47:50 1.149 +++ gforth/configure.in 2006/04/09 13:47:23 1.160 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -#Copyright (C) 1995,1996,1997,1998,2000,2003,2004 Free Software Foundation, Inc. +#Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006 Free Software Foundation, Inc. #This file is part of Gforth. @@ -21,12 +21,12 @@ dnl Process this file with autoconf to p dnl We use some automake macros here, dnl but don't use automake for creating Makefile.in -AC_INIT([gforth],[0.6.2-20030910],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth]) +AC_INIT([gforth],[0.6.2-20060409],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth]) AC_PREREQ(2.54) #snapshots have numbers major.minor.release-YYYYMMDD #note that lexicographic ordering must be heeded. #I.e., 0.4.1-YYYYMMDD must not exist before 0.4.1! -UPDATED="September 10, 2003" +UPDATED="April 09, 2006" AC_SUBST(UPDATED) AC_CONFIG_HEADERS(engine/config.h) @@ -64,6 +64,14 @@ test "$enable_gcc_pr15242_workaround" = AC_DEFINE(GCC_PR15242_WORKAROUND,,[Define if you want to get dynamic code generation on gccs affected by PR15242]) +AC_ARG_ENABLE(force-cdiv, + AC_HELP_STRING([--enable-force-cdiv], + [ Use the native C division - symmetric - instead of + floored division (default disabled).]), + ,enable_force_cdiv=no) +test "$enable_force_cdiv" = "no"|| + AC_DEFINE(FORCE_CDIV,,[Define if you want to use explicit symmetric division for better performance]) + AC_SUBST(PROFEXES) AC_SUBST(PROFOBJS) AC_ARG_ENABLE(prof, @@ -92,6 +100,7 @@ dnl PEEPHOLE="$withval") #variables mentioned in INSTALL AC_ARG_VAR(CC, [The C compiler (must support GNU C 2.x); gcc-2.95 recommended.]) AC_ARG_VAR(FORTHSIZES, [Gforth command line options for the default stack and dictionary sizes (see INSTALL).]) +AC_ARG_VAR(STACK_CACHE_DEFAULT_FAST, [number of registers in the default stack cache state for gforth-fast and gforth-native (default 1).]) AC_ARG_VAR(ac_cv_sizeof_char_p, [sizeof(char *)]) AC_ARG_VAR(ac_cv_sizeof_char, [sizeof(char)]) AC_ARG_VAR(ac_cv_sizeof_short, [sizeof(short)]) @@ -132,7 +141,7 @@ AC_SUBST(CC) AC_SUBST(DEBUGFLAG) AC_MSG_CHECKING(make type) -make_type=`make -v 2>&1|grep 'ake version'|sed 's/ version .*//'` +make_type=`make -v 2>&1|grep 'ake'|sed 's/ake .*/ake/'` GNUMAKE='#' test "$make_type" = "GNU Make" && GNUMAKE='' @@ -251,6 +260,10 @@ case "$host_cpu" in esac AC_SUBST(host) +test x$STACK_CACHE_DEFAULT_FAST = x && STACK_CACHE_DEFAULT_FAST=1 +AC_DEFINE_UNQUOTED(STACK_CACHE_DEFAULT_FAST, $STACK_CACHE_DEFAULT_FAST, + [number of registers in the default stack cache state for gforth-fast and gforth-native]) + if test "${enable_force_ll+set}" = set; then ac_includes_default="$ac_includes_default #include \"arch/generic/128bit.h\"" @@ -307,6 +320,62 @@ esac AC_MSG_RESULT($ac_cv_int_type_cell) AC_DEFINE_UNQUOTED(CELL_TYPE,$ac_cv_int_type_cell,[an integer type that is as long as a pointer]) +AC_MSG_CHECKING([for a C type for wydes]) +ac_cv_wyde_type_cell=none +case 2 in + $ac_cv_sizeof_int) + ac_cv_wyde_type_cell=int + ;; + $ac_cv_sizeof_short) + ac_cv_wyde_type_cell=short + ;; + $ac_cv_sizeof_char) + ac_cv_wyde_type_cell=char + ;; + $ac_cv_sizeof_long) + ac_cv_wyde_type_cell=long + ;; + $ac_cv_sizeof_long_long) + ac_cv_wyde_type_cell="long long" + ;; + $ac_cv_sizeof_intptr_t) + ac_cv_wyde_type_cell="intptr_t" + ;; + $ac_cv_sizeof_int128_t) + ac_cv_wyde_type_cell="int128_t" + ;; +esac +AC_MSG_RESULT($ac_cv_wyde_type_cell) +AC_DEFINE_UNQUOTED(WYDE_TYPE,$ac_cv_wyde_type_cell,[an integer type that is 2 bytes long]) + +AC_MSG_CHECKING([for a C type for tetrabytes]) +ac_cv_tetrabyte_type_cell=none +case 4 in + $ac_cv_sizeof_int) + ac_cv_tetrabyte_type_cell=int + ;; + $ac_cv_sizeof_short) + ac_cv_tetrabyte_type_cell=short + ;; + $ac_cv_sizeof_char) + ac_cv_tetrabyte_type_cell=char + ;; + $ac_cv_sizeof_long) + ac_cv_tetrabyte_type_cell=long + ;; + $ac_cv_sizeof_long_long) + ac_cv_tetrabyte_type_cell="long long" + ;; + $ac_cv_sizeof_intptr_t) + ac_cv_tetrabyte_type_cell="intptr_t" + ;; + $ac_cv_sizeof_int128_t) + ac_cv_tetrabyte_type_cell="int128_t" + ;; +esac +AC_MSG_RESULT($ac_cv_tetrabyte_type_cell) +AC_DEFINE_UNQUOTED(TETRABYTE_TYPE,$ac_cv_tetrabyte_type_cell,[an integer type that is 4 bytes long]) + AC_MSG_CHECKING([for a C type for double-cells]) ac_cv_int_type_double_cell=none case `expr 2 '*' "$ac_cv_sizeof_char_p"` in @@ -423,7 +492,8 @@ AC_SUBST(disasm_fs) AC_PATH_PROG(INSTALL_INFO,install-info,[echo '>>>>Please make info dir entry:'],$PATH:/sbin:/usr/sbin:/usr/local/sbin) case "$host_os" in - *win32|cygwin) + *win32*) + # !!!FIXME!!! problems with cygwin and ';' as path separator DIRSEP="\\\\" PATHSEP=";" #we want the builtins of command.com/cmd.exe and its @@ -558,16 +628,28 @@ dnl This check is just for making later dnl using sin here is no good idea since it is built-into gcc and typechecked AC_CHECK_LIB(m,asin) AC_CHECK_LIB(dl,dlopen) +dnl check for libffi 2.x +AC_CHECK_LIB(ffi,ffi_call) +if test $ac_cv_lib_ffi_ffi_call = yes +then +LIBFFIFLAG="true" +FFCALLFLAG="false" +OLDCALLFLAG="false" +AC_DEFINE(HAS_LIBFFI,,[define this if you want to use the ffcall interface with libffi 2.0]) +else dnl check for ffcall libraries dnl unfortunately, these four calls are separated out into a library each. AC_CHECK_LIB(avcall,__builtin_avcall) AC_CHECK_LIB(callback,__vacall_r) AC_CHECK_LIB(vacall,vacall) AC_CHECK_LIB(trampoline,alloc_trampoline) +LIBFFIFLAG="false" FFCALLFLAG="false" OLDCALLFLAG="true" test $ac_cv_lib_avcall___builtin_avcall = yes && FFCALLFLAG="true" && OLDCALLFLAG="false" && AC_DEFINE(HAS_FFCALL,,[define this if you want to use the ffcall libraries]) test $ac_cv_lib_avcall___builtin_avcall = no && AC_DEFINE(HAS_OLDCALL,,[define this if you want to use the old call libraries]) +fi +AC_SUBST(LIBFFIFLAG) AC_SUBST(FFCALLFLAG) AC_SUBST(OLDCALLFLAG) if test "$host_os" != "nextstep3" @@ -605,6 +687,7 @@ Makedist gforthmi vmgen machpc.fs +envos.fs engine/Makefile doc/version.texi ]) AC_CONFIG_COMMANDS([stamp-h],[[echo timestamp > stamp-h