--- gforth/configure.in 2002/08/16 09:43:48 1.84 +++ gforth/configure.in 2002/11/24 21:20:32 1.89 @@ -22,11 +22,11 @@ AC_INIT(engine/engine.c) dnl We use some automake macros here, dnl but don't use automake for creating Makefile.in -AM_INIT_AUTOMAKE(gforth,0.5.9-20010501) +AM_INIT_AUTOMAKE(gforth,0.5.9-20020901) #snapshots have numbers major.minor.release-YYYYMMDD #note that lexicographic ordering bust be heeded. #I.e., 0.4.1-YYYYMMDD must not exist before 0.4.1! -UPDATED="15 August 2002" +UPDATED="1 September 2002" AC_SUBST(UPDATED) AM_CONFIG_HEADER(engine/config.h) #AM_CYGWIN32 @@ -36,7 +36,7 @@ AC_ARG_ENABLE(force-reg, 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_REG)) +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_WITH(debug, [ --with-debug specifies option -g to compile with debug info (default) @@ -117,7 +117,7 @@ if test "$ac_cv_int_type_cell" != int; t echo "Since you don't have a proper C on this machine, that's one more reason" echo "to use Forth;-)" fi -AC_DEFINE_UNQUOTED(CELL_TYPE,$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_cv_int_type_double_cell=none case `expr 2 '*' "$ac_cv_sizeof_char_p"` in @@ -139,10 +139,10 @@ if test "$ac_cv_int_type_double_cell" = echo "If you find this unacceptable, ask the GCC maintainers to provide proper" echo 'long longs for your machine (the GCC manual states that they \"are twice as' echo "long as \`long int\'\")." - LIBOBJS="$LIBOBJS dblsub.o" - AC_DEFINE(BUGGY_LONG_LONG) + AC_LIBOBJ(dblsub) + AC_DEFINE(BUGGY_LONG_LONG,,[define this if there is no working DOUBLE_CELL_TYPE on your machine]) else - AC_DEFINE_UNQUOTED(DOUBLE_CELL_TYPE,$ac_cv_int_type_double_cell) + AC_DEFINE_UNQUOTED(DOUBLE_CELL_TYPE,$ac_cv_int_type_double_cell,[an integer type that is twice as long as a pointer]) fi AC_MSG_CHECKING([whether the linker accepts -export-dynamic]) @@ -161,7 +161,7 @@ case "$host_cpu" in hppa*) machine=hppa $srcdir/mkinstalldirs arch/hppa - LIBOBJS="$LIBOBJS ../arch/hppa/cache.o" + AC_LIBOBJ(../arch/hppa/cache) LDFLAGS="$LDFLAGS -Xlinker -N" LIBS="$LIBS -L/lib/pa1.1/" ;; @@ -180,7 +180,7 @@ case "$host_cpu" in machine=386 CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -fforce-mem" CFLAGS_1="$CFLAGS" - CFLAGS="$CFLAGS -mpentium" + CFLAGS="$CFLAGS -march=pentium" AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1 -m486") ;; ia64*) @@ -191,7 +191,7 @@ case "$host_cpu" in CFLAGS="$CFLAGS -fomit-frame-pointer" if test "$host_os" = "nextstep3" then - LIBOBJS="$LIBOBJS termios.o" + AC_LIBOBJ(termios) fi ;; mips*) @@ -205,7 +205,7 @@ case "$host_cpu" in AC_MSG_RESULT($ac_link_mips_t) fixme #dynamically generated code should be in the same 256MB # region as the text segment; no indirect threading necessary - test $ac_link_mips_t = yes||(echo cannot link text and data into same 256M region, using indirect threading; AC_DEFINE(INDIRECT_THREADED)) + test $ac_link_mips_t = yes||(echo cannot link text and data into same 256M region, using indirect threading; AC_DEFINE(INDIRECT_THREADED,,[Define if you want to force an indirect threaded code implementation])) AC_MSG_CHECKING([whether the linker accepts -D]) OLDLDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Xlinker -D -Xlinker 10400000" @@ -221,7 +221,7 @@ case "$host_cpu" in power*|rs6000) machine=power $srcdir/mkinstalldirs arch/power - AC_CHECK_FUNC(_sync_cache_range,true,LIBOBJS="$LIBOBJS ../arch/power/_sync_cache_range.o") + AC_CHECK_FUNC(_sync_cache_range,true,AC_LIBOBJ(../arch/power/_sync_cache_range)) ;; *) echo "Using a generic machine description." @@ -233,6 +233,12 @@ esac AC_SUBST(host) AC_SUBST(ENGINE_FLAGS) +# Try if GCC understands -fno-cross-jump + +CFLAGS_1="$CFLAGS" +CFLAGS="$CFLAGS -fno-cross-jump" +AC_TRY_COMPILE(,,,CFLAGS="$CFLAGS_1") + AC_CHECK_PROG(asm_fs,asm.fs,arch/$machine/asm.fs,,$srcdir/arch/$machine) AC_SUBST(asm_fs) @@ -242,12 +248,16 @@ AC_SUBST(disasm_fs) case "$host_os" in *win32) EXE=".exe" + DIRSEP="\\" ;; *) EXE="" + DIRSEP="/" ;; esac AC_SUBST(EXE) +AC_SUBST(DIRSEP) +AC_DEFINE_UNQUOTED(DIRSEP,'$DIRSEP',[a directory separator character]) dnl Now a little support for DOS/DJGCC AC_SUBST(GFORTH_EXE) @@ -261,14 +271,14 @@ GFORTHDITC_EXE="" PATHSEP=":" AC_SUBST(PATHSEP) -AC_DEFINE_UNQUOTED(PATHSEP,'$PATHSEP') +AC_DEFINE_UNQUOTED(PATHSEP,'$PATHSEP',[a path separator character]) AC_SUBST(FORTHSIZES) if test "$PEEPHOLE" = "yes" then PEEPHOLEFLAG="true" - AC_DEFINE(HAS_PEEPHOLE) + AC_DEFINE(HAS_PEEPHOLE,,[Define if you want to use peephole optimization]) else PEEPHOLEFLAG="false" fi @@ -313,14 +323,14 @@ fi AC_REPLACE_FUNCS(memmove strtoul pow10 strerror strsignal atanh) AC_CHECK_FUNCS(dlopen sys_siglist getrusage) AC_DECL_SYS_SIGLIST -AC_CHECK_FUNC(getopt_long,true,LIBOBJS="$LIBOBJS getopt.o getopt1.o") +AC_CHECK_FUNC(getopt_long,true,AC_LIBOBJ(getopt.$ac_objext getopt1)) AC_CHECK_FUNCS(rint expm1 log1p) AC_REPLACE_FUNCS(ecvt) dnl No check for select, because our replacement is no good under dnl anything but DOS AC_CHECK_HEADERS(sys/mman.h fnmatch.h) AC_FUNC_FNMATCH -test $ac_cv_func_fnmatch_works = yes || LIBOBJS="$LIBOBJS fnmatch.o" +test $ac_cv_func_fnmatch_works = yes || AC_LIBOBJ(fnmatch) AC_CHECK_FUNCS(mmap sysconf getpagesize) AM_PATH_LISPDIR