--- gforth/configure.in 2010/08/07 14:59:25 1.280 +++ gforth/configure.in 2011/11/14 22:33:22 1.290 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -#Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc. +#Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc. #This file is part of Gforth. @@ -20,12 +20,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.7.0-20100725],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth]) +AC_INIT([gforth],[0.7.9-20101227],[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="November 8, 2008" +UPDATED="December 27, 2010" AC_SUBST(UPDATED) AC_CONFIG_HEADERS(engine/config.h) @@ -108,6 +108,22 @@ else platform=${withval} fi]) +AC_ARG_WITH(cross, + AC_HELP_STRING([--with-cross=], + [ Build gforth using a cross compiler.]), +[if test "$withval" = "no"; then + echo "defining hosted system" +else + echo "defining cross compiled system (${withval})" + if test -f "arch/$host_cpu/${withval}/config.sh"; then + source "arch/$host_cpu/${withval}/config.sh" + fi + GCC_PATH=$(which $CC) + LIB_PATH=${GCC_PATH%/*/*} + GCC_LD="\$(LD)" + platform=${withval} +fi]) + #variables mentioned in INSTALL AC_ARG_VAR(CC, [The C compiler (must support GNU C 2.x).]) AC_ARG_VAR(FORTHSIZES, [Gforth command line options for the default stack and dictionary sizes (see INSTALL).]) @@ -242,14 +258,20 @@ case "$host_cpu" in ;; i486) machine=386 - CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -m486" + CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr" + CFLAGS_1="$CFLAGS" + CFLAGS="$CFLAGS -march=i486" + AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1 -m486") + AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1") ;; i*86) machine=386 CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr" CFLAGS_1="$CFLAGS" - CFLAGS="$CFLAGS -march=pentium" + CFLAGS="$CFLAGS -march=pentium -mtune=generic" + AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1 -march=pentium") AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1 -m486") + AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1") ;; x86_64) case $CC @@ -282,6 +304,7 @@ case "$host_cpu" in ;; mips*) machine=mips + AC_LIBOBJ(../arch/mips/check_prim) #dynamic native code has the following problems on MIPS: # #1) J/JAL seems relocatable, but is are only @@ -662,6 +685,12 @@ AC_TRY_COMPILE(,[int __attribute__((unus AC_DEFINE_UNQUOTED(MAYBE_UNUSED,$MAYBE_UNUSED,[attribute for possibly unused variables]) AC_MSG_RESULT($MAYBE_UNUSED) +# Try if GCC understands __thread +AC_MSG_CHECKING([whether gcc understands '__thread']) +AC_TRY_COMPILE(,[extern __thread int foo;],PER_THREAD='__thread',) +AC_DEFINE_UNQUOTED(PER_THREAD,$PER_THREAD,[storage class for thread-local variables]) +AC_MSG_RESULT($PER_THREAD) + #try if m4 understands -s AC_MSG_CHECKING([how to invoke m4]) if m4 -s /dev/null >/dev/null 2>&1; then @@ -880,6 +909,11 @@ AC_PROG_LN_S AC_PROG_INSTALL AC_CHECK_PROGS(TEXI2DVI,texi2dvi4a2ps texi2dvi) +dnl check for the presence of Emacs +AC_CHECK_PROGS(EMACS,emacs xemacs) +test -n "$EMACS" && gforth_elc=gforth.elc +AC_SUBST(gforth_elc) + dnl MacOS X has a libtool that does something else AC_CHECK_PROGS(GNU_LIBTOOL,"glibtool --tag=CC" libtool) @@ -910,7 +944,7 @@ if test -z "$FFI_H_NAME"; then AC_CHECK_HEADER(ffi/ffi.h,FFI_H_NAME=ffi/ffi.h,) fi AC_SUBST(FFI_H_NAME) -AC_CHECK_LIB(ffi,ffi_call) +AC_CHECK_LIB(ffi,ffi_call,LIBS="$LIBS") if test -n "$FFI_H_NAME" -a $ac_cv_lib_ffi_ffi_call = yes then LIBFFIFLAG="true" @@ -920,7 +954,7 @@ else fi #check for ffcall libraries #unfortunately, these four calls are separated out into a library each. -AC_CHECK_LIB(avcall,__builtin_avcall) +AC_CHECK_LIB(avcall,__builtin_avcall,LIBS="$LIBS") dnl AC_CHECK_LIB(callback,__vacall_r) dnl AC_CHECK_LIB(vacall,vacall) dnl AC_CHECK_LIB(trampoline,alloc_trampoline)