| 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,2004,2005,2006 Free Software Foundation, Inc. |
#Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007 Free Software Foundation, Inc. |
| |
|
| #This file is part of Gforth. |
#This file is part of Gforth. |
| |
|
| |
|
| dnl We use some automake macros here, |
dnl We use some automake macros here, |
| dnl but don't use automake for creating Makefile.in |
dnl but don't use automake for creating Makefile.in |
| AC_INIT([gforth],[0.6.2-20060709],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth]) |
AC_INIT([gforth],[0.6.9-20070604],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth]) |
| AC_PREREQ(2.54) |
AC_PREREQ(2.54) |
| #snapshots have numbers major.minor.release-YYYYMMDD |
#snapshots have numbers major.minor.release-YYYYMMDD |
| #note that lexicographic ordering must be heeded. |
#note that lexicographic ordering must be heeded. |
| #I.e., 0.4.1-YYYYMMDD must not exist before 0.4.1! |
#I.e., 0.4.1-YYYYMMDD must not exist before 0.4.1! |
| UPDATED="April 09, 2006" |
UPDATED="June 02, 2007" |
| AC_SUBST(UPDATED) |
AC_SUBST(UPDATED) |
| AC_CONFIG_HEADERS(engine/config.h) |
AC_CONFIG_HEADERS(engine/config.h) |
| |
|
| dnl but slower images.], |
dnl but slower images.], |
| dnl PEEPHOLE="$withval") |
dnl PEEPHOLE="$withval") |
| |
|
| AC_ARG_ENABLE(ec, |
GCC_LD="\$(GCC)" |
| AC_HELP_STRING([--enable-ec], |
EC_MODE="false" |
| |
EC="" |
| |
engine2="engine2.o" |
| |
engine_fast2="engine-fast2.o" |
| |
no_dynamic="" |
| |
image_i="" |
| |
signals_o="io.o signals.o" |
| |
|
| |
AC_ARG_WITH(ec, |
| |
AC_HELP_STRING([--with-ec=<arch>], |
| [ Build gforth for systems without OS.]), |
[ Build gforth for systems without OS.]), |
| ,enable_ec=no) |
[if test "$withval" = "no"; then |
| if test "$enable_ec" = "yes"; then |
echo "defining hosted system" |
| echo "defining standalone system" |
else |
| |
echo "defining standalone system (${withval})" |
| AC_DEFINE(STANDALONE,,[Define if you want a Gforth without OS]) |
AC_DEFINE(STANDALONE,,[Define if you want a Gforth without OS]) |
| EC_MODE="true" |
EC_MODE="true" |
| EC="-ec" |
EC="-ec" |
| engine_fast2="" |
engine_fast2="" |
| no_dynamic="-DNO_DYNAMIC" |
no_dynamic="-DNO_DYNAMIC" |
| image_i="image.i" |
image_i="image.i" |
| signals_o="" |
if test "$withval" != "yes"; then |
| |
signals_o="io-${withval}.o" |
| else |
else |
| echo "defining hosted system" |
signals_o="io.o" |
| EC_MODE="false" |
|
| EC="" |
|
| engine2="engine2.o" |
|
| engine_fast2="engine-fast2.o" |
|
| no_dynamic="" |
|
| image_i="" |
|
| signals_o="signals.o" |
|
| fi |
fi |
| |
GCC_PATH=$(which $CC) |
| |
LIB_PATH=${GCC_PATH%/*/*} |
| |
GCC_LD="\$(LD)" |
| |
platform=${withval} |
| |
fi]) |
| |
|
| #variables mentioned in INSTALL |
#variables mentioned in INSTALL |
| AC_ARG_VAR(CC, [The C compiler (must support GNU C 2.x); gcc-2.95 recommended.]) |
AC_ARG_VAR(CC, [The C compiler (must support GNU C 2.x); gcc-2.95 recommended.]) |
| AC_ARG_VAR(GCC_PR15242_WORKAROUND, [Force the enabling (1) or disabling (0) of a workaround for a gcc-3.x performance bug (default unset: use workaround for gcc-3.x)]) |
AC_ARG_VAR(GCC_PR15242_WORKAROUND, [Force the enabling (1) or disabling (0) of a workaround for a gcc-3.x performance bug (default unset: use workaround for gcc-3.x)]) |
| |
|
| AC_ARG_VAR(ac_cv_sizeof_char_p, [sizeof(char *)]) |
AC_ARG_VAR(ac_cv_sizeof_char_p, [sizeof(char *)]) |
| |
AC_ARG_VAR(ac_cv_sizeof_void_p, [sizeof(void *)]) |
| AC_ARG_VAR(ac_cv_sizeof_char, [sizeof(char)]) |
AC_ARG_VAR(ac_cv_sizeof_char, [sizeof(char)]) |
| AC_ARG_VAR(ac_cv_sizeof_short, [sizeof(short)]) |
AC_ARG_VAR(ac_cv_sizeof_short, [sizeof(short)]) |
| AC_ARG_VAR(ac_cv_sizeof_int, [sizeof(int)]) |
AC_ARG_VAR(ac_cv_sizeof_int, [sizeof(int)]) |
| AC_ARG_VAR(ac_cv_sizeof_uint128_t, [sizeof(uint128_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(condbranch_opt, [enable (1) or disable (0) using two dispatches for conditional branches]) |
| AC_ARG_VAR(skipcode, [assembly code for skipping 16 bytes of code]) |
AC_ARG_VAR(skipcode, [assembly code for skipping 16 bytes of code]) |
| AC_ARG_VAR(asmcomment, [assembler comment start string]) |
AC_ARG_VAR(asmcomment, [assembler comment start string]) |
| AC_ARG_VAR(arm_cacheflush, [file containing ARM cacheflush function (without .c)]) |
AC_ARG_VAR(arm_cacheflush, [file containing ARM cacheflush function (without .c)]) |
| |
|
| test "$GCC" = "yes" || AC_MSG_ERROR(Gforth uses GNU C extensions and requires GCC 2.0 or higher) |
test "$GCC" = "yes" || AC_MSG_ERROR(Gforth uses GNU C extensions and requires GCC 2.0 or higher) |
| |
|
| |
AC_MSG_CHECKING([whether to use two dispatches per conditional branch]) |
| |
test x$condbranch_opt = x && |
| |
if ($CC -v 2>&1 |grep -q 'gcc version 3'); then |
| |
condbranch_opt=0 |
| |
else |
| |
condbranch_opt=1 |
| |
fi |
| |
AC_MSG_RESULT($condbranch_opt) |
| |
AC_SUBST(condbranch_opt) |
| |
|
| AC_SUBST(CC) |
AC_SUBST(CC) |
| |
AC_SUBST(GCC_LD) |
| AC_SUBST(DEBUGFLAG) |
AC_SUBST(DEBUGFLAG) |
| AC_SUBST(EC) |
AC_SUBST(EC) |
| AC_SUBST(EC_MODE) |
AC_SUBST(EC_MODE) |
| arm*) |
arm*) |
| machine=arm |
machine=arm |
| CFLAGS="$CFLAGS -fomit-frame-pointer" |
CFLAGS="$CFLAGS -fomit-frame-pointer" |
| |
if test x$platform = xnxt; then |
| |
CFLAGS="$CFLAGS -mthumb -mthumb-interwork" |
| |
fi |
| if test -z $arm_cacheflush; then |
if test -z $arm_cacheflush; then |
| no_dynamic_default=1 |
no_dynamic_default=1 |
| arm_cacheflush=arch/arm/cacheflush0 |
arm_cacheflush=arch/arm/cacheflush0 |
| ;; |
;; |
| i386) |
i386) |
| machine=386 |
machine=386 |
| CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -fforce-mem" |
CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr" |
| ;; |
;; |
| i486) |
i486) |
| machine=386 |
machine=386 |
| CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -fforce-mem -m486" |
CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -m486" |
| ;; |
;; |
| i*86) |
i*86) |
| machine=386 |
machine=386 |
| CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -fforce-mem" |
CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr" |
| CFLAGS_1="$CFLAGS" |
CFLAGS_1="$CFLAGS" |
| CFLAGS="$CFLAGS -march=pentium" |
CFLAGS="$CFLAGS -march=pentium" |
| AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1 -m486") |
AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1 -m486") |
| ;; |
;; |
| x86_64) |
x86_64) |
| |
case $CC |
| |
in |
| |
*-m32*) |
| |
machine=386 |
| |
CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr" |
| |
CFLAGS_1="$CFLAGS" |
| |
CFLAGS="$CFLAGS -march=athlon64" |
| |
;; |
| |
*) |
| machine=amd64 |
machine=amd64 |
| ;; |
;; |
| |
esac |
| |
;; |
| ia64*) |
ia64*) |
| machine=ia64 |
machine=ia64 |
| AC_LIBOBJ(../arch/ia64/flush_icache_block) |
AC_LIBOBJ(../arch/ia64/flush_icache_block) |
| esac |
esac |
| AC_SUBST(host) |
AC_SUBST(host) |
| |
|
| |
MAKEINC="" |
| |
|
| |
echo "Check for arch/$machine/$platform/gforth.ld ($EC_MODE)" |
| |
if test x$EC_MODE = xtrue |
| |
then |
| |
echo "Check for arch/$machine/$platform/gforth.ld" |
| |
if test -f arch/$machine/$platform/gforth.ld |
| |
then |
| |
LDFLAGS="-T ../arch/$machine/$platform/gforth.ld -Map \$@.map -cref --gc-sections $LDFLAGS" |
| |
if test x$platform = xnxt; then |
| |
LIBS="$LIB_PATH/lib/gcc/arm-elf/$($CC --version | grep GCC | cut -d' ' -f3)/interwork/libgcc.a $LIB_PATH/arm-elf/lib/interwork/libc.a $LIBS" |
| |
fi |
| |
fi |
| |
if test -f arch/$machine/$platform/make.inc |
| |
then |
| |
MAKEINC="include ../arch/$machine/$platform/make.inc" |
| |
fi |
| |
fi |
| |
AC_SUBST(MAKEINC) |
| |
|
| test x$STACK_CACHE_DEFAULT_FAST = x && STACK_CACHE_DEFAULT_FAST=1 |
test x$STACK_CACHE_DEFAULT_FAST = x && STACK_CACHE_DEFAULT_FAST=1 |
| AC_DEFINE_UNQUOTED(STACK_CACHE_DEFAULT_FAST, $STACK_CACHE_DEFAULT_FAST, |
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]) |
[number of registers in the default stack cache state for gforth-fast and gforth-native]) |
| ;; |
;; |
| esac |
esac |
| |
|
| |
AC_CHECK_SIZEOF(void *) |
| |
case "$ac_cv_sizeof_void_p" in |
| |
2) |
| |
vwordsize=16 |
| |
;; |
| |
4) |
| |
vwordsize=32 |
| |
;; |
| |
8) |
| |
vwordsize=64 |
| |
;; |
| |
esac |
| |
|
| AC_CHECK_SIZEOF(char) |
AC_CHECK_SIZEOF(char) |
| AC_CHECK_SIZEOF(short) |
AC_CHECK_SIZEOF(short) |
| AC_CHECK_SIZEOF(int) |
AC_CHECK_SIZEOF(int) |
| CFLAGS="$CFLAGS_1" |
CFLAGS="$CFLAGS_1" |
| AC_MSG_RESULT($ac_noreorder_blocks) |
AC_MSG_RESULT($ac_noreorder_blocks) |
| |
|
| |
# Try if GCC understands -falign-labels=1 |
| |
AC_MSG_CHECKING([if $CC understands -falign-labels=1]) |
| |
CFLAGS_1="$CFLAGS" |
| |
CFLAGS="$CFLAGS -falign-labels=1" |
| |
AC_TRY_COMPILE(,,ac_align_labels=yes;ENGINE_FLAGS="$ENGINE_FLAGS -falign-labels=1",ac_align_labels=no) |
| |
CFLAGS="$CFLAGS_1" |
| |
AC_MSG_RESULT($ac_align_labels) |
| |
|
| |
# Try if GCC understands -falign-loops=1 |
| |
AC_MSG_CHECKING([if $CC understands -falign-loops=1]) |
| |
CFLAGS_1="$CFLAGS" |
| |
CFLAGS="$CFLAGS -falign-loops=1" |
| |
AC_TRY_COMPILE(,,ac_align_loops=yes;ENGINE_FLAGS="$ENGINE_FLAGS -falign-loops=1",ac_align_loops=no) |
| |
CFLAGS="$CFLAGS_1" |
| |
AC_MSG_RESULT($ac_align_loops) |
| |
|
| |
# Try if GCC understands -falign-jumps=1 |
| |
AC_MSG_CHECKING([if $CC understands -falign-jumps=1]) |
| |
CFLAGS_1="$CFLAGS" |
| |
CFLAGS="$CFLAGS -falign-jumps=1" |
| |
AC_TRY_COMPILE(,,ac_align_jumps=yes;ENGINE_FLAGS="$ENGINE_FLAGS -falign-jumps=1",ac_align_jumps=no) |
| |
CFLAGS="$CFLAGS_1" |
| |
AC_MSG_RESULT($ac_align_jumps) |
| |
|
| # Try if GCC understands __attribute__((unused)) |
# Try if GCC understands __attribute__((unused)) |
| AC_MSG_CHECKING([how to suppress 'unused variable' warnings]) |
AC_MSG_CHECKING([how to suppress 'unused variable' warnings]) |
| AC_TRY_COMPILE(,[int __attribute__((unused)) foo;], MAYBE_UNUSED='__attribute__((unused))',) |
AC_TRY_COMPILE(,[int __attribute__((unused)) foo;], MAYBE_UNUSED='__attribute__((unused))',) |
| AC_DEFINE_UNQUOTED(MAYBE_UNUSED,$MAYBE_UNUSED,[attribute for possibly unused variables]) |
AC_DEFINE_UNQUOTED(MAYBE_UNUSED,$MAYBE_UNUSED,[attribute for possibly unused variables]) |
| AC_MSG_RESULT($MAYBE_UNUSED) |
AC_MSG_RESULT($MAYBE_UNUSED) |
| |
|
| AC_CHECK_PROG(asm_fs,asm.fs,arch/$machine/asm.fs,,$srcdir/arch/$machine) |
#try if m4 understands -s |
| |
AC_MSG_CHECKING([how to invoke m4]) |
| |
if m4 -s /dev/null >/dev/null 2>&1; then |
| |
M4="m4 -s" |
| |
else |
| |
M4=m4 |
| |
fi |
| |
AC_SUBST(M4) |
| |
AC_DEFINE_UNQUOTED(M4,"$M4",[How to invoke m4]) |
| |
AC_MSG_RESULT($M4) |
| |
|
| |
echo "machine='$machine'" |
| |
|
| |
dnl AC_CHECK_PROG(asm_fs,asm.fs,arch/$machine/asm.fs,,$srcdir/arch/$machine) |
| |
AC_CHECK_FILE($srcdir/arch/$machine/asm.fs,[asm_fs=arch/$machine/asm.fs],) |
| AC_SUBST(asm_fs) |
AC_SUBST(asm_fs) |
| |
|
| AC_CHECK_PROG(disasm_fs,disasm.fs,arch/$machine/disasm.fs,,$srcdir/arch/$machine) |
dnl AC_CHECK_PROG(disasm_fs,disasm.fs,arch/$machine/disasm.fs,,$srcdir/arch/$machine) |
| |
AC_CHECK_FILE($srcdir/arch/$machine/disasm.fs,[disasm_fs=arch/$machine/disasm.fs],) |
| AC_SUBST(disasm_fs) |
AC_SUBST(disasm_fs) |
| |
|
| AC_PATH_PROG(INSTALL_INFO,install-info,[echo '>>>>Please make info dir entry:'],$PATH:/sbin:/usr/sbin:/usr/local/sbin) |
AC_PATH_PROG(INSTALL_INFO,install-info,[echo '>>>>Please make info dir entry:'],$PATH:/sbin:/usr/sbin:/usr/local/sbin) |
| AC_PROG_INSTALL |
AC_PROG_INSTALL |
| AC_CHECK_PROGS(TEXI2DVI,texi2dvi4a2ps texi2dvi) |
AC_CHECK_PROGS(TEXI2DVI,texi2dvi4a2ps texi2dvi) |
| |
|
| |
dnl MacOS X has a libtool that does something else |
| |
AC_CHECK_PROGS(GNU_LIBTOOL,glibtool libtool) |
| |
|
| dnl Checks for library functions |
dnl Checks for library functions |
| dnl This check is just for making later checks link with libm. |
dnl This check is just for making later checks link with libm. |
| dnl using sin here is no good idea since it is built-into gcc and typechecked |
dnl using sin here is no good idea since it is built-into gcc and typechecked |
| AC_CHECK_LIB(m,asin) |
AC_CHECK_LIB(m,asin) |
| |
AC_CHECK_LIB(ltdl,lt_dlinit) |
| AC_CHECK_LIB(dl,dlopen) |
AC_CHECK_LIB(dl,dlopen) |
| dnl check for libffi 2.x |
dnl check for libffi 2.x |
| AC_CHECK_LIB(ffi,ffi_call) |
AC_CHECK_LIB(ffi,ffi_call) |
| fi |
fi |
| AC_REPLACE_FUNCS(memmove strtoul pow10 strerror strsignal atanh) |
AC_REPLACE_FUNCS(memmove strtoul pow10 strerror strsignal atanh) |
| AC_FUNC_FSEEKO |
AC_FUNC_FSEEKO |
| AC_CHECK_FUNCS(ftello dlopen sys_siglist getrusage) |
AC_CHECK_FUNCS(ftello dlopen sys_siglist getrusage nanosleep) |
| AC_CHECK_TYPES(stack_t,,,[#include <signal.h>]) |
AC_CHECK_TYPES(stack_t,,,[#include <signal.h>]) |
| AC_DECL_SYS_SIGLIST |
AC_DECL_SYS_SIGLIST |
| AC_CHECK_FUNC(getopt_long,[true],[AC_LIBOBJ(getopt) AC_LIBOBJ(getopt1)]) |
AC_CHECK_FUNC(getopt_long,[true],[AC_LIBOBJ(getopt) AC_LIBOBJ(getopt1)]) |
| AC_CHECK_FUNCS(mmap sysconf getpagesize) |
AC_CHECK_FUNCS(mmap sysconf getpagesize) |
| AM_PATH_LISPDIR |
AM_PATH_LISPDIR |
| |
|
| kernel_fi=kernl${wordsize}${bytesex}.fi |
kernel_fi=kernl${vwordsize}${bytesex}.fi |
| include_fi=kernl${wordsize}${bytesex}${EC}.fi |
include_fi=kernl${wordsize}${bytesex}${EC}.fi |
| AC_SUBST(kernel_fi) |
AC_SUBST(kernel_fi) |
| AC_SUBST(include_fi) |
AC_SUBST(include_fi) |
| machpc.fs |
machpc.fs |
| envos.fs |
envos.fs |
| engine/Makefile |
engine/Makefile |
| |
engine/libcc.h |
| doc/version.texi |
doc/version.texi |
| build-ec ]) |
build-ec ]) |
| AC_CONFIG_COMMANDS([stamp-h],[[echo timestamp > stamp-h |
AC_CONFIG_COMMANDS([stamp-h],[[echo timestamp > stamp-h |
| chmod +x gforthmi |
chmod +x gforthmi |
| chmod +x vmgen |
chmod +x vmgen |
| chmod +x build-ec |
chmod +x build-ec |
| test -d kernel||mkdir kernel]],[[]]) |
test -d kernel||mkdir kernel |
| |
$srcdir/mkinstalldirs include/gforth/$PACKAGE_VERSION |
| |
ln -sf ../../../engine/config.h ../../../engine/libcc.h include/gforth/$PACKAGE_VERSION]],[[PACKAGE_VERSION=$PACKAGE_VERSION]]) |
| AC_OUTPUT |
AC_OUTPUT |
| |
|