--- gforth/configure.in 2012/03/21 00:53:06 1.302 +++ gforth/configure.in 2012/07/19 23:32:25 1.311 @@ -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.9-20120317],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth]) +AC_INIT([gforth],[0.7.9-20120627],[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="March 17, 2012" +UPDATED="June 27, 2012" AC_SUBST(UPDATED) AC_CONFIG_HEADERS(engine/config.h) @@ -110,6 +110,20 @@ else platform=${withval} fi]) +AC_ARG_ENABLE(lib, + AC_HELP_STRING([--enable-lib], + [ Compile Gforth as shared library (default disabled).]), + ,enable_lib=no) +if test "$enable_lib" != "no"; then + AC_DEFINE(HAS_LIB,,[Define if you want to build as shared library]) + libengines=libgforths + libinstall=libinstall + LIB_VERSION=0:8:0 +fi +AC_SUBST(libengines) +AC_SUBST(libinstall) +AC_SUBST(LIB_VERSION) + AC_ARG_WITH(cross, AC_HELP_STRING([--with-cross=], [ Build gforth using a cross compiler.]), @@ -127,6 +141,16 @@ else NO_CROSS="#" fi]) +AC_ARG_WITH(arch, + AC_HELP_STRING([--with-arch=], + [ Build gforth binaries with postfix]), +[if test "$withval" = "no"; then + ARCH="" +else + ARCH=-${withval} +fi]) +AC_SUBST(ARCH) + #variables mentioned in INSTALL AC_ARG_VAR(SH, [The shell]) AC_ARG_VAR(CC, [The C compiler (must support GNU C 2.x).]) @@ -203,6 +227,7 @@ AC_SUBST(engine_fast2) AC_SUBST(no_dynamic) AC_SUBST(image_i) AC_SUBST(signals_o) +AC_SUBST(mi_prefix) #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 @@ -214,14 +239,18 @@ test "$make_type" = "GNU Make" && GNUMAK AC_MSG_RESULT($make_type) AC_SUBST(GNUMAKE) -AC_MSG_CHECKING([whether the linker accepts -export-dynamic]) -OLDLDFLAGS=$LDFLAGS -LDFLAGS="$LDFLAGS -export-dynamic" -dnl AC_TRY_LINK gives false positive on rs6000-ibm-aix4.2.1.0 -dnl AC_TRY_LINK(,,ac_export_dynamic=yes,ac_export_dynamic=no) -AC_TRY_RUN(main(){exit(0);},ac_export_dynamic=yes,ac_export_dynamic=no,ac_export_dynamic=no) -test $ac_export_dynamic = yes|| LDFLAGS=$OLDLDFLAGS -AC_MSG_RESULT($ac_export_dynamic) +if test "$ac_export_dynamic" != yes; then + AC_MSG_CHECKING([whether the linker accepts -export-dynamic]) + OLDLDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -export-dynamic" + dnl AC_TRY_LINK gives false positive on rs6000-ibm-aix4.2.1.0 + dnl AC_TRY_LINK(,,ac_export_dynamic=yes,ac_export_dynamic=no) + AC_TRY_RUN(main(){exit(0);},ac_export_dynamic=yes,ac_export_dynamic=no,ac_export_dynamic=no) + test $ac_export_dynamic = yes|| LDFLAGS=$OLDLDFLAGS + AC_MSG_RESULT($ac_export_dynamic) +else + LDFLAGS="$LDFLAGS -export-dynamic" +fi #terminology is a bit unusual here: The host is the system on which #gforth will run; the system on which configure will run is the `build' @@ -695,10 +724,12 @@ AC_DEFINE_UNQUOTED(MAYBE_UNUSED,$MAYBE_U 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_CACHE_CHECK([whether gcc understands '__thread'], [ac_cv_thread], + [AC_TRY_COMPILE(,[extern __thread int foo;], + [ac_cv_thread=yes], + [ac_cv_thread=no])]) +test x$ac_cv_thread = xyes && 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]) @@ -915,6 +946,13 @@ dnl This check is just for making later dnl using sin here is no good idea since it is built-into gcc and typechecked AC_CHECK_LIB(m,asin) AC_CHECK_LIB(ltdl,lt_dlinit) +dnl ,LIB_SUFFIX=.la,LIB_SUFFIX=.so) +if test "x$ac_cv_lib_ltdl_lt_dlinit" = xyes; then + LIB_SUFFIX=.la +else + LIB_SUFFIX=.so +fi +AC_SUBST(LIB_SUFFIX) AC_CHECK_LIB(rt,clock_gettime) if test -n "$GNU_LIBTOOL" -a $ac_cv_lib_ltdl_lt_dlinit = yes; then @@ -1001,7 +1039,7 @@ if test -z "$GFORTH"; then else GFORTH_FI=`cd / && $GFORTH --debug -e bye 2>&1 |grep "Opened image file: "|sed 's/Opened image file: //'` PREFORTH="$GFORTH -i $GFORTH_FI" ; - KERNLX_FI1=`echo $GFORTH_FI | sed -e s/lib/share/g -e s/gforth.fi/kernl*.fi/g` + KERNLX_FI1=`echo $GFORTH_FI | sed -e s/lib[64]*/share/g -e s/gforth.fi/kernl*.fi/g` KERNLX_FI2=`echo $GFORTH_FI | sed -e s/gforth.fi/kernl*.fi/g` test -f $KERNLX_FI1 && KERNLX_FI=$KERNLX_FI1 test -f $KERNLX_FI2 && KERNLX_FI=$KERNLX_FI2 @@ -1027,6 +1065,7 @@ vmgen machpc.fs envos.fs preforth +libforth gforthker engine/Makefile engine/libcc.h @@ -1037,12 +1076,14 @@ chmod +x gforthmi chmod +x vmgen chmod +x build-ec chmod +x preforth +chmod +x libforth chmod +x gforthker test -d kernel||mkdir kernel if test $srcdir != "."; then ln -sf $srcdir/gforth.el .; fi -$srcdir/mkinstalldirs include/gforth/$PACKAGE_VERSION +$srcdir/mkinstalldirs include/gforth$ARCH/$PACKAGE_VERSION $srcdir/mkinstalldirs arch/$machine -ln -sf ../../../engine/config.h ../../../engine/libcc.h include/gforth/$PACKAGE_VERSION]], +ln -sf ../../../engine/config.h ../../../engine/libcc.h include/gforth$ARCH/$PACKAGE_VERSION]], [PACKAGE_VERSION=$PACKAGE_VERSION - machine=$machine]) + machine=$machine + ARCH=$ARCH]) AC_OUTPUT