| dnl Process this file with autoconf to produce a configure script. |
dnl Process this file with autoconf to produce a configure script. |
| |
|
| #Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc. |
#Copyright (C) 1995,1996,1997,1998,2000,2003,2004 Free Software Foundation, Inc. |
| |
|
| #This file is part of Gforth. |
#This file is part of Gforth. |
| |
|
| but also incorrect code with some gcc versions on |
but also incorrect code with some gcc versions on |
| some processors (default disabled).], |
some processors (default disabled).], |
| AC_DEFINE(FORCE_REG,,[Define if you want to use explicit register declarations for better performance or for more convenient CODE words (does not work with all GCC versions on all machines)])) |
AC_DEFINE(FORCE_REG,,[Define if you want to use explicit register declarations for better performance or for more convenient CODE words (does not work with all GCC versions on all machines)])) |
| |
AC_ARG_ENABLE(force-ll, |
| |
[ --enable-force-ll Use explicit long long declarations if they appear in |
| |
the machine.h file. This can cause a good speedup, |
| |
but also incorrect code with some gcc versions on |
| |
some processors (default disabled).], |
| |
AC_DEFINE(FORCE_LL,,[Define if you want to use explicit long long declarations for better performance (does not work with all GCC versions on all machines)])) |
| AC_SUBST(PROFEXES) |
AC_SUBST(PROFEXES) |
| AC_SUBST(PROFOBJS) |
AC_SUBST(PROFOBJS) |
| |
|
| |
AC_ARG_ENABLE(gcc-pr15242-workaround, |
| |
AC_HELP_STRING([--disable-gcc-pr15242-workaround],[Disables |
| |
dynamic code generation on some versions of gcc |
| |
(slowdown~2 on Athlon) and causes slower building |
| |
of gforth (but gforth speedups) on others. |
| |
(default enabled)]), |
| |
,enable_gcc_pr15242_workaround=yes) |
| |
test "$enable_gcc_pr15242_workaround" = "no"|| |
| |
AC_DEFINE(GCC_PR15242_WORKAROUND,,[Define if you want to get dynamic code |
| |
generation on gccs affected by PR15242]) |
| |
|
| AC_ARG_ENABLE(prof, |
AC_ARG_ENABLE(prof, |
| [ --enable-prof Build gforth-prof, which outputs frequently occuring |
[ --enable-prof Build gforth-prof, which outputs frequently occuring |
| sequences of primitives.], |
sequences of primitives.], |
| AC_ARG_VAR(ac_cv_sizeof_long_long, [sizeof(long long)]) |
AC_ARG_VAR(ac_cv_sizeof_long_long, [sizeof(long long)]) |
| AC_ARG_VAR(ac_cv_sizeof_intptr_t, [sizeof(intptr_t)]) |
AC_ARG_VAR(ac_cv_sizeof_intptr_t, [sizeof(intptr_t)]) |
| AC_ARG_VAR(ac_cv_sizeof_int128_t, [sizeof(int128_t)]) |
AC_ARG_VAR(ac_cv_sizeof_int128_t, [sizeof(int128_t)]) |
| |
AC_ARG_VAR(ac_cv_sizeof_uint128_t, [sizeof(uint128_t)]) |
| AC_ARG_VAR(ac_cv_c_bigendian, [Is the target big-endian ("yes" or "no")?]) |
AC_ARG_VAR(ac_cv_c_bigendian, [Is the target big-endian ("yes" or "no")?]) |
| AC_ARG_VAR(no_dynamic_default, [run gforth with --dynamic (0) or --no-dynamic (1) by default]) |
AC_ARG_VAR(no_dynamic_default, [run gforth with --dynamic (0) or --no-dynamic (1) by default]) |
| AC_ARG_VAR(skip_code, [assembly code for skipping 16 bytes of code]) |
AC_ARG_VAR(skip_code, [assembly code for skipping 16 bytes of code]) |
| esac |
esac |
| AC_SUBST(host) |
AC_SUBST(host) |
| |
|
| |
if test "${enable_force_ll+set}" = set; then |
| |
ac_includes_default="$ac_includes_default |
| |
#include \"arch/generic/128bit.h\"" |
| |
fi |
| |
|
| dnl the following macro produces a warning with autoconf-2.1 |
dnl the following macro produces a warning with autoconf-2.1 |
| AC_CHECK_SIZEOF(char *) |
AC_CHECK_SIZEOF(char *) |
| case "$ac_cv_sizeof_char_p" in |
case "$ac_cv_sizeof_char_p" in |
| AC_CHECK_SIZEOF(long long) |
AC_CHECK_SIZEOF(long long) |
| AC_CHECK_SIZEOF(intptr_t) |
AC_CHECK_SIZEOF(intptr_t) |
| AC_CHECK_SIZEOF(int128_t) |
AC_CHECK_SIZEOF(int128_t) |
| |
AC_CHECK_SIZEOF(uint128_t) |
| |
|
| AC_MSG_CHECKING([for a C type for cells]) |
AC_MSG_CHECKING([for a C type for cells]) |
| ac_cv_int_type_cell=none |
ac_cv_int_type_cell=none |
| ;; |
;; |
| esac |
esac |
| AC_MSG_RESULT($ac_cv_int_type_double_cell) |
AC_MSG_RESULT($ac_cv_int_type_double_cell) |
| if test "$ac_cv_int_type_double_cell" = none; then |
|
| |
AC_MSG_CHECKING([for a C type for unsigned double-cells]) |
| |
ac_cv_int_type_double_ucell=none |
| |
case `expr 2 '*' "$ac_cv_sizeof_char_p"` in |
| |
$ac_cv_sizeof_short) |
| |
ac_cv_int_type_double_ucell="unsigned short" |
| |
;; |
| |
$ac_cv_sizeof_int) |
| |
ac_cv_int_type_double_ucell="unsigned int" |
| |
;; |
| |
$ac_cv_sizeof_long) |
| |
ac_cv_int_type_double_ucell="unsigned long" |
| |
;; |
| |
$ac_cv_sizeof_long_long) |
| |
ac_cv_int_type_double_ucell="unsigned long long" |
| |
;; |
| |
$ac_cv_sizeof_intptr_t) |
| |
ac_cv_int_type_double_ucell="unsigned intptr_t" |
| |
;; |
| |
$ac_cv_sizeof_uint128_t) |
| |
ac_cv_int_type_double_ucell="uint128_t" |
| |
;; |
| |
esac |
| |
AC_MSG_RESULT($ac_cv_int_type_double_ucell) |
| |
|
| |
if test "$ac_cv_int_type_double_cell" = none || \ |
| |
test "$ac_cv_int_type_double_ucell" = none |
| |
then |
| AC_MSG_WARN([Emulating double-cell arithmetic. This may be slow.]) |
AC_MSG_WARN([Emulating double-cell arithmetic. This may be slow.]) |
| AC_LIBOBJ(dblsub) |
AC_LIBOBJ(dblsub) |
| AC_DEFINE(BUGGY_LONG_LONG,,[define this if there is no working DOUBLE_CELL_TYPE on your machine]) |
AC_DEFINE(BUGGY_LONG_LONG,,[define this if there is no working DOUBLE_CELL_TYPE on your machine]) |
| else |
else |
| AC_DEFINE_UNQUOTED(DOUBLE_CELL_TYPE,$ac_cv_int_type_double_cell,[an integer type that is twice as long as a pointer]) |
AC_DEFINE_UNQUOTED(DOUBLE_CELL_TYPE,$ac_cv_int_type_double_cell,[an integer type that is twice as long as a pointer]) |
| |
AC_DEFINE_UNQUOTED(DOUBLE_UCELL_TYPE,$ac_cv_int_type_double_ucell,[an unsigned integer type that is twice as long as a pointer]) |
| fi |
fi |
| |
|
| AC_TYPE_OFF_T |
AC_TYPE_OFF_T |