--- gforth/configure.in 2007/02/26 19:07:05 1.173 +++ gforth/configure.in 2007/04/01 21:30:26 1.181 @@ -21,7 +21,7 @@ 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-20060527],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth]) +AC_INIT([gforth],[0.6.9-20070401],[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. @@ -94,9 +94,21 @@ if test "$enable_ec" = "yes"; then echo "defining standalone system" AC_DEFINE(STANDALONE,,[Define if you want a Gforth without OS]) EC_MODE="true" + EC="-ec" + engine2="" + engine_fast2="" + no_dynamic="-DNO_DYNAMIC" + image_i="image.i" + signals_o="" else echo "defining hosted system" EC_MODE="false" + EC="" + engine2="engine2.o" + engine_fast2="engine-fast2.o" + no_dynamic="" + image_i="" + signals_o="signals.o" fi #variables mentioned in INSTALL @@ -117,6 +129,8 @@ AC_ARG_VAR(ac_cv_sizeof_uint128_t, [size 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(skipcode, [assembly code for skipping 16 bytes of code]) +AC_ARG_VAR(asmcomment, [assembler comment start string]) +AC_ARG_VAR(arm_cacheflush, [file containing ARM cacheflush function (without .c)]) #set up feature test macros, so the tests get them right: # turn on all POSIX, SUSv3, and GNU features if available @@ -143,16 +157,22 @@ test "$GCC" = "yes" || AC_MSG_ERROR(Gfor AC_SUBST(CC) AC_SUBST(DEBUGFLAG) +AC_SUBST(EC) AC_SUBST(EC_MODE) - +AC_SUBST(engine2) +AC_SUBST(engine_fast2) +AC_SUBST(no_dynamic) +AC_SUBST(image_i) +AC_SUBST(signals_o) + +#this is used to disable some (not generally essential) part of the +#Makefile that some makes don't grok. It would be better to test for +#this specific Makefile feature than the make version. AC_MSG_CHECKING(make type) -make_type=`make -v 2>&1|grep 'ake'|sed 's/ake .*/ake/'` - +make_type=`make -n -v 2>&1|grep 'ake'|sed 's/ake .*/ake/'` GNUMAKE='#' test "$make_type" = "GNU Make" && GNUMAKE='' - AC_MSG_RESULT($make_type) - AC_SUBST(GNUMAKE) AC_MSG_CHECKING([whether the linker accepts -export-dynamic]) @@ -171,10 +191,16 @@ case "$host_cpu" in arm*) machine=arm CFLAGS="$CFLAGS -fomit-frame-pointer" - if test -z $no_dynamic_default; then + if test -z $arm_cacheflush; then no_dynamic_default=1 + arm_cacheflush=arch/arm/cacheflush0 AC_MSG_WARN([No I-cache flush code known, disabling dynamic native code generation]) fi + AC_LIBSOURCES([../arch/arm/cacheflush0, ../arch/arm/cacheflush1, ../arch/arm/cacheflush2]) + AC_LIBOBJ(../$arm_cacheflush) + #longer skipcodes lead to problems on ARM, and it uses + #only 4-byte alignment anyway + test "$skipcode" || skipcode="nop" ;; hppa*) machine=hppa @@ -635,6 +661,24 @@ else AC_DEFINE_UNQUOTED(SKIP16,asm("$skipcode"),statement for skipping 16 bytes) fi +AC_MSG_CHECKING([if and how we can do comments in asm statements]) +#the point here is to get asm statements that look different to +#gcc's "optimizer" +if test -z "$asmcomment"; then + asmcomment=no + CFLAGS_1="$CFLAGS" + CFLAGS="$CFLAGS $ENGINE_FLAGS" + for i in '"# "' '"! "' '"; "'; do + AC_TRY_COMPILE(,[asm($i"fluffystunk");],asmcomment=$i; break,) + done + CFLAGS=$CFLAGS_1 +fi +AC_MSG_RESULT($asmcomment) +if test "$asmcomment" != no +then + AC_DEFINE_UNQUOTED(ASMCOMMENT,$asmcomment,[assembler comment start string]) +fi + test "$no_dynamic_default" || no_dynamic_default=0 AC_DEFINE_UNQUOTED(NO_DYNAMIC_DEFAULT,$no_dynamic_default,default value for no_dynamic) @@ -693,7 +737,9 @@ AC_CHECK_FUNCS(mmap sysconf getpagesize) AM_PATH_LISPDIR kernel_fi=kernl${wordsize}${bytesex}.fi +include_fi=kernl${wordsize}${bytesex}${EC}.fi AC_SUBST(kernel_fi) +AC_SUBST(include_fi) #this breaks bindists #dnl replace srource directory by absolute value