summaryrefslogtreecommitdiffstats
path: root/tclconfig/tcl.m4
diff options
context:
space:
mode:
Diffstat (limited to 'tclconfig/tcl.m4')
-rw-r--r--tclconfig/tcl.m41008
1 files changed, 771 insertions, 237 deletions
diff --git a/tclconfig/tcl.m4 b/tclconfig/tcl.m4
index d2421cf..70d9461 100644
--- a/tclconfig/tcl.m4
+++ b/tclconfig/tcl.m4
@@ -4,10 +4,14 @@
# a Tcl extension.
#
# Copyright (c) 1999-2000 Ajuba Solutions.
-# Copyright (c) 2002 ActiveState Corporation.
+# Copyright (c) 2002-2003 ActiveState Corporation.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# RCS: @(#) $Id: tcl.m4,v 1.2 2004/10/09 22:56:11 hobbs2 Exp $
+
+AC_PREREQ(2.50)
#------------------------------------------------------------------------
# TEA_PATH_TCLCONFIG --
@@ -29,10 +33,8 @@
#------------------------------------------------------------------------
AC_DEFUN(TEA_PATH_TCLCONFIG, [
- if test x"${TEA_INITED}" = x ; then
- # Can't refer to exact macro name or it will be substituted
- AC_MSG_ERROR([Must call TEA INIT before PATH_TCLCONFIG])
- fi
+ dnl Make sure we are initialized
+ AC_REQUIRE([TEA_INIT])
#
# Ok, lets find the tcl configuration
# First, look for one uninstalled.
@@ -74,6 +76,7 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
# check in a few common install locations
if test x"${ac_cv_c_tclconfig}" = x ; then
for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+ `ls -d ${prefix}/lib 2>/dev/null` \
`ls -d /usr/local/lib 2>/dev/null` \
`ls -d /usr/contrib/lib 2>/dev/null` \
`ls -d /usr/lib 2>/dev/null` \
@@ -169,6 +172,7 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
# check in a few common install locations
if test x"${ac_cv_c_tkconfig}" = x ; then
for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+ `ls -d ${prefix}/lib 2>/dev/null` \
`ls -d /usr/local/lib 2>/dev/null` \
`ls -d /usr/contrib/lib 2>/dev/null` \
`ls -d /usr/lib 2>/dev/null` \
@@ -401,6 +405,9 @@ AC_DEFUN(TEA_ENABLE_SHARED, [
#
# Specify if thread support should be enabled. If "yes" is
# specified as an arg (optional), threads are enabled by default.
+# TCL_THREADS is checked so that if you are compiling an extension
+# against a threaded core, your extension must be compiled threaded
+# as well.
#
# Arguments:
# none
@@ -423,7 +430,7 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
AC_ARG_ENABLE(threads, [ --enable-threads build with threads],
[tcl_ok=$enableval], [tcl_ok=$1])
- if test "$tcl_ok" = "yes"; then
+ if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
TCL_THREADS=1
if test "${TEA_PLATFORM}" != "windows" ; then
@@ -468,10 +475,15 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
fi
fi
fi
-
+
# Does the pthread-implementation provide
# 'pthread_attr_setstacksize' ?
+
+ ac_saved_libs=$LIBS
+ LIBS="$LIBS $THREADS_LIBS"
AC_CHECK_FUNCS(pthread_attr_setstacksize)
+ LIBS=$ac_saved_libs
+ AC_CHECK_FUNCS(readdir_r)
fi
else
TCL_THREADS=0
@@ -480,6 +492,7 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
AC_MSG_CHECKING([for building with threads])
if test "${TCL_THREADS}" = "1"; then
AC_DEFINE(TCL_THREADS)
+ #LIBS="$LIBS $THREADS_LIBS"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no (default)])
@@ -490,7 +503,7 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
*THREADS=1*)
if test "${TCL_THREADS}" = "0"; then
AC_MSG_WARN([
- Building ${PACKAGE} without threads enabled, but building against a Tcl
+ Building ${PACKAGE_NAME} without threads enabled, but building against a Tcl
that IS thread-enabled.])
fi
;;
@@ -535,10 +548,8 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
#------------------------------------------------------------------------
AC_DEFUN(TEA_ENABLE_SYMBOLS, [
- if test x"${TEA_INITED}" = x ; then
- # Can't refer to exact macro name or it will be substituted
- AC_MSG_ERROR([Must call TEA INIT before ENABLE_SYMBOLS])
- fi
+ dnl Make sure we are initialized
+ AC_REQUIRE([TEA_CONFIG_CFLAGS])
if test "${TEA_PLATFORM}" = "windows" ; then
tcl_dbgx=d
@@ -549,20 +560,23 @@ AC_DEFUN(TEA_ENABLE_SYMBOLS, [
AC_MSG_CHECKING([for build with symbols])
AC_ARG_ENABLE(symbols, [ --enable-symbols build with debugging symbols [--disable-symbols]], [tcl_ok=$enableval], [tcl_ok=no])
if test "$tcl_ok" = "no"; then
- CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
- LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
+ CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+ LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
DBGX=""
TCL_DBGX=""
AC_MSG_RESULT([no])
else
- CFLAGS_DEFAULT='$(CFLAGS_DEBUG)'
- LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)'
+ CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+ LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
DBGX=${tcl_dbgx}
TCL_DBGX=${tcl_dbgx}
if test "$tcl_ok" = "yes"; then
AC_MSG_RESULT([yes (standard debugging)])
fi
fi
+ if test "${TEA_PLATFORM}" != "windows" ; then
+ LDFLAGS_DEFAULT="${LDFLAGS}"
+ fi
AC_SUBST(TCL_DBGX)
AC_SUBST(CFLAGS_DEFAULT)
@@ -672,15 +686,17 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
# TCL_LIB_FILE - Name of the file that contains the Tcl library, such
# as libtcl7.8.so or libtcl7.8.a.
# TCL_LIB_SUFFIX -Specifies everything that comes after the "libtcl"
-# in the shared library name, using the $VERSION variable
-# to put the version in the right place. This is used
-# by platforms that need non-standard library names.
-# Examples: ${VERSION}.so.1.1 on NetBSD, since it needs
-# to have a version after the .so, and ${VERSION}.a
-# on AIX, since the Tcl shared library needs to have
-# a .a extension whereas shared objects for loadable
-# extensions have a .so extension. Defaults to
-# ${VERSION}${SHLIB_SUFFIX}.
+# in the shared library name, using the
+# ${PACKAGE_VERSION} variable to put the version in
+# the right place. This is used by platforms that
+# need non-standard library names.
+# Examples: ${PACKAGE_VERSION}.so.1.1 on NetBSD,
+# since it needs to have a version after the .so, and
+# ${PACKAGE_VERSION}.a on AIX, since the Tcl shared
+# library needs to have a .a extension whereas shared
+# objects for loadable extensions have a .so
+# extension. Defaults to
+# ${PACKAGE_VERSION}${SHLIB_SUFFIX}.
# TCL_NEEDS_EXP_FILE -
# 1 means that an export file is needed to link to a
# shared library.
@@ -695,8 +711,7 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
# Flags used when running the compiler in debug mode
# CFLAGS_OPTIMIZE -
# Flags used when running the compiler in optimize mode
-# EXTRA_CFLAGS -
-# Extra CFLAGS to pass to the compiler
+# CFLAGS - We add CFLAGS to pass to the compiler
#
# Subst's the following vars:
# DL_LIBS
@@ -707,16 +722,14 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
# STLIB_LD
# SHLIB_LD
# SHLIB_CFLAGS
-# SHLIB_LDFLAGS
+# SHLIB_LD_FLAGS
# LDFLAGS_DEBUG
# LDFLAGS_OPTIMIZE
#--------------------------------------------------------------------
AC_DEFUN(TEA_CONFIG_CFLAGS, [
- if test x"${TEA_INITED}" = x ; then
- # Can't refer to exact macro name or it will be substituted
- AC_MSG_ERROR([Must call TEA INIT before CONFIG_CFLAGS])
- fi
+ dnl Make sure we are initialized
+ AC_REQUIRE([TEA_INIT])
# Step 0: Enable 64 bit support?
@@ -735,6 +748,14 @@ AC_DEFUN(TEA_CONFIG_CFLAGS, [
do64bit=yes
fi
+ # Step 0.c: Cross-compiling options for Windows/CE builds?
+
+ if test "${TEA_PLATFORM}" = "windows" ; then
+ AC_MSG_CHECKING([if Windows/CE build is requested])
+ AC_ARG_ENABLE(wince,[ --enable-wince enable Win/CE support (where applicable)], [doWince=$enableval], [doWince=no])
+ AC_MSG_RESULT($doWince)
+ fi
+
# Step 1: set the variable "system" to hold the name and version number
# for the system. This can usually be done via the "uname" command, but
# there are a few systems, like Next, where this doesn't work.
@@ -770,18 +791,21 @@ AC_DEFUN(TEA_CONFIG_CFLAGS, [
AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)
# Step 3: set configuration options based on system name and version.
+ # This is similar to Tcl's unix/tcl.m4 except that we've added a
+ # "windows" case and CC_SEARCH_FLAGS becomes LD_SEARCH_FLAGS for us
+ # (and we have no CC_SEARCH_FLAGS).
do64bit_ok=no
- EXTRA_CFLAGS=""
+ LDFLAGS_ORIG="$LDFLAGS"
TCL_EXPORT_FILE_SUFFIX=""
UNSHARED_LIB_SUFFIX=""
- TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`'
- ECHO_VERSION='`echo ${VERSION}`'
+ TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
+ ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
TCL_LIB_VERSIONS_OK=ok
CFLAGS_DEBUG=-g
CFLAGS_OPTIMIZE=-O
if test "$GCC" = "yes" ; then
- CFLAGS_WARNING="-Wall -Wconversion -Wno-implicit-int"
+ CFLAGS_WARNING="-Wall -Wno-implicit-int -fno-strict-aliasing"
else
CFLAGS_WARNING=""
fi
@@ -792,6 +816,7 @@ dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixe
dnl AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_PROG(AR, ar, ar)
STLIB_LD='${AR} cr'
+ LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
case $system in
windows)
# This is a 2-stage check to make sure we have the 64-bit SDK
@@ -811,53 +836,141 @@ dnl AC_CHECK_TOOL(AR, ar, :)
fi
fi
- if test "${SHARED_BUILD}" = "0" ; then
- runtime=-MT
- else
- runtime=-MD
+ if test "$doWince" != "no" ; then
+ if test "$do64bit" = "yes" ; then
+ AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible])
+ fi
+ if test "$GCC" = "yes" ; then
+ AC_MSG_ERROR([Windows/CE and GCC builds incompatible])
+ fi
+ TEA_PATH_CELIB
+ # set defaults
+ # Currently Tcl requires 300+
+ CEVERSION=300; # could be 211 300 301 ...
+ TARGETCPU=ARM; # could be ARM MIPS SH3 X86 ...
+ PLATFORM="Pocket PC 2002"
+ if test "$doWince" = "yes"; then
+ doWince="300,ARM,ARM,Pocket PC 2002"
+ fi
+ eval `echo $doWince | awk -F "," '{ \
+ if (length([$]1)) { printf "CEVERSION=\"%s\"\n", [$]1; \
+ if ([$]1 >= 400) { printf "PLATFORM=\"Pocket PC 2003\"\n" } }; \
+ if (length([$]2)) { printf "TARGETCPU=\"%s\"\n", toupper([$]2) }; \
+ if (length([$]3)) { printf "ARCH=\"%s\"\n", toupper([$]3) }; \
+ if (length([$]4)) { printf "PLATFORM=\"%s\"\n", [$]4 }; \
+ }'`
+ OSVERSION=WCE$CEVERSION;
+ if test "x${ARCH}" = "x" ; then
+ ARCH=$TARGETCPU; # could be ARM MIPS SH3 X86 X86EM ...
+ fi
+ if test "x${WCEROOT}" = "x" ; then
+ WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0"
+ if test ! -d "${WCEROOT}" ; then
+ WCEROOT="C:/Program Files/Microsoft eMbedded Tools"
+ fi
+ fi
+ if test "x${SDKROOT}" = "x" ; then
+ SDKROOT="C:/Program Files/Windows CE Tools"
+ if test ! -d "${SDKROOT}" ; then
+ SDKROOT="C:/Windows CE Tools"
+ fi
+ fi
+ # In order to work in the tortured autoconf environment,
+ # we need to ensure that this path has no spaces
+ WCEROOT=`cygpath -w -s "$WCEROOT" | sed -e 's!\\\!/!g'`
+ SDKROOT=`cygpath -w -s "$SDKROOT" | sed -e 's!\\\!/!g'`
+ CELIB_DIR=`cygpath -w -s "$CELIB_DIR" | sed -e 's!\\\!/!g'`
+ if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
+ -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
+ AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]])
+ doWince="no"
+ else
+ CEINCLUDE=`cygpath -w -s "${SDKROOT}/${OSVERSION}/${PLATFORM}/include" | sed -e 's!\\\!/!g'`
+ if test -d "${CEINCLUDE}/${TARGETCPU}" ; then
+ CEINCLUDE="${CEINCLUDE}/${TARGETCPU}"
+ fi
+ CELIBPATH=`cygpath -w -s "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" | sed -e 's!\\\!/!g'`
+ fi
fi
- if test "$do64bit" = "yes" ; then
- # All this magic is necessary for the Win64 SDK RC1 - hobbs
- export CC="${MSSDK}/Bin/Win64/cl.exe \
- -I${MSSDK}/Include/prerelease -I${MSSDK}/Include/Win64/crt \
- -I${MSSDK}/Include"
- export RC="${MSSDK}/bin/rc.exe"
- export lflags="-MACHINE:IA64 -LIBPATH:${MSSDK}/Lib/IA64 \
- -LIBPATH:${MSSDK}/Lib/Prerelease/IA64"
- export STLIB_LD="${MSSDK}/bin/win64/lib.exe -nologo ${lflags}"
- export LINKBIN="${MSSDK}/bin/win64/link.exe ${lflags}"
- CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
- CFLAGS_OPTIMIZE="-nologo -O2 -Gs -W2 ${runtime}"
- else
- RC="rc"
- STLIB_LD="lib -nologo"
- LINKBIN="link -link50compat"
- CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
- CFLAGS_OPTIMIZE="-nologo -O2 -Gs -GD -W2 ${runtime}"
+ if test "$GCC" != "yes" ; then
+ if test "${SHARED_BUILD}" = "0" ; then
+ runtime=-MT
+ else
+ runtime=-MD
+ fi
+
+ if test "$do64bit" = "yes" ; then
+ # All this magic is necessary for the Win64 SDK RC1 - hobbs
+ export CC="${MSSDK}/Bin/Win64/cl.exe \
+ -I${MSSDK}/Include/prerelease \
+ -I${MSSDK}/Include/Win64/crt \
+ -I${MSSDK}/Include"
+ export RC="${MSSDK}/bin/rc.exe"
+ export lflags="-MACHINE:IA64 -LIBPATH:${MSSDK}/Lib/IA64 \
+ -LIBPATH:${MSSDK}/Lib/Prerelease/IA64"
+ export STLIB_LD="${MSSDK}/bin/win64/lib.exe -nologo ${lflags}"
+ export LINKBIN="${MSSDK}/bin/win64/link.exe ${lflags}"
+ CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
+ CFLAGS_OPTIMIZE="-nologo -O2 -Gs -W2 ${runtime}"
+ elif test "$doWince" != "no" ; then
+ CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"
+ if test "${TARGETCPU}" = "X86"; then
+ CC="${CEBINROOT}/cl.exe"
+ else
+ CC="${CEBINROOT}/cl${ARCH}.exe"
+ fi
+ CC="${CC} -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
+ RC="${WCEROOT}/Common/EVC/bin/rc.exe"
+ arch=`echo ${ARCH} | awk '{print tolower([$]0)}'`
+ defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _DLL _WINDOWS"
+ for i in $defs ; do
+ AC_DEFINE_UNQUOTED($i)
+ done
+ AC_DEFINE_UNQUOTED(_WIN32_WCE, $CEVERSION)
+ AC_DEFINE_UNQUOTED(UNDER_CE, $CEVERSION)
+ CFLAGS_DEBUG="-nologo -Zi -Od"
+ CFLAGS_OPTIMIZE="-nologo -Ox"
+ lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
+ lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion}"
+ STLIB_LD="${CEBINROOT}/lib.exe -nologo ${lflags}"
+ LINKBIN="${CEBINROOT}/link.exe ${lflags}"
+ AC_SUBST(CELIB_DIR)
+ else
+ RC="rc"
+ STLIB_LD="lib -nologo"
+ LINKBIN="link -link50compat"
+ CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
+ CFLAGS_OPTIMIZE="-nologo -O2 -Gs -GD -W2 ${runtime}"
+ fi
fi
- if test "$MINGW32" = "yes"; then
+ if test "$GCC" = "yes"; then
# mingw gcc mode
+ RC="windres"
CFLAGS_DEBUG="-g"
CFLAGS_OPTIMIZE="-O2"
- SHLIB_LD="gcc -shared"
- STLIB_LD='${AR} cr'
+ SHLIB_LD="$CC -shared"
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}"
LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}"
else
SHLIB_LD="${LINKBIN} -dll -nologo"
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.lib'
- EXTRA_CFLAGS="-YX"
+ CFLAGS="$CFLAGS -YX"
+ PATHTYPE=-w
# For information on what debugtype is most useful, see:
# http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
# This essentially turns it all on.
LDFLAGS_DEBUG="-debug:full -debugtype:both -warn:2"
LDFLAGS_OPTIMIZE="-release"
- LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}"
- LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}"
- PATHTYPE=-w
+ if test "$doWince" != "no" ; then
+ LDFLAGS_CONSOLE="-link ${lflags}"
+ LDFLAGS_WINDOW=${LDFLAGS_CONSOLE}
+ else
+ LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}"
+ LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}"
+ fi
fi
SHLIB_LD_LIBS='${LIBS}'
@@ -880,6 +993,31 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_CFLAGS=""
SHLIB_SUFFIX=".so"
SHLIB_LD_LIBS='${LIBS}'
+
+ DL_OBJS="tclLoadDl.o"
+ LD_LIBRARY_PATH_VAR="LIBPATH"
+
+ # AIX v<=4.1 has some different flags than 4.2+
+ if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
+ #LIBOBJS="$LIBOBJS tclLoadAix.o"
+ AC_LIBOBJ([tclLoadAix])
+ DL_LIBS="-lld"
+ fi
+
+ # Check to enable 64-bit flags for compiler/linker on AIX 4+
+ if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then
+ if test "$GCC" = "yes" ; then
+ AC_MSG_WARN("64bit mode not supported with GCC on $system")
+ else
+ do64bit_ok=yes
+ CFLAGS="$CFLAGS -q64"
+ LDFLAGS="$LDFLAGS -q64"
+ RANLIB="${RANLIB} -X64"
+ AR="${AR} -X64"
+ SHLIB_LD_FLAGS="-b64"
+ fi
+ fi
+
if test "`uname -m`" = "ia64" ; then
# AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC
SHLIB_LD="/usr/ccs/bin/ld -G -z text"
@@ -891,19 +1029,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
LD_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
fi
else
- SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
+ SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry ${SHLIB_LD_FLAGS}"
DL_LIBS="-ldl"
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
TCL_NEEDS_EXP_FILE=1
- TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.exp'
- fi
- DL_OBJS="tclLoadDl.o"
- LDFLAGS=""
-
- # AIX v<=4.1 has some different flags than 4.2+
- if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
- LIBOBJS="$LIBOBJS tclLoadAix.o"
- DL_LIBS="-lld"
+ TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}\$\{DBGX\}.exp'
fi
# On AIX <=v4 systems, libbsd.a has to be linked in to support
@@ -923,20 +1053,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
MATH_LIBS="$MATH_LIBS -lbsd"
AC_DEFINE(USE_DELTA_FOR_TZ)
fi
-
- # Check to enable 64-bit flags for compiler/linker on AIX 4+
- if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then
- if test "$GCC" = "yes" ; then
- AC_MSG_WARN("64bit mode not supported with GCC on $system")
- else
- do64bit_ok=yes
- EXTRA_CFLAGS="-q64"
- LDFLAGS="-q64"
- RANLIB="${RANLIB} -X64"
- AR="${AR} -X64"
- SHLIB_LDFLAGS="-b64"
- fi
- fi
+ ;;
+ BeOS*)
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD="${CC} -nostart"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
;;
BSD/OS-2.1*|BSD/OS-3*)
SHLIB_CFLAGS=""
@@ -945,7 +1069,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
BSD/OS-4.*)
@@ -955,7 +1078,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS="-export-dynamic"
+ LDFLAGS="$LDFLAGS -export-dynamic"
LD_SEARCH_FLAGS=""
;;
dgux*)
@@ -965,7 +1088,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
HP-UX-*.11.*)
@@ -980,23 +1102,29 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_LD_LIBS='${LIBS}'
DL_OBJS="tclLoadShl.o"
DL_LIBS="-ldld"
- LDFLAGS="-Wl,-E"
+ LDFLAGS="$LDFLAGS -Wl,-E"
LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+ LD_LIBRARY_PATH_VAR="SHLIB_PATH"
+ fi
+ if test "$GCC" = "yes" ; then
+ SHLIB_LD="gcc -shared"
+ SHLIB_LD_LIBS='${LIBS}'
+ LD_SEARCH_FLAGS=''
fi
# Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
- #EXTRA_CFLAGS="+DAportable"
+ #CFLAGS="$CFLAGS +DAportable"
# Check to enable 64-bit flags for compiler/linker
if test "$do64bit" = "yes" ; then
if test "$GCC" = "yes" ; then
- hpux_arch=`gcc -dumpmachine`
+ hpux_arch=`${CC} -dumpmachine`
case $hpux_arch in
hppa64*)
# 64-bit gcc in use. Fix flags for GNU ld.
do64bit_ok=yes
- SHLIB_LD="gcc -shared"
- SHLIB_LD_LIBS=""
+ SHLIB_LD="${CC} -shared"
+ SHLIB_LD_LIBS='${LIBS}'
LD_SEARCH_FLAGS=''
;;
*)
@@ -1005,8 +1133,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
esac
else
do64bit_ok=yes
- EXTRA_CFLAGS="+DA2.0W"
- LDFLAGS="+DA2.0W $LDFLAGS"
+ CFLAGS="$CFLAGS +DD64"
+ LDFLAGS="$LDFLAGS +DD64"
fi
fi
;;
@@ -1019,9 +1147,10 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_LD_LIBS=""
DL_OBJS="tclLoadShl.o"
DL_LIBS="-ldld"
- LDFLAGS="-Wl,-E"
+ LDFLAGS="$LDFLAGS -Wl,-E"
LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
fi
+ LD_LIBRARY_PATH_VAR="SHLIB_PATH"
;;
IRIX-4.*)
SHLIB_CFLAGS="-G 0"
@@ -1030,9 +1159,9 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_LD_LIBS='${LIBS}'
DL_OBJS="tclLoadAout.o"
DL_LIBS=""
- LDFLAGS="-Wl,-D,08000000"
+ LDFLAGS="$LDFLAGS -Wl,-D,08000000"
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
- SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a'
+ SHARED_LIB_SUFFIX='${PACKAGE_VERSION}\$\{DBGX\}.a'
;;
IRIX-5.*)
SHLIB_CFLAGS=""
@@ -1042,8 +1171,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
- EXTRA_CFLAGS=""
- LDFLAGS=""
;;
IRIX-6.*|IRIX64-6.5*)
SHLIB_CFLAGS=""
@@ -1054,19 +1181,19 @@ dnl AC_CHECK_TOOL(AR, ar, :)
DL_LIBS=""
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
if test "$GCC" = "yes" ; then
- EXTRA_CFLAGS="-mabi=n32"
- LDFLAGS="-mabi=n32"
+ CFLAGS="$CFLAGS -mabi=n32"
+ LDFLAGS="$LDFLAGS -mabi=n32"
else
case $system in
IRIX-6.3)
# Use to build 6.2 compatible binaries on 6.3.
- EXTRA_CFLAGS="-n32 -D_OLD_TERMIOS"
+ CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS"
;;
*)
- EXTRA_CFLAGS="-n32"
+ CFLAGS="$CFLAGS -n32"
;;
esac
- LDFLAGS="-n32"
+ LDFLAGS="$LDFLAGS -n32"
fi
;;
IRIX64-6.*)
@@ -1076,7 +1203,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
# Check to enable 64-bit flags for compiler/linker
@@ -1087,8 +1213,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
else
do64bit_ok=yes
SHLIB_LD="ld -64 -shared -rdata_shared"
- EXTRA_CFLAGS="-64"
- LDFLAGS="-64"
+ CFLAGS="$CFLAGS -64"
+ LDFLAGS="$LDFLAGS -64"
fi
fi
;;
@@ -1097,28 +1223,28 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_LD_LIBS='${LIBS}'
SHLIB_SUFFIX=".so"
+ CFLAGS_OPTIMIZE=-O2
# egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
# when you inline the string and math operations. Turn this off to
# get rid of the warnings.
- CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+ #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
if test "$have_dl" = yes; then
SHLIB_LD="${CC} -shared"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS="-rdynamic"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
else
AC_CHECK_HEADER(dld.h, [
SHLIB_LD="ld -shared"
DL_OBJS="tclLoadDld.o"
DL_LIBS="-ldld"
- LDFLAGS=""
LD_SEARCH_FLAGS=""])
fi
if test "`uname -m`" = "alpha" ; then
- EXTRA_CFLAGS="-mieee"
+ CFLAGS="$CFLAGS -mieee"
fi
# The combo of gcc + glibc has a bug related
@@ -1128,8 +1254,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
# is kind of overkill but it works.
# Disable inlining only when one of the
# files in compat/*.c is being linked in.
- if test x"${LIBOBJS}" != x ; then
- EXTRA_CFLAGS="${EXTRA_CFLAGS} -fno-inline"
+ if test x"${USE_COMPAT}" != x ; then
+ CFLAGS="$CFLAGS -fno-inline"
fi
;;
@@ -1142,18 +1268,17 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_LD="${CC} -shared"
DL_OBJS=""
DL_LIBS="-ldl"
- LDFLAGS="-rdynamic"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
LD_SEARCH_FLAGS=""
else
AC_CHECK_HEADER(dld.h, [
SHLIB_LD="ld -shared"
DL_OBJS=""
DL_LIBS="-ldld"
- LDFLAGS=""
LD_SEARCH_FLAGS=""])
fi
if test "`uname -m`" = "alpha" ; then
- EXTRA_CFLAGS="-mieee"
+ CFLAGS="$CFLAGS -mieee"
fi
;;
MP-RAS-02*)
@@ -1163,7 +1288,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
MP-RAS-*)
@@ -1173,10 +1297,10 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS="-Wl,-Bexport"
+ LDFLAGS="$LDFLAGS -Wl,-Bexport"
LD_SEARCH_FLAGS=""
;;
- NetBSD-*|FreeBSD-[[1-2]].*|OpenBSD-*)
+ NetBSD-*|FreeBSD-[[1-2]].*)
# Not available on all versions: check for include file.
AC_CHECK_HEADER(dlfcn.h, [
# NetBSD/SPARC needs -fPIC, -fpic will not do.
@@ -1186,7 +1310,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
AC_MSG_CHECKING([for ELF])
AC_EGREP_CPP(yes, [
@@ -1206,7 +1329,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".a"
DL_OBJS="tclLoadAout.o"
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
])
@@ -1216,6 +1338,29 @@ dnl AC_CHECK_TOOL(AR, ar, :)
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
TCL_LIB_VERSIONS_OK=nodots
;;
+ OpenBSD-*)
+ SHLIB_LD="${CC} -shared"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS=""
+ LD_SEARCH_FLAGS=""
+ AC_MSG_CHECKING(for ELF)
+ AC_EGREP_CPP(yes, [
+#ifdef __ELF__
+ yes
+#endif
+ ],
+ [AC_MSG_RESULT(yes)
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'],
+ [AC_MSG_RESULT(no)
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0']
+ )
+
+ # OpenBSD doesn't do version numbers with dots.
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ TCL_LIB_VERSIONS_OK=nodots
+ ;;
FreeBSD-*)
# FreeBSD 3.* and greater have ELF.
SHLIB_CFLAGS="-fPIC"
@@ -1224,12 +1369,12 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
- LDFLAGS="-export-dynamic"
+ LDFLAGS="$LDFLAGS -export-dynamic"
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
if test "${TCL_THREADS}" = "1" ; then
# The -pthread needs to go in the CFLAGS, not LIBS
LIBS=`echo $LIBS | sed s/-pthread//`
- EXTRA_CFLAGS="-pthread"
+ CFLAGS="$CFLAGS -pthread"
LDFLAGS="$LDFLAGS -pthread"
fi
case $system in
@@ -1244,15 +1389,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
Rhapsody-*|Darwin-*)
SHLIB_CFLAGS="-fno-common"
SHLIB_LD="cc -dynamiclib \${LDFLAGS}"
- TCL_SHLIB_LD_EXTRAS="-compatibility_version ${TCL_MAJOR_VERSION} -current_version \${VERSION} -install_name \${LIB_RUNTIME_DIR}/\${TCL_LIB_FILE} -prebind -seg1addr 0xa000000"
SHLIB_LD_LIBS='${LIBS}'
SHLIB_SUFFIX=".dylib"
DL_OBJS="tclLoadDyld.o"
DL_LIBS=""
- LDFLAGS="-prebind"
+ LDFLAGS="$LDFLAGS -prebind"
LD_SEARCH_FLAGS=""
- CFLAGS_OPTIMIZE="-O3"
- EXTRA_CFLAGS="-arch ppc -pipe"
+ LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+ CFLAGS_OPTIMIZE="-Os"
;;
NEXTSTEP-*)
SHLIB_CFLAGS=""
@@ -1261,7 +1405,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadNext.o"
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
OS/390-*)
@@ -1277,7 +1420,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadOSF.o"
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
OSF1-1.*)
@@ -1292,7 +1434,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
OSF1-V*)
@@ -1307,21 +1448,22 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
- if test "$GCC" != "yes" ; then
- EXTRA_CFLAGS="-DHAVE_TZSET -std1"
+ if test "$GCC" = "yes" ; then
+ CFLAGS="$CFLAGS -mieee"
+ else
+ CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"
fi
# see pthread_intro(3) for pthread support on osf1, k.furukawa
if test "${TCL_THREADS}" = "1" ; then
- EXTRA_CFLAGS="${EXTRA_CFLAGS} -DHAVE_PTHREAD_ATTR_SETSTACKSIZE"
- EXTRA_CFLAGS="${EXTRA_CFLAGS} -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64"
+ CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE"
+ CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64"
LIBS=`echo $LIBS | sed s/-lpthreads//`
if test "$GCC" = "yes" ; then
LIBS="$LIBS -lpthread -lmach -lexc"
else
- EXTRA_CFLAGS="${EXTRA_CFLAGS} -pthread"
- LDFLAGS="-pthread"
+ CFLAGS="$CFLAGS -pthread"
+ LDFLAGS="$LDFLAGS -pthread"
fi
fi
@@ -1336,7 +1478,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
DL_OBJS="tclLoadDl.o"
# dlopen is in -lc on QNX
DL_LIBS=""
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
RISCos-*)
@@ -1346,7 +1487,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".a"
DL_OBJS="tclLoadAout.o"
DL_LIBS=""
- LDFLAGS="-Wl,-D,08000000"
+ LDFLAGS="$LDFLAGS -Wl,-D,08000000"
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
;;
SCO_SV-3.2*)
@@ -1355,10 +1496,10 @@ dnl AC_CHECK_TOOL(AR, ar, :)
# below.
if test "$GCC" = "yes" ; then
SHLIB_CFLAGS="-fPIC -melf"
- LDFLAGS="-melf -Wl,-Bexport"
+ LDFLAGS="$LDFLAGS -melf -Wl,-Bexport"
else
SHLIB_CFLAGS="-Kpic -belf"
- LDFLAGS="-belf -Wl,-Bexport"
+ LDFLAGS="$LDFLAGS -belf -Wl,-Bexport"
fi
SHLIB_LD="ld -G"
SHLIB_LD_LIBS=""
@@ -1374,7 +1515,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS=""
LD_SEARCH_FLAGS=""
;;
SunOS-4*)
@@ -1384,7 +1524,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS=""
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
# SunOS can't handle version numbers with dots in them in library
@@ -1413,7 +1552,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS="-ldl"
- LDFLAGS=""
if test "$GCC" = "yes" ; then
SHLIB_LD="$CC -shared"
LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
@@ -1431,7 +1569,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
SHLIB_CFLAGS="-KPIC"
- LDFLAGS=""
# Check to enable 64-bit flags for compiler/linker
if test "$do64bit" = "yes" ; then
@@ -1442,11 +1579,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
else
do64bit_ok=yes
if test "$do64bitVIS" = "yes" ; then
- EXTRA_CFLAGS="-xarch=v9a"
- LDFLAGS="-xarch=v9a"
+ CFLAGS="$CFLAGS -xarch=v9a"
+ LDFLAGS="$LDFLAGS -xarch=v9a"
else
- EXTRA_CFLAGS="-xarch=v9"
- LDFLAGS="-xarch=v9"
+ CFLAGS="$CFLAGS -xarch=v9"
+ LDFLAGS="$LDFLAGS -xarch=v9"
fi
fi
else
@@ -1476,10 +1613,10 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_LD_LIBS='${LIBS}'
DL_OBJS="tclLoadAout.o"
DL_LIBS=""
- LDFLAGS="-Wl,-D,08000000"
+ LDFLAGS="$LDFLAGS -Wl,-D,08000000"
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
if test "$GCC" != "yes" ; then
- EXTRA_CFLAGS="-DHAVE_TZSET -std1"
+ CFLAGS="$CFLAGS -DHAVE_TZSET -std1"
fi
;;
UNIX_SV* | UnixWare-5*)
@@ -1492,16 +1629,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
# Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
# that don't grok the -Bexport option. Test that it does.
hold_ldflags=$LDFLAGS
- AC_MSG_CHECKING([for ld accepts -Bexport flag])
- LDFLAGS="${LDFLAGS} -Wl,-Bexport"
- AC_TRY_LINK(, [int i;], found=yes, found=no)
- LDFLAGS=$hold_ldflags
+ AC_MSG_CHECKING(for ld accepts -Bexport flag)
+ LDFLAGS="$LDFLAGS -Wl,-Bexport"
+ AC_TRY_LINK(, [int i;], [found=yes],
+ [LDFLAGS=$hold_ldflags found=no])
AC_MSG_RESULT([$found])
- if test $found = yes; then
- LDFLAGS="-Wl,-Bexport"
- else
- LDFLAGS=""
- fi
LD_SEARCH_FLAGS=""
;;
esac
@@ -1605,7 +1737,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
SHLIB_SUFFIX=""
DL_OBJS="tclLoadNone.o"
DL_LIBS=""
- LDFLAGS=""
+ LDFLAGS="$LDFLAGS_ORIG"
LD_SEARCH_FLAGS=""
BUILD_DLTEST=""
fi
@@ -1623,7 +1755,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
;;
IRIX*)
;;
- NetBSD-*|FreeBSD-*|OpenBSD-*)
+ NetBSD-*|FreeBSD-*)
;;
Rhapsody-*|Darwin-*)
;;
@@ -1634,9 +1766,6 @@ dnl AC_CHECK_TOOL(AR, ar, :)
ULTRIX-4.*)
;;
windows)
- if test "$MINGW32" != "yes"; then
- SHLIB_CFLAGS="-fPIC"
- fi
;;
*)
SHLIB_CFLAGS="-fPIC"
@@ -1646,26 +1775,30 @@ dnl AC_CHECK_TOOL(AR, ar, :)
fi
if test "$SHARED_LIB_SUFFIX" = "" ; then
- SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}${SHLIB_SUFFIX}'
+ SHARED_LIB_SUFFIX='${PACKAGE_VERSION}\$\{DBGX\}${SHLIB_SUFFIX}'
fi
if test "$UNSHARED_LIB_SUFFIX" = "" ; then
- UNSHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a'
+ UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}\$\{DBGX\}.a'
fi
AC_SUBST(DL_LIBS)
AC_SUBST(CFLAGS_DEBUG)
AC_SUBST(CFLAGS_OPTIMIZE)
AC_SUBST(CFLAGS_WARNING)
- AC_SUBST(EXTRA_CFLAGS)
- SHLIB_LDFLAGS='$(LDFLAGS_DEFAULT)'
AC_SUBST(STLIB_LD)
AC_SUBST(SHLIB_LD)
AC_SUBST(SHLIB_CFLAGS)
- AC_SUBST(SHLIB_LDFLAGS)
+ AC_SUBST(SHLIB_LD_FLAGS)
AC_SUBST(SHLIB_LD_LIBS)
AC_SUBST(LDFLAGS_DEBUG)
AC_SUBST(LDFLAGS_OPTIMIZE)
+ AC_SUBST(LD_LIBRARY_PATH_VAR)
+
+ # These must be called after we do the basic CFLAGS checks and
+ # verify any possible 64-bit or similar switches are necessary
+ TEA_TCL_EARLY_FLAGS
+ TEA_TCL_64BIT_FLAGS
])
#--------------------------------------------------------------------
@@ -1807,16 +1940,17 @@ int main() {
# NO_DIRENT_H
# NO_ERRNO_H
# NO_VALUES_H
-# NO_LIMITS_H
+# HAVE_LIMITS_H or NO_LIMITS_H
# NO_STDLIB_H
# NO_STRING_H
# NO_SYS_WAIT_H
# NO_DLFCN_H
-# HAVE_UNISTD_H
# HAVE_SYS_PARAM_H
#
# HAVE_STRING_H ?
#
+# tkUnixPort.h checks for HAVE_LIMITS_H, so do both HAVE and
+# CHECK on limits.h
#--------------------------------------------------------------------
AC_DEFUN(TEA_MISSING_POSIX_HEADERS, [
@@ -1850,7 +1984,8 @@ closedir(d);
AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H)])
AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H)])
AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H)])
- AC_CHECK_HEADER(limits.h, , [AC_DEFINE(NO_LIMITS_H)])
+ AC_CHECK_HEADER(limits.h,
+ [AC_DEFINE(HAVE_LIMITS_H)], [AC_DEFINE(NO_LIMITS_H)])
AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0)
AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0)
AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0)
@@ -1873,8 +2008,7 @@ closedir(d);
AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H)])
# OS/390 lacks sys/param.h (and doesn't need it, by chance).
-
- AC_HAVE_HEADERS(unistd.h sys/param.h)
+ AC_HAVE_HEADERS(sys/param.h)
])
@@ -1900,12 +2034,24 @@ closedir(d);
# XINCLUDES
# XLIBSW
# LIBS (appends to)
+# TEA_WINDOWINGSYSTEM
#
#--------------------------------------------------------------------
AC_DEFUN(TEA_PATH_X, [
if test "${TEA_PLATFORM}" = "unix" ; then
- TEA_PATH_UNIX_X
+ case ${TK_DEFS} in
+ *MAC_OSX_TK*)
+ AC_DEFINE(MAC_OSX_TK)
+ TEA_WINDOWINGSYSTEM="aqua"
+ ;;
+ *)
+ TEA_PATH_UNIX_X
+ TEA_WINDOWINGSYSTEM="x11"
+ ;;
+ esac
+ elif test "${TEA_PLATFORM}" = "windows" ; then
+ TEA_WINDOWINGSYSTEM="windows"
fi
])
@@ -1974,7 +2120,7 @@ AC_DEFUN(TEA_PATH_UNIX_X, [
XLIBSW=-lX11
fi
if test x"${XLIBSW}" != x ; then
- LIBS="${LIBS} ${XLIBSW}"
+ PKG_LIBS="${PKG_LIBS} ${XLIBSW}"
fi
])
@@ -2166,7 +2312,9 @@ AC_DEFUN(TEA_BUGGY_STRTOD, [
AC_MSG_RESULT([ok])
else
AC_MSG_RESULT([buggy])
- LIBOBJS="$LIBOBJS fixstrtod.o"
+ #LIBOBJS="$LIBOBJS fixstrtod.o"
+ AC_LIBOBJ([fixstrtod])
+ USE_COMPAT=1
AC_DEFINE(strtod, fixstrtod)
fi
fi
@@ -2324,13 +2472,23 @@ AC_DEFUN(TEA_TCL_EARLY_FLAGS,[
AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
AC_MSG_CHECKING([for 64-bit integer type])
AC_CACHE_VAL(tcl_cv_type_64bit,[
+ tcl_cv_type_64bit=none
+ # See if the compiler knows natively about __int64
AC_TRY_COMPILE(,[__int64 value = (__int64) 0;],
- tcl_cv_type_64bit=__int64,tcl_cv_type_64bit=none
- AC_TRY_RUN([#include <unistd.h>
- int main() {exit(!(sizeof(long long) > sizeof(long)));}
- ], tcl_cv_type_64bit="long long"))])
+ tcl_type_64bit=__int64, tcl_type_64bit="long long")
+ # See if we should use long anyway Note that we substitute in the
+ # type that is our current guess for a 64-bit type inside this check
+ # program, so it should be modified only carefully...
+ AC_TRY_COMPILE(,[switch (0) {
+ case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ;
+ }],tcl_cv_type_64bit=${tcl_type_64bit})])
if test "${tcl_cv_type_64bit}" = none ; then
+ AC_DEFINE(TCL_WIDE_INT_IS_LONG)
AC_MSG_RESULT([using long])
+ elif test "${tcl_cv_type_64bit}" = "__int64" ; then
+ # We actually want to use the default tcl.h checks in this
+ # case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER*
+ AC_MSG_RESULT([using Tcl header defaults])
else
AC_DEFINE_UNQUOTED(TCL_WIDE_INT_TYPE,${tcl_cv_type_64bit})
AC_MSG_RESULT([${tcl_cv_type_64bit}])
@@ -2402,13 +2560,21 @@ AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
#------------------------------------------------------------------------
AC_DEFUN(TEA_INIT, [
+ TEA_VERSION="3.1"
+
AC_MSG_CHECKING([for correct TEA configuration])
- if test x"${PACKAGE}" = x ; then
+ if test x"${PACKAGE_NAME}" = x ; then
+ AC_MSG_ERROR([
+The PACKAGE_NAME variable must be defined by your TEA configure.in])
+ fi
+ if test x"$1" = x ; then
AC_MSG_ERROR([
-The PACKAGE variable must be defined by your TEA configure.in])
+TEA version not specified.])
+ elif test "$1" != "${TEA_VERSION}" ; then
+ AC_MSG_RESULT([warning: requested TEA version "$1", have "${TEA_VERSION}"])
+ else
+ AC_MSG_RESULT([ok (TEA ${TEA_VERSION})])
fi
- AC_MSG_RESULT([ok])
- TEA_INITED=ok
case "`uname -s`" in
*win32*|*WIN32*|*CYGWIN_NT*|*CYGWIN_9*|*CYGWIN_ME*|*MINGW32_*)
AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo)
@@ -2422,8 +2588,238 @@ The PACKAGE variable must be defined by your TEA configure.in])
;;
esac
+ # Check if exec_prefix is set. If not use fall back to prefix.
+ # Note when adjusted, so that TEA_PREFIX can correct for this.
+ # This is needed for recursive configures, since autoconf propagates
+ # $prefix, but not $exec_prefix (doh!).
+ if test x$exec_prefix = xNONE ; then
+ exec_prefix_default=yes
+ exec_prefix=$prefix
+ fi
+
AC_SUBST(EXEEXT)
AC_SUBST(CYGPATH)
+
+ # This package name must be replaced statically for AC_SUBST to work
+ AC_SUBST(PKG_LIB_FILE)
+ # Substitute STUB_LIB_FILE in case package creates a stub library too.
+ AC_SUBST(PKG_STUB_LIB_FILE)
+
+ # We AC_SUBST these here to ensure they are subst'ed,
+ # in case the user doesn't call TEA_ADD_...
+ AC_SUBST(PKG_STUB_SOURCES)
+ AC_SUBST(PKG_STUB_OBJECTS)
+ AC_SUBST(PKG_TCL_SOURCES)
+ AC_SUBST(PKG_HEADERS)
+ AC_SUBST(PKG_INCLUDES)
+ AC_SUBST(PKG_LIBS)
+ AC_SUBST(PKG_CFLAGS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_SOURCES --
+#
+# Specify one or more source files. Users should check for
+# the right platform before adding to their list.
+# It is not important to specify the directory, as long as it is
+# in the generic, win or unix subdirectory of $(srcdir).
+#
+# Arguments:
+# one or more file names
+#
+# Results:
+#
+# Defines and substs the following vars:
+# PKG_SOURCES
+# PKG_OBJECTS
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_ADD_SOURCES, [
+ vars="$@"
+ for i in $vars; do
+ case $i in
+ [\$]*)
+ # allow $-var names
+ PKG_SOURCES="$PKG_SOURCES $i"
+ PKG_OBJECTS="$PKG_OBJECTS $i"
+ ;;
+ *)
+ # check for existence - allows for generic/win/unix VPATH
+ if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
+ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
+ ; then
+ AC_MSG_ERROR([could not find source file '$i'])
+ fi
+ PKG_SOURCES="$PKG_SOURCES $i"
+ # this assumes it is in a VPATH dir
+ i=`basename $i`
+ # handle user calling this before or after TEA_SETUP_COMPILER
+ if test x"${OBJEXT}" != x ; then
+ j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
+ else
+ j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
+ fi
+ PKG_OBJECTS="$PKG_OBJECTS $j"
+ ;;
+ esac
+ done
+ AC_SUBST(PKG_SOURCES)
+ AC_SUBST(PKG_OBJECTS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_STUB_SOURCES --
+#
+# Specify one or more source files. Users should check for
+# the right platform before adding to their list.
+# It is not important to specify the directory, as long as it is
+# in the generic, win or unix subdirectory of $(srcdir).
+#
+# Arguments:
+# one or more file names
+#
+# Results:
+#
+# Defines and substs the following vars:
+# PKG_STUB_SOURCES
+# PKG_STUB_OBJECTS
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_ADD_STUB_SOURCES, [
+ vars="$@"
+ for i in $vars; do
+ # check for existence - allows for generic/win/unix VPATH
+ if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
+ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
+ ; then
+ AC_MSG_ERROR([could not find stub source file '$i'])
+ fi
+ PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i"
+ # this assumes it is in a VPATH dir
+ i=`basename $i`
+ # handle user calling this before or after TEA_SETUP_COMPILER
+ if test x"${OBJEXT}" != x ; then
+ j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
+ else
+ j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
+ fi
+ PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j"
+ done
+ AC_SUBST(PKG_STUB_SOURCES)
+ AC_SUBST(PKG_STUB_OBJECTS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_TCL_SOURCES --
+#
+# Specify one or more Tcl source files. These should be platform
+# independent runtime files.
+#
+# Arguments:
+# one or more file names
+#
+# Results:
+#
+# Defines and substs the following vars:
+# PKG_TCL_SOURCES
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_ADD_TCL_SOURCES, [
+ vars="$@"
+ for i in $vars; do
+ # check for existence, be strict because it is installed
+ if test ! -f "${srcdir}/$i" ; then
+ AC_MSG_ERROR([could not find tcl source file '${srcdir}/$i'])
+ fi
+ PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i"
+ done
+ AC_SUBST(PKG_TCL_SOURCES)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_HEADERS --
+#
+# Specify one or more source headers. Users should check for
+# the right platform before adding to their list.
+#
+# Arguments:
+# one or more file names
+#
+# Results:
+#
+# Defines and substs the following vars:
+# PKG_HEADERS
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_ADD_HEADERS, [
+ vars="$@"
+ for i in $vars; do
+ # check for existence, be strict because it is installed
+ if test ! -f "${srcdir}/$i" ; then
+ AC_MSG_ERROR([could not find header file '${srcdir}/$i'])
+ fi
+ PKG_HEADERS="$PKG_HEADERS $i"
+ done
+ AC_SUBST(PKG_HEADERS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_INCLUDES --
+#
+# Specify one or more include dirs. Users should check for
+# the right platform before adding to their list.
+#
+# Arguments:
+# one or more file names
+#
+# Results:
+#
+# Defines and substs the following vars:
+# PKG_INCLUDES
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_ADD_INCLUDES, [
+ vars="$@"
+ for i in $vars; do
+ PKG_INCLUDES="$PKG_INCLUDES $i"
+ done
+ AC_SUBST(PKG_INCLUDES)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_LIBS --
+#
+# Specify one or more libraries. Users should check for
+# the right platform before adding to their list.
+#
+# Arguments:
+# one or more file names
+#
+# Results:
+#
+# Defines and substs the following vars:
+# PKG_LIBS
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_ADD_LIBS, [
+ vars="$@"
+ for i in $vars; do
+ PKG_LIBS="$PKG_LIBS $i"
+ done
+ AC_SUBST(PKG_LIBS)
+])
+
+#------------------------------------------------------------------------
+# TEA_ADD_CFLAGS --
+#
+# Specify one or more CFLAGS. Users should check for
+# the right platform before adding to their list.
+#
+# Arguments:
+# one or more file names
+#
+# Results:
+#
+# Defines and substs the following vars:
+# PKG_CFLAGS
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_ADD_CFLAGS, [
+ PKG_CFLAGS="$PKG_CFLAGS $@"
+ AC_SUBST(PKG_CFLAGS)
])
#------------------------------------------------------------------------
@@ -2441,28 +2837,30 @@ The PACKAGE variable must be defined by your TEA configure.in])
# configured.
#------------------------------------------------------------------------
AC_DEFUN(TEA_PREFIX, [
- # Should be AC_MSG_NOTICE, but that requires autoconf 2.50
if test "${prefix}" = "NONE"; then
prefix_default=yes
if test x"${TCL_PREFIX}" != x; then
- AC_MSG_WARN([--prefix defaulting to TCL_PREFIX ${TCL_PREFIX}])
+ AC_MSG_NOTICE([--prefix defaulting to TCL_PREFIX ${TCL_PREFIX}])
prefix=${TCL_PREFIX}
else
+ AC_MSG_NOTICE([--prefix defaulting to /usr/local])
prefix=/usr/local
fi
fi
- if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" ; then
+ if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \
+ -o x"${exec_prefix_default}" = x"yes" ; then
if test x"${TCL_EXEC_PREFIX}" != x; then
- AC_MSG_WARN([--exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}])
+ AC_MSG_NOTICE([--exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}])
exec_prefix=${TCL_EXEC_PREFIX}
else
+ AC_MSG_NOTICE([--exec-prefix defaulting to ${prefix}])
exec_prefix=$prefix
fi
fi
])
#------------------------------------------------------------------------
-# TEA_PROG_CC --
+# TEA_SETUP_COMPILER_CC --
#
# Do compiler checks the way we want. This is just a replacement
# for AC_PROG_CC in TEA configure.in files to make them cleaner.
@@ -2474,7 +2872,10 @@ AC_DEFUN(TEA_PREFIX, [
#
# Sets up CC var and other standard bits we need to make executables.
#------------------------------------------------------------------------
-AC_DEFUN(TEA_SETUP_COMPILER, [
+AC_DEFUN(TEA_SETUP_COMPILER_CC, [
+ # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE)
+ # in this macro, they need to go into TEA_SETUP_COMPILER instead.
+
# If the user did not set CFLAGS, set it now to keep
# the AC_PROG_CC macro from adding "-g -O2".
if test "${CFLAGS+set}" != "set" ; then
@@ -2482,19 +2883,7 @@ AC_DEFUN(TEA_SETUP_COMPILER, [
fi
AC_PROG_CC
-
- #------------------------------------------------------------------------
- # If we're using GCC, see if the compiler understands -pipe. If so, use it.
- # It makes compiling go faster. (This is only a performance feature.)
- #------------------------------------------------------------------------
-
- if test -z "$no_pipe" -a -n "$GCC"; then
- AC_MSG_CHECKING([if the compiler understands -pipe])
- OLDCC="$CC"
- CC="$CC -pipe"
- AC_TRY_COMPILE(,, AC_MSG_RESULT([yes]), CC="$OLDCC"
- AC_MSG_RESULT([no]))
- fi
+ AC_PROG_CPP
AC_PROG_INSTALL
@@ -2519,6 +2908,51 @@ AC_DEFUN(TEA_SETUP_COMPILER, [
])
#------------------------------------------------------------------------
+# TEA_SETUP_COMPILER --
+#
+# Do compiler checks that use the compiler. This must go after
+# TEA_SETUP_COMPILER_CC, which does the actual compiler check.
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Sets up CC var and other standard bits we need to make executables.
+#------------------------------------------------------------------------
+AC_DEFUN(TEA_SETUP_COMPILER, [
+ # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here.
+ AC_REQUIRE([TEA_SETUP_COMPILER_CC])
+
+ #------------------------------------------------------------------------
+ # If we're using GCC, see if the compiler understands -pipe. If so, use it.
+ # It makes compiling go faster. (This is only a performance feature.)
+ #------------------------------------------------------------------------
+
+ if test -z "$no_pipe" -a -n "$GCC"; then
+ AC_MSG_CHECKING([if the compiler understands -pipe])
+ OLDCC="$CC"
+ CC="$CC -pipe"
+ AC_TRY_COMPILE(,, AC_MSG_RESULT([yes]), CC="$OLDCC"
+ AC_MSG_RESULT([no]))
+ fi
+
+ #--------------------------------------------------------------------
+ # Common compiler flag setup
+ #--------------------------------------------------------------------
+
+ AC_C_BIGENDIAN
+ if test "${TEA_PLATFORM}" = "unix" ; then
+ TEA_TCL_LINK_LIBS
+ TEA_MISSING_POSIX_HEADERS
+ # Let the user call this, because if it triggers, they will
+ # need a compat/strtod.c that is correct. Users can also
+ # use Tcl_GetDouble(FromObj) instead.
+ #TEA_BUGGY_STRTOD
+ fi
+])
+
+#------------------------------------------------------------------------
# TEA_MAKE_LIB --
#
# Generate a line that can be used to build a shared/unshared library
@@ -2543,13 +2977,13 @@ AC_DEFUN(TEA_SETUP_COMPILER, [
AC_DEFUN(TEA_MAKE_LIB, [
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
- MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(\[$](PACKAGE)_OBJECTS)"
- MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS} \$(LDFLAGS) -out:\[$]@ \$(\[$](PACKAGE)_OBJECTS)"
- MAKE_STUB_LIB="\${STLIB_LD} -out:\[$]@ \$(\[$](PACKAGE)stub_OBJECTS)"
+ MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)"
+ MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_FLAGS} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)"
+ MAKE_STUB_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_STUB_OBJECTS)"
else
- MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(\[$](PACKAGE)_OBJECTS)"
- MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(\[$](PACKAGE)_OBJECTS) \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS}"
- MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(\[$](PACKAGE)stub_OBJECTS)"
+ MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)"
+ MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_FLAGS} \${SHLIB_LD_LIBS}"
+ MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)"
fi
if test "${SHARED_BUILD}" = "1" ; then
@@ -2564,6 +2998,7 @@ AC_DEFUN(TEA_MAKE_LIB, [
# substituted.
#--------------------------------------------------------------------
+ RANLIB_STUB="${RANLIB}"
if test "${TEA_PLATFORM}" = "windows" ; then
if test "${SHARED_BUILD}" = "1" ; then
# We force the unresolved linking of symbols that are really in
@@ -2572,26 +3007,26 @@ AC_DEFUN(TEA_MAKE_LIB, [
if test x"${TK_BIN_DIR}" != x ; then
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
fi
- eval eval "${PACKAGE}_LIB_FILE=${PACKAGE}${SHARED_LIB_SUFFIX}"
+ eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
RANLIB=:
else
- eval eval "${PACKAGE}_LIB_FILE=${PACKAGE}${UNSHARED_LIB_SUFFIX}"
+ eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
fi
# Some packages build there own stubs libraries
- eval eval "${PACKAGE}stub_LIB_FILE=${PACKAGE}stub${UNSHARED_LIB_SUFFIX}"
+ eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
else
if test "${SHARED_BUILD}" = "1" ; then
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
if test x"${TK_BIN_DIR}" != x ; then
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
fi
- eval eval "${PACKAGE}_LIB_FILE=lib${PACKAGE}${SHARED_LIB_SUFFIX}"
+ eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
RANLIB=:
else
- eval eval "${PACKAGE}_LIB_FILE=lib${PACKAGE}${UNSHARED_LIB_SUFFIX}"
+ eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
fi
# Some packages build there own stubs libraries
- eval eval "${PACKAGE}stub_LIB_FILE=lib${PACKAGE}stub${UNSHARED_LIB_SUFFIX}"
+ eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
fi
# These are escaped so that only CFLAGS is picked up at configure time.
@@ -2605,6 +3040,7 @@ AC_DEFUN(TEA_MAKE_LIB, [
AC_SUBST(MAKE_SHARED_LIB)
AC_SUBST(MAKE_STATIC_LIB)
AC_SUBST(MAKE_STUB_LIB)
+ AC_SUBST(RANLIB_STUB)
])
#------------------------------------------------------------------------
@@ -2715,15 +3151,21 @@ AC_DEFUN(TEA_PRIVATE_TCL_HEADERS, [
TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\"
TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\"
TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE}
+
+ TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
else
TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)'
- TCL_GENERIC_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/generic'
- TCL_UNIX_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/unix'
- TCL_WIN_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/win'
- TCL_BMAP_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/bitmaps'
- TCL_TOOL_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/tools'
- TCL_COMPAT_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/compat'
+ TCL_GENERIC_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/generic'
+ TCL_UNIX_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/unix'
+ TCL_WIN_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/win'
+ TCL_BMAP_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/bitmaps'
+ TCL_TOOL_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/tools'
+ TCL_COMPAT_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/compat'
TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE}
+
+ # substitute these in "relaxed" so that TCL_INCLUDES still works
+ # without requiring the other vars to be defined in the Makefile
+ eval "TCL_INCLUDES=\"-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}\""
fi
AC_SUBST(TCL_TOP_DIR_NATIVE)
@@ -2734,7 +3176,6 @@ AC_DEFUN(TEA_PRIVATE_TCL_HEADERS, [
AC_SUBST(TCL_TOOL_DIR_NATIVE)
AC_SUBST(TCL_PLATFORM_DIR_NATIVE)
- TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
AC_SUBST(TCL_INCLUDES)
AC_MSG_RESULT([Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}])
])
@@ -2762,7 +3203,7 @@ AC_DEFUN(TEA_PRIVATE_TCL_HEADERS, [
AC_DEFUN(TEA_PUBLIC_TCL_HEADERS, [
AC_MSG_CHECKING([for Tcl public headers])
- AC_ARG_WITH(tclinclude, [ --with-tclinclude directory containing the public Tcl header files], with_tclinclude=${withval})
+ AC_ARG_WITH(tclinclude, [ --with-tclinclude directory containing the public Tcl header files], with_tclinclude=${withval})
AC_CACHE_VAL(ac_cv_c_tclh, [
# Use the value from --with-tclinclude, if it was given
@@ -2842,13 +3283,15 @@ AC_DEFUN(TEA_PRIVATE_TK_HEADERS, [
TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE} -I${TK_XLIB_DIR_NATIVE}"
else
- TK_TOP_DIR_NATIVE='$(TK_SRC_DIR)'
- TK_GENERIC_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/generic'
- TK_UNIX_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/unix'
- TK_WIN_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/win'
+ TK_TOP_DIR_NATIVE='${TK_SRC_DIR}'
+ TK_GENERIC_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/generic'
+ TK_UNIX_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/unix'
+ TK_WIN_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/win'
TK_PLATFORM_DIR_NATIVE=${TK_UNIX_DIR_NATIVE}
- TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}"
+ # substitute these in "relaxed" so that TK_INCLUDES still works
+ # without requiring the other vars to be defined in the Makefile
+ eval "TK_INCLUDES=\"-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}\""
fi
AC_SUBST(TK_TOP_DIR_NATIVE)
@@ -2934,6 +3377,17 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
AC_SUBST(TK_INCLUDES)
+
+ if test "${TEA_PLATFORM}" = "windows" ; then
+ # On Windows, we need the X compat headers
+ AC_MSG_CHECKING([for X11 header files])
+ if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then
+ INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`"
+ TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+ AC_SUBST(TK_XINCLUDES)
+ fi
+ AC_MSG_RESULT([${INCLUDE_DIR_NATIVE}])
+ fi
])
#------------------------------------------------------------------------
@@ -2955,7 +3409,13 @@ AC_DEFUN(TEA_PROG_TCLSH, [
AC_MSG_CHECKING([for tclsh])
AC_CACHE_VAL(ac_cv_path_tclsh, [
- search_path=`echo ${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${exec_prefix}/bin:${prefix}/bin:${PATH} | sed -e 's/:/ /g'`
+ if test "x${CELIB_DIR}" != "x" ; then
+ # If CELIB_DIR is defined, assume Windows/CE target is requested
+ # which means target tclsh cannot be run (cross-compile)
+ search_path=`echo ${PATH} | sed -e 's/:/ /g'`
+ else
+ search_path=`echo ${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${exec_prefix}/bin:${prefix}/bin:${PATH} | sed -e 's/:/ /g'`
+ fi
for dir in $search_path ; do
for j in `ls -r $dir/tclsh[[8-9]]*${EXEEXT} 2> /dev/null` \
`ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
@@ -2998,7 +3458,13 @@ AC_DEFUN(TEA_PROG_WISH, [
AC_MSG_CHECKING([for wish])
AC_CACHE_VAL(ac_cv_path_wish, [
- search_path=`echo ${TK_BIN_DIR}:${TK_BIN_DIR}/../bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${exec_prefix}/bin:${prefix}/bin:${PATH} | sed -e 's/:/ /g'`
+ if test "x${CELIB_DIR}" != "x" ; then
+ # If CELIB_DIR is defined, assume Windows/CE target is requested
+ # which means target wish cannot be run (cross-compile)
+ search_path=`echo ${PATH} | sed -e 's/:/ /g'`
+ else
+ search_path=`echo ${TK_BIN_DIR}:${TK_BIN_DIR}/../bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${exec_prefix}/bin:${prefix}/bin:${PATH} | sed -e 's/:/ /g'`
+ fi
for dir in $search_path ; do
for j in `ls -r $dir/wish[[8-9]]*${EXEEXT} 2> /dev/null` \
`ls -r $dir/wish*${EXEEXT} 2> /dev/null` ; do
@@ -3090,6 +3556,7 @@ AC_DEFUN(TEA_PATH_CONFIG, [
# check in a few common install locations
if test x"${ac_cv_c_$1config}" = x ; then
for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+ `ls -d ${prefix}/lib 2>/dev/null` \
`ls -d /usr/local/lib 2>/dev/null` \
`ls -d /usr/contrib/lib 2>/dev/null` \
`ls -d /usr/lib 2>/dev/null` \
@@ -3169,3 +3636,70 @@ AC_DEFUN(TEA_LOAD_CONFIG, [
AC_SUBST($1_STUB_LIB_SPEC)
AC_SUBST($1_STUB_LIB_PATH)
])
+
+#------------------------------------------------------------------------
+# TEA_PATH_CELIB --
+#
+# Locate Keuchel's celib emulation layer for targeting Win/CE
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Adds the following arguments to configure:
+# --with-celib=...
+#
+# Defines the following vars:
+# CELIB_DIR Full path to the directory containing
+# the include and platform lib files
+#------------------------------------------------------------------------
+
+AC_DEFUN(TEA_PATH_CELIB, [
+ # First, look for one uninstalled.
+ # the alternative search directory is invoked by --with-celib
+
+ if test x"${no_celib}" = x ; then
+ # we reset no_celib in case something fails here
+ no_celib=true
+ AC_ARG_WITH(celib,[ --with-celib=DIR use Windows/CE support library from DIR], with_celibconfig=${withval})
+ AC_MSG_CHECKING([for Windows/CE celib directory])
+ AC_CACHE_VAL(ac_cv_c_celibconfig,[
+ # First check to see if --with-celibconfig was specified.
+ if test x"${with_celibconfig}" != x ; then
+ if test -d "${with_celibconfig}/inc" ; then
+ ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)`
+ else
+ AC_MSG_ERROR([${with_celibconfig} directory doesn't contain inc directory])
+ fi
+ fi
+
+ # then check for a celib library
+ if test x"${ac_cv_c_celibconfig}" = x ; then
+ for i in \
+ ../celib-palm-3.0 \
+ ../celib \
+ ../../celib-palm-3.0 \
+ ../../celib \
+ `ls -dr ../celib-*3.[[0-9]]* 2>/dev/null` \
+ ${srcdir}/../celib-palm-3.0 \
+ ${srcdir}/../celib \
+ `ls -dr ${srcdir}/../celib-*3.[[0-9]]* 2>/dev/null` \
+ ; do
+ if test -d "$i/inc" ; then
+ ac_cv_c_celibconfig=`(cd $i; pwd)`
+ break
+ fi
+ done
+ fi
+ ])
+ if test x"${ac_cv_c_celibconfig}" = x ; then
+ CELIB_DIR="# no Celib configs found"
+ AC_MSG_ERROR([Cannot find celib support library directory])
+ else
+ no_celib=
+ CELIB_DIR=${ac_cv_c_celibconfig}
+ AC_MSG_RESULT([found $CELIB_DIR])
+ fi
+ fi
+])