summaryrefslogtreecommitdiffstats
path: root/unix
diff options
context:
space:
mode:
Diffstat (limited to 'unix')
-rw-r--r--unix/Makefile.in29
-rw-r--r--unix/aclocal.m4864
-rw-r--r--unix/configure.in307
3 files changed, 838 insertions, 362 deletions
diff --git a/unix/Makefile.in b/unix/Makefile.in
index e0f5e90..04984b9 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -5,7 +5,7 @@
# "autoconf" program (constructs like "@foo@" will get replaced in the
# actual Makefile.
#
-# RCS: @(#) $Id: Makefile.in,v 1.17 1999/04/30 18:02:39 redman Exp $
+# RCS: @(#) $Id: Makefile.in,v 1.18 1999/06/15 22:23:19 wart Exp $
# Current Tk version; used in various names.
@@ -82,9 +82,11 @@ TCL_UNIX_DIR = @TCL_SRC_DIR@/unix
# for this version of Tk:
TCL_BIN_DIR = @TCL_BIN_DIR@
+# The linker flags needed to link in the Tcl library (ex: -ltcl8.1)
+TCL_LIB_FLAG = @TCL_LIB_FLAG@
+
# Libraries built with optimization switches have this additional extension
TK_DBGX = @TK_DBGX@
-TCL_DBGX = @TCL_DBGX@
# warning flags
CFLAGS_WARNING = @CFLAGS_WARNING@
@@ -98,7 +100,7 @@ CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
#CFLAGS = $(CFLAGS_DEBUG)
#CFLAGS = $(CFLAGS_OPTIMIZE)
#CFLAGS = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE)
-CFLAGS = $(@CFLAGS_DEFAULT@)
+CFLAGS = @CFLAGS@
# A "-I" switch that can be used when compiling to make all of the
# X11 include files accessible (the configure script will try to
@@ -162,7 +164,7 @@ INSTALL_DATA = ${INSTALL} -m 644
# configure script. You shouldn't normally need to modify any of
# these definitions by hand.
-TK_SHLIB_CFLAGS = @TK_SHLIB_CFLAGS@
+SHLIB_CFLAGS = @SHLIB_CFLAGS@
# To enable support for stubs in Tcl.
STUB_LIB_FILE = @STUB_LIB_FILE@
@@ -179,7 +181,8 @@ TK_LIB_FILE = @TK_LIB_FILE@
TK_LIB_FLAG = @TK_LIB_FLAG@
#TK_LIB_FLAG = -ltk
-TCL_LIB_SPEC = @TCL_BUILD_LIB_SPEC@
+#TCL_LIB_SPEC = @TCL_BUILD_LIB_SPEC@
+TCL_LIB_SPEC = @TCL_LIB_SPEC@
TK_EXP_FILE = @TK_EXP_FILE@
TK_BUILD_EXP_FILE = @TK_BUILD_EXP_FILE@
@@ -226,7 +229,7 @@ TOOL_DIR = @TCL_SRC_DIR@/tools
CC = @CC@
-CC_SWITCHES_NO_STUBS = ${CFLAGS} ${CFLAGS_WARNING} ${TK_SHLIB_CFLAGS} \
+CC_SWITCHES_NO_STUBS = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
-I${UNIX_DIR} -I${GENERIC_DIR} \
-I${BMAP_DIR} -I${TCL_GENERIC_DIR} ${X11_INCLUDES} \
${AC_FLAGS} ${PROTO_FLAGS} \
@@ -341,7 +344,13 @@ HDRS = bltList.h \
DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget
-all: wish
+all: binaries libraries doc
+
+binaries: ${TK_LIB_FILE} ${STUB_LIB_FILE} wish
+
+libraries:
+
+doc:
# The following target is configured by autoconf to generate either
# a shared library or non-shared library for Tk.
@@ -404,7 +413,7 @@ runtest:
TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
./tktest
-install: install-binaries install-libraries install-demos install-man
+install: install-binaries install-libraries install-demos install-doc
# Note: before running ranlib below, must cd to target directory because
# some ranlibs write to current directory, and this might not always be
@@ -500,7 +509,7 @@ install-demos:
fi; \
done;
-install-man:
+install-doc:
@for i in $(MAN_INSTALL_DIR) $(MAN1_INSTALL_DIR) $(MAN3_INSTALL_DIR) $(MANN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
@@ -1094,7 +1103,7 @@ package-config:
package-common:
cd $(DISTDIR)/unix/`arch`;\
$(MAKE); \
- $(MAKE) install-libraries install-man \
+ $(MAKE) install-libraries install-doc \
prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \
exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin
diff --git a/unix/aclocal.m4 b/unix/aclocal.m4
index 7dd18ac..975a6b5 100644
--- a/unix/aclocal.m4
+++ b/unix/aclocal.m4
@@ -25,7 +25,7 @@ dnl PARTICULAR PURPOSE.
# --with-tcl=...
#
# Defines the following vars:
-# TCLCONFIG Full path to the tclConfig.sh file
+# TCL_BIN_DIR Full path to the tclConfig.sh file
#------------------------------------------------------------------------
AC_DEFUN(SC_PATH_TCLCONFIG, [
@@ -38,7 +38,7 @@ AC_DEFUN(SC_PATH_TCLCONFIG, [
if test x"${no_tcl}" = x ; then
# we reset no_tcl in case something fails here
no_tcl=true
- AC_ARG_WITH(tcl, [ --with-tcl directory containing tcl configuration (tclConfig.sh)],
+ AC_ARG_WITH(tcl, [ --with-tcl directory containing tcl configuration (tclConfig.sh)],
with_tclconfig=${withval})
AC_MSG_CHECKING([for Tcl configuration])
AC_CACHE_VAL(ac_cv_c_tclconfig,[
@@ -93,13 +93,13 @@ if test x"${no_tcl}" = x ; then
])
if test x"${ac_cv_c_tclconfig}" = x ; then
- TCLCONFIG="# no Tcl configs found"
+ TCL_BIN_DIR="# no Tcl configs found"
AC_MSG_WARN(Can't find Tcl configuration definitions)
exit 0
else
no_tcl=
- TCLCONFIG=${ac_cv_c_tclconfig}/tclConfig.sh
- AC_MSG_RESULT(found $TCLCONFIG)
+ TCL_BIN_DIR=${ac_cv_c_tclconfig}
+ AC_MSG_RESULT(found $TCL_BIN_DIR/tclConfig.sh)
fi
fi
])
@@ -118,7 +118,7 @@ fi
# --with-tk=...
#
# Defines the following vars:
-# TKCONFIG Full path to the tkConfig.sh file
+# TK_BIN_DIR Full path to the tkConfig.sh file
#------------------------------------------------------------------------
AC_DEFUN(SC_PATH_TKCONFIG, [
@@ -131,7 +131,7 @@ AC_DEFUN(SC_PATH_TKCONFIG, [
if test x"${no_tk}" = x ; then
# we reset no_tk in case something fails here
no_tk=true
- AC_ARG_WITH(tk, [ --with-tk directory containing tk configuration (tkConfig.sh)],
+ AC_ARG_WITH(tk, [ --with-tk directory containing tk configuration (tkConfig.sh)],
with_tkconfig=${withval})
AC_MSG_CHECKING([for Tk configuration])
AC_CACHE_VAL(ac_cv_c_tkconfig,[
@@ -183,13 +183,13 @@ if test x"${no_tk}" = x ; then
fi
])
if test x"${ac_cv_c_tkconfig}" = x ; then
- TKCONFIG="# no Tk configs found"
+ TK_BIN_DIR="# no Tk configs found"
AC_MSG_WARN(Can't find Tk configuration definitions)
exit 0
else
no_tk=
- TKCONFIG=${ac_cv_c_tkconfig}/tkConfig.sh
- AC_MSG_RESULT(found $TKCONFIG)
+ TK_BIN_DIR=${ac_cv_c_tkconfig}
+ AC_MSG_RESULT(found $TK_BIN_DIR/tkConfig.sh)
fi
fi
@@ -203,92 +203,37 @@ fi
# Arguments:
#
# Requires the following vars to be set:
-# TCLCONFIG
+# TCL_BIN_DIR
#
# Results:
#
-# Subst's the following vars:
-# TCL_CC
-# TCL_DEFS
-# TCL_CFLAGS
-# TCL_DBGX
-# TCL_LIBS
-# TCL_SHLIB_LD
-# SHLIB_SUFFIX
-# TCL_LD_FLAGS
-# TCL_BUILD_LIB_SPEC
-# TCL_LIB_SPEC
-# TCL_SHARED_LIB_SUFFIX
+# Sets the following vars that should be in tclConfig.sh:
+# TCL_SRC_DIR
+# TCL_LIB_FILE
+# TCL_LIB_FLAG
+# Does not defines the following vars:
+# TCL_THREADS
+#
#------------------------------------------------------------------------
AC_DEFUN(SC_LOAD_TCLCONFIG, [
- if test -f "$TCLCONFIG" ; then
- . $TCLCONFIG
+ if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+ . $TCL_BIN_DIR/tclConfig.sh
fi
-dnl AC_SUBST(TCL_VERSION)
-dnl AC_SUBST(TCL_MAJOR_VERSION)
-dnl AC_SUBST(TCL_MINOR_VERSION)
- AC_SUBST(TCL_CC)
- AC_SUBST(TCL_DEFS)
- AC_SUBST(TCL_CFLAGS)
- AC_SUBST(TCL_DBGX)
-
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TCL_LIB_FILE)
-
-dnl don't export, not used outside of configure
- AC_SUBST(TCL_LIBS)
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TCL_PREFIX)
-
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TCL_EXEC_PREFIX)
-
-
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TCL_SHLIB_CFLAGS)
- AC_SUBST(TCL_SHLIB_LD)
-dnl don't export, not used outside of configure
-dnl AC_SUBST(TCL_SHLIB_LD_LIBS)
-
-# Tcl defines TCL_SHLIB_SUFFIX but TCL_SHARED_LIB_SUFFIX then looks for it
-# as just SHLIB_SUFFIX. How bizarre.
- SHLIB_SUFFIX=$TCL_SHLIB_SUFFIX
- AC_SUBST(SHLIB_SUFFIX)
-
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TCL_DL_LIBS)
- AC_SUBST(TCL_LD_FLAGS)
-dnl don't export, not used outside of configure
-dnl AC_SUBST(TCL_LD_SEARCH_FLAGS)
-dnl AC_SUBST(TCL_COMPAT_OBJS)
-dnl AC_SUBST(TCL_RANLIB)
-
-# if Tcl's build directory has been removed, TCL_LIB_SPEC should
-# be used instead of TCL_BUILD_LIB_SPEC
-SAVELIBS=$LIBS
-eval "LIBS=\"$TCL_BUILD_LIB_SPEC $TCL_LIBS\""
-AC_CHECK_FUNC(Tcl_CreateCommand,[
- AC_MSG_CHECKING([if Tcl library build specification is valid])
- AC_MSG_RESULT(yes)
-],[
- TCL_BUILD_LIB_SPEC=$TCL_LIB_SPEC
- # Can't pull the following CHECKING call out since it will be
- # broken up by the CHECK_FUNC just above.
- AC_MSG_CHECKING([if Tcl library build specification is valid])
- AC_MSG_RESULT(no)
-])
-LIBS=$SAVELIBS
-
- AC_SUBST(TCL_BUILD_LIB_SPEC)
- AC_SUBST(TCL_LIB_SPEC)
-dnl AC_SUBST(TCL_LIB_VERSIONS_OK)
+ #
+ # The eval is required to do the TCL_DBGX substitution in the
+ # TCL_LIB_FILE variable
+ #
- AC_SUBST(TCL_SHARED_LIB_SUFFIX)
+ eval TCL_LIB_FILE=${TCL_LIB_FILE}
+ eval TCL_LIB_FLAG=${TCL_LIB_FLAG}
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
+# if test "x$TCL_THREADS" = "x"; then
+# echo "Tcl not built with threads"
+# else
+# AC_DEFINE(TCL_THREADS)
+# fi
])
#------------------------------------------------------------------------
@@ -299,7 +244,7 @@ dnl AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
# Arguments:
#
# Requires the following vars to be set:
-# TKCONFIG
+# TK_BIN_DIR
#
# Results:
#
@@ -315,32 +260,9 @@ dnl AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
#------------------------------------------------------------------------
AC_DEFUN(SC_LOAD_TKCONFIG, [
- if test -f "$TKCONFIG" ; then
- . $TKCONFIG
+ if test -f "$TK_BIN_DIR/tkConfig.sh" ; then
+ . $TK_BIN_DIR/tkConfig.sh
fi
-
- AC_SUBST(TK_VERSION)
-dnl not actually used, don't export to save symbols
-dnl AC_SUBST(TK_MAJOR_VERSION)
-dnl AC_SUBST(TK_MINOR_VERSION)
- AC_SUBST(TK_DEFS)
- AC_SUBST(TK_DBGX)
-
-dnl not used, don't export to save symbols
- dnl AC_SUBST(TK_LIB_FILE)
-
-dnl not used outside of configure
- AC_SUBST(TK_LIBS)
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TK_PREFIX)
-
-dnl not used, don't export to save symbols
-dnl AC_SUBST(TK_EXEC_PREFIX)
-
- AC_SUBST(TK_XINCLUDES)
- AC_SUBST(TK_XLIBSW)
- AC_SUBST(TK_BUILD_LIB_SPEC)
- AC_SUBST(TK_LIB_SPEC)
])
#------------------------------------------------------------------------
@@ -385,29 +307,35 @@ AC_DEFUN(SC_ENABLE_GCC, [
# --enable-shared=yes|no
#
# Subst's the following vars:
-# BUILD_SHARED Value of YES or NO
+# SHARED_BUILD Value of 1 or 0
+#
+# May define the following vars:
+# STATIC_BUILD (Not sure, but might only be used in Windows)
#------------------------------------------------------------------------
AC_DEFUN(SC_ENABLE_SHARED, [
+ AC_MSG_CHECKING([how to build libraries])
AC_ARG_ENABLE(shared,
[ --enable-shared build and link with shared libraries [--enable-shared]],
- [BUILD_SHARED=$enableval],
- [BUILD_SHARED=NO])
- case "$BUILD_SHARED" in
- YES|yes)
- AC_MSG_RESULT(Will build shared libraries)
- BUILD_SHARED=YES
- ;;
- NO|no)
- AC_MSG_RESULT(Will not build shared libraries)
- BUILD_SHARED=NO
- ;;
- *)
- AC_MSG_ERROR(Invalid argument to --enable-shared=, expected YES or NO)
- exit 1
- ;;
- esac
- AC_SUBST(BUILD_SHARED)
+ [tcl_ok=$enableval], [tcl_ok=yes])
+
+ if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ tcl_ok=$enableval
+ else
+ tcl_ok=yes
+ fi
+
+ if test "$tcl_ok" = "yes" ; then
+ AC_MSG_RESULT([shared])
+ SHARED_BUILD=1
+ else
+ AC_MSG_RESULT([static])
+ SHARED_BUILD=0
+ AC_DEFINE(STATIC_BUILD)
+ fi
+
+ AC_SUBST(SHARED_BUILD)
])
#------------------------------------------------------------------------
@@ -421,21 +349,25 @@ AC_DEFUN(SC_ENABLE_SHARED, [
# Results:
#
# Adds the following arguments to configure:
-# --enable-threads=yes|no
+# --enable-threads
#
-# Defines the following vars:
+# Sets the following vars:
# THREADS_LIBS Thread library(s)
+#
+# Defines the following vars:
# TCL_THREADS
# _REENTRANT
-# CFLAGS_WARNING C flags warnings for gcc
#
#------------------------------------------------------------------------
AC_DEFUN(SC_ENABLE_THREADS, [
- AC_ARG_ENABLE(threads,[ --enable-threads enable Threads support [--disable-threads]],,enableval="no")
+ AC_MSG_CHECKING(for building with threads)
+ AC_ARG_ENABLE(threads, [ --enable-threads build with threads],
+ [tcl_ok=$enableval], [tcl_ok=no])
- if test "$enableval" = "yes"; then
- AC_MSG_RESULT(Will compile with Threads support)
+ if test "$tcl_ok" = "yes"; then
+ AC_MSG_RESULT(yes)
+ TCL_THREADS=1
AC_DEFINE(TCL_THREADS)
AC_DEFINE(_REENTRANT)
@@ -444,21 +376,14 @@ AC_DEFUN(SC_ENABLE_THREADS, [
# The space is needed
THREADS_LIBS=" -lpthread"
else
+ TCL_THREADS=0
AC_MSG_WARN("Don t know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...")
fi
else
- AC_MSG_RESULT(Will compile without Threads support (normal))
+ TCL_THREADS=0
+ AC_MSG_RESULT(no (default))
fi
- # set the warning flags depending on whether or not we are using gcc
- if test "${GCC}" = "yes" ; then
- # leave -Wimplicit-int out, the X libs generate so many of these warnings
- # that they obscure everything else.
-
- CFLAGS_WARNING="-Wall -Wconversion -Wno-implicit-int"
- else
- CFLAGS_WARNING=""
- fi
])
#------------------------------------------------------------------------
@@ -472,6 +397,8 @@ AC_DEFUN(SC_ENABLE_THREADS, [
# Requires the following vars to be set:
# CFLAGS_DEBUG
# CFLAGS_OPTIMIZE
+# LDFLAGS_DEBUG
+# LDFLAGS_OPTIMIZE
#
# Results:
#
@@ -481,24 +408,637 @@ AC_DEFUN(SC_ENABLE_THREADS, [
# Defines the following vars:
# CFLAGS_DEFAULT Sets to CFLAGS_DEBUG if true
# Sets to CFLAGS_OPTIMIZE if false
+# LDFLAGS_DEFAULT Sets to LDFLAGS_DEBUG if true
+# Sets to LDFLAGS_OPTIMIZE if false
# DBGX Debug library extension
#
#------------------------------------------------------------------------
AC_DEFUN(SC_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" = "yes"; then
- CFLAGS_DEFAULT='$(CFLAGS_DEBUG)'
+ CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+ LD_FLAGS_DEFAULT="${LDFLAGS_DEBUG}"
DBGX=g
+ AC_MSG_RESULT([yes])
else
- CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
+ CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+ LD_FLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
DBGX=""
+ AC_MSG_RESULT([no])
+ fi
+])
+
+#--------------------------------------------------------------------
+# SC_SERIAL_PORT
+#
+# Determine which interface to use to talk to the serial port.
+# Note that #include lines must begin in leftmost column for
+# some compilers to recognize them as preprocessor directives.
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Defines only one of the following vars:
+# USE_TERMIOS
+# USE_TERMIO
+# USE_SGTTY
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_SERIAL_PORT, [
+ AC_MSG_CHECKING([termios vs. termio vs. sgtty])
+
+ AC_TRY_RUN([
+#include <termios.h>
+
+main()
+{
+ struct termios t;
+ if (tcgetattr(0, &t) == 0) {
+ cfsetospeed(&t, 0);
+ t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+}], tk_ok=termios, tk_ok=no, tk_ok=no)
+
+ if test $tk_ok = termios; then
+ AC_DEFINE(USE_TERMIOS)
+ else
+ AC_TRY_RUN([
+#include <termio.h>
+
+main()
+{
+ struct termio t;
+ if (ioctl(0, TCGETA, &t) == 0) {
+ t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+ }], tk_ok=termio, tk_ok=no, tk_ok=no)
+
+ if test $tk_ok = termio; then
+ AC_DEFINE(USE_TERMIO)
+ else
+ AC_TRY_RUN([
+#include <sgtty.h>
+
+main()
+{
+ struct sgttyb t;
+ if (ioctl(0, TIOCGETP, &t) == 0) {
+ t.sg_ospeed = 0;
+ t.sg_flags |= ODDP | EVENP | RAW;
+ return 0;
+ }
+ return 1;
+}], tk_ok=sgtty, tk_ok=none, tk_ok=none)
+ if test $tk_ok = sgtty; then
+ AC_DEFINE(USE_SGTTY)
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($tk_ok)
+])
+
+#--------------------------------------------------------------------
+# SC_MISSING_POSIX_HEADERS
+#
+# Supply substitutes for missing POSIX header files. Special
+# notes:
+# - stdlib.h doesn't define strtol, strtoul, or
+# strtod insome versions of SunOS
+# - some versions of string.h don't declare procedures such
+# as strstr
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Defines some of the following vars:
+# NO_DIRENT_H
+# NO_ERRNO_H
+# NO_VALUES_H
+# 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 ?
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_MISSING_POSIX_HEADERS, [
+
+ AC_MSG_CHECKING(dirent.h)
+ AC_TRY_LINK([#include <sys/types.h>
+#include <dirent.h>], [
+#ifndef _POSIX_SOURCE
+# ifdef __Lynx__
+ /*
+ * Generate compilation error to make the test fail: Lynx headers
+ * are only valid if really in the POSIX environment.
+ */
+
+ missing_procedure();
+# endif
+#endif
+DIR *d;
+struct dirent *entryPtr;
+char *p;
+d = opendir("foobar");
+entryPtr = readdir(d);
+p = entryPtr->d_name;
+closedir(d);
+], tcl_ok=yes, tcl_ok=no)
+
+ if test $tcl_ok = no; then
+ AC_DEFINE(NO_DIRENT_H)
+ fi
+
+ AC_MSG_RESULT($tcl_ok)
+ 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(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)
+ AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0)
+ if test $tcl_ok = 0; then
+ AC_DEFINE(NO_STDLIB_H)
+ fi
+ AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0)
+ AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0)
+ AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0)
+
+ # See also memmove check below for a place where NO_STRING_H can be
+ # set and why.
+
+ if test $tcl_ok = 0; then
+ AC_DEFINE(NO_STRING_H)
+ fi
+
+ AC_CHECK_HEADER(sys/wait.h, , AC_DEFINE(NO_SYS_WAIT_H))
+ 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)
+
+])
+
+#--------------------------------------------------------------------
+# SC_PATH_X
+#
+# Locate the X11 header files and the X11 library archive. Try
+# the ac_path_x macro first, but if it doesn't find the X stuff
+# (e.g. because there's no xmkmf program) then check through
+# a list of possible directories. Under some conditions the
+# autoconf macro will return an include directory that contains
+# no include files, so double-check its result just to be safe.
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Sets the the following vars:
+# XINCLUDES
+# XLIBSW
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_PATH_X, [
+ AC_PATH_X
+ not_really_there=""
+ if test "$no_x" = ""; then
+ if test "$x_includes" = ""; then
+ AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")
+ else
+ if test ! -r $x_includes/X11/Intrinsic.h; then
+ not_really_there="yes"
+ fi
+ fi
+ fi
+ if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
+ AC_MSG_CHECKING(for X11 header files)
+ XINCLUDES="# no special path needed"
+ AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="nope")
+ if test "$XINCLUDES" = nope; then
+ dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include"
+ for i in $dirs ; do
+ if test -r $i/X11/Intrinsic.h; then
+ AC_MSG_RESULT($i)
+ XINCLUDES=" -I$i"
+ break
+ fi
+ done
+ fi
+ else
+ if test "$x_includes" != ""; then
+ XINCLUDES=-I$x_includes
+ else
+ XINCLUDES="# no special path needed"
+ fi
+ fi
+ if test "$XINCLUDES" = nope; then
+ AC_MSG_RESULT(couldn't find any!)
+ XINCLUDES="# no include files found"
+ fi
+
+ if test "$no_x" = yes; then
+ AC_MSG_CHECKING(for X11 libraries)
+ XLIBSW=nope
+ dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib"
+ for i in $dirs ; do
+ if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then
+ AC_MSG_RESULT($i)
+ XLIBSW="-L$i -lX11"
+ x_libraries="$i"
+ break
+ fi
+ done
+ else
+ if test "$x_libraries" = ""; then
+ XLIBSW=-lX11
+ else
+ XLIBSW="-L$x_libraries -lX11"
+ fi
+ fi
+ if test "$XLIBSW" = nope ; then
+ AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)
+ fi
+ if test "$XLIBSW" = nope ; then
+ AC_MSG_RESULT(couldn't find any! Using -lX11.)
+ XLIBSW=-lX11
+ fi
+])
+#--------------------------------------------------------------------
+# SC_BLOCKING_STYLE
+#
+# The statements below check for systems where POSIX-style
+# non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented.
+# On these systems (mostly older ones), use the old BSD-style
+# FIONBIO approach instead.
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Defines some of the following vars:
+# HAVE_SYS_IOCTL_H
+# HAVE_SYS_FILIO_H
+# USE_FIONBIO
+# O_NONBLOCK
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_BLOCKING_STYLE, [
+ AC_CHECK_HEADERS(sys/ioctl.h)
+ AC_CHECK_HEADERS(sys/filio.h)
+ AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])
+ if test -f /usr/lib/NextStep/software_version; then
+ system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+ else
+ system=`uname -s`-`uname -r`
+ if test "$?" -ne 0 ; then
+ system=unknown
+ else
+ # Special check for weird MP-RAS system (uname returns weird
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+ system=MP-RAS-`awk '{print $3}' /etc/.relid'`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
+ fi
+ fi
+ fi
+ case $system in
+ # There used to be code here to use FIONBIO under AIX. However, it
+ # was reported that FIONBIO doesn't work under AIX 3.2.5. Since
+ # using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO
+ # code (JO, 5/31/97).
+
+ OSF*)
+ AC_DEFINE(USE_FIONBIO)
+ AC_MSG_RESULT(FIONBIO)
+ ;;
+ SunOS-4*)
+ AC_DEFINE(USE_FIONBIO)
+ AC_MSG_RESULT(FIONBIO)
+ ;;
+ ULTRIX-4.*)
+ AC_DEFINE(USE_FIONBIO)
+ AC_MSG_RESULT(FIONBIO)
+ ;;
+ *)
+ AC_MSG_RESULT(O_NONBLOCK)
+ ;;
+ esac
+])
+
+#--------------------------------------------------------------------
+# SC_HAVE_VFORK
+#
+# Check to see whether the system provides a vfork kernel call.
+# If not, then use fork instead. Also, check for a problem with
+# vforks and signals that can cause core dumps if a vforked child
+# resets a signal handler. If the problem exists, then use fork
+# instead of vfork.
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Defines some of the following vars:
+# vfork (=fork)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_HAVE_VFORK, [
+ AC_TYPE_SIGNAL()
+ AC_CHECK_FUNC(vfork, tcl_ok=1, tcl_ok=0)
+ if test "$tcl_ok" = 1; then
+ AC_MSG_CHECKING([vfork/signal bug]);
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <signal.h>
+#include <sys/wait.h>
+int gotSignal = 0;
+sigProc(sig)
+ int sig;
+{
+ gotSignal = 1;
+}
+main()
+{
+ int pid, sts;
+ (void) signal(SIGCHLD, sigProc);
+ pid = vfork();
+ if (pid < 0) {
+ exit(1);
+ } else if (pid == 0) {
+ (void) signal(SIGCHLD, SIG_DFL);
+ _exit(0);
+ } else {
+ (void) wait(&sts);
+ }
+ exit((gotSignal) ? 0 : 1);
+}], tcl_ok=1, tcl_ok=0, tcl_ok=0)
+
+ if test "$tcl_ok" = 1; then
+ AC_MSG_RESULT(ok)
+ else
+ AC_MSG_RESULT([buggy, using fork instead])
+ fi
+ fi
+ rm -f core
+ if test "$tcl_ok" = 0; then
+ AC_DEFINE(vfork, fork)
+ fi
+])
+
+#--------------------------------------------------------------------
+# SC_TIME_HANLDER
+#
+# Checks how the system deals with time.h, what time structures
+# are used on the system, and what fields the structures have.
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Defines some of the following vars:
+# USE_DELTA_FOR_TZ
+# HAVE_TM_GMTOFF
+# HAVE_TM_TZADJ
+# HAVE_TIMEZONE_VAR
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_TIME_HANDLER, [
+ AC_CHECK_HEADERS(sys/time.h)
+ AC_HEADER_TIME
+ AC_STRUCT_TIMEZONE
+
+ AC_MSG_CHECKING([tm_tzadj in struct tm])
+ AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;],
+ [AC_DEFINE(HAVE_TM_TZADJ)
+ AC_MSG_RESULT(yes)],
+ AC_MSG_RESULT(no))
+
+ AC_MSG_CHECKING([tm_gmtoff in struct tm])
+ AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
+ [AC_DEFINE(HAVE_TM_GMTOFF)
+ AC_MSG_RESULT(yes)],
+ AC_MSG_RESULT(no))
+
+ #
+ # Its important to include time.h in this check, as some systems
+ # (like convex) have timezone functions, etc.
+ #
+ have_timezone=no
+ AC_MSG_CHECKING([long timezone variable])
+ AC_TRY_COMPILE([#include <time.h>],
+ [extern long timezone;
+ timezone += 1;
+ exit (0);],
+ [have_timezone=yes
+ AC_DEFINE(HAVE_TIMEZONE_VAR)
+ AC_MSG_RESULT(yes)],
+ AC_MSG_RESULT(no))
+
+ #
+ # On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
+ #
+ if test "$have_timezone" = no; then
+ AC_MSG_CHECKING([time_t timezone variable])
+ AC_TRY_COMPILE([#include <time.h>],
+ [extern time_t timezone;
+ timezone += 1;
+ exit (0);],
+ [AC_DEFINE(HAVE_TIMEZONE_VAR)
+ AC_MSG_RESULT(yes)],
+ AC_MSG_RESULT(no))
+ fi
+
+ #
+ # AIX does not have a timezone field in struct tm. When the AIX bsd
+ # library is used, the timezone global and the gettimeofday methods are
+ # to be avoided for timezone deduction instead, we deduce the timezone
+ # by comparing the localtime result on a known GMT value.
+ #
+
+ if test "`uname -s`" = "AIX" ; then
+ AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes)
+ if test $libbsd = yes; then
+ AC_DEFINE(USE_DELTA_FOR_TZ)
+ fi
fi
])
+#--------------------------------------------------------------------
+# SC_BUGGY_STRTOD
+#
+# Under Solaris 2.4, strtod returns the wrong value for the
+# terminating character under some conditions. Check for this
+# and if the problem exists use a substitute procedure
+# "fixstrtod" (provided by Tcl) that corrects the error.
+#
+# Arguments:
+# none
+#
+# Results:
+#
+# Might defines some of the following vars:
+# strtod (=fixstrtod)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_BUGGY_STRTOD, [
+ AC_CHECK_FUNC(strtod, tk_strtod=1, tk_strtod=0)
+ if test "$tk_strtod" = 1; then
+ AC_MSG_CHECKING([for Solaris 2.4 strtod bug])
+ AC_TRY_RUN([
+ extern double strtod();
+ int main()
+ {
+ char *string = "NaN";
+ char *term;
+ strtod(string, &term);
+ if ((term != string) && (term[-1] == 0)) {
+ exit(1);
+ }
+ exit(0);
+ }], tk_ok=1, tk_ok=0, tk_ok=0)
+ if test "$tk_ok" = 1; then
+ AC_MSG_RESULT(ok)
+ else
+ AC_MSG_RESULT(buggy)
+ AC_DEFINE(strtod, fixstrtod)
+ fi
+ fi
+])
+
+#--------------------------------------------------------------------
+# SC_TCL_LINK_LIBS
+#
+# Search for the libraries needed to link the Tcl shell.
+# Things like the math library (-lm) and socket stuff (-lsocket vs.
+# -lnsl) are dealt with here.
+#
+# Arguments:
+# Requires the following vars to be set in the Makefile:
+# DL_LIBS
+# LIBS
+# MATH_LIBS
+#
+# Results:
+#
+# Subst's the following var:
+# TCL_LIBS
+# MATH_LIBS
+#
+# Might append to the following vars:
+# LIBS
+#
+# Might define the following vars:
+# HAVE_NET_ERRNO_H
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_TCL_LINK_LIBS, [
+ #--------------------------------------------------------------------
+ # On a few very rare systems, all of the libm.a stuff is
+ # already in libc.a. Set compiler flags accordingly.
+ # Also, Linux requires the "ieee" library for math to work
+ # right (and it must appear before "-lm").
+ #--------------------------------------------------------------------
+
+ AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
+ AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
+
+ #--------------------------------------------------------------------
+ # On AIX systems, libbsd.a has to be linked in to support
+ # non-blocking file IO. This library has to be linked in after
+ # the MATH_LIBS or it breaks the pow() function. The way to
+ # insure proper sequencing, is to add it to the tail of MATH_LIBS.
+ # This library also supplies gettimeofday.
+ #--------------------------------------------------------------------
+
+ libbsd=no
+ if test "`uname -s`" = "AIX" ; then
+ AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes)
+ if test $libbsd = yes; then
+ MATH_LIBS="$MATH_LIBS -lbsd"
+ fi
+ fi
+
+
+ #--------------------------------------------------------------------
+ # Interactive UNIX requires -linet instead of -lsocket, plus it
+ # needs net/errno.h to define the socket-related error codes.
+ #--------------------------------------------------------------------
+
+ AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"])
+ AC_CHECK_HEADER(net/errno.h, AC_DEFINE(HAVE_NET_ERRNO_H))
+
+ #--------------------------------------------------------------------
+ # Check for the existence of the -lsocket and -lnsl libraries.
+ # The order here is important, so that they end up in the right
+ # order in the command line generated by make. Here are some
+ # special considerations:
+ # 1. Use "connect" and "accept" to check for -lsocket, and
+ # "gethostbyname" to check for -lnsl.
+ # 2. Use each function name only once: can't redo a check because
+ # autoconf caches the results of the last check and won't redo it.
+ # 3. Use -lnsl and -lsocket only if they supply procedures that
+ # aren't already present in the normal libraries. This is because
+ # IRIX 5.2 has libraries, but they aren't needed and they're
+ # bogus: they goof up name resolution if used.
+ # 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
+ # To get around this problem, check for both libraries together
+ # if -lsocket doesn't work by itself.
+ #--------------------------------------------------------------------
+
+ tcl_checkBoth=0
+ AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1)
+ if test "$tcl_checkSocket" = 1; then
+ AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket", tcl_checkBoth=1)
+ fi
+ if test "$tcl_checkBoth" = 1; then
+ tk_oldLibs=$LIBS
+ LIBS="$LIBS -lsocket -lnsl"
+ AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs])
+ fi
+ AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main,
+ [LIBS="$LIBS -lnsl"]))
+
+ # Don't perform the eval of the libraries here because DL_LIBS
+ # won't be set until we call SC_CONFIG_CFLAGS
+
+ TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}'
+ AC_SUBST(TCL_LIBS)
+ AC_SUBST(MATH_LIBS)
+])
#--------------------------------------------------------------------
-# SC_TCL_CONFIG_CFLAGS
+# SC_CONFIG_CFLAGS
#
# Try to determine the proper flags to pass to the compiler
# for building shared libraries and other such nonsense.
@@ -569,10 +1109,30 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [
# Flags used when running the compiler in debug mode
# CFLAGS_OPTIMIZE -
# Flags used when running the compiler in optimize mode
+#
+# EXTRA_CFLAGS
+#
+# Subst's the following vars:
+# DL_LIBS
+# CFLAGS_DEBUG
+# CFLAGS_OPTIMIZE
#--------------------------------------------------------------------
-AC_DEFUN(SC_TCL_CONFIG_CFLAGS, [
+AC_DEFUN(SC_CONFIG_CFLAGS, [
+
+ # Step 0: Enable 64 bit support?
+ AC_MSG_CHECKING([if 64bit support is enabled])
+ AC_ARG_ENABLE(64bit,[ --enable-64bit enable 64bit support],,enableval="no")
+
+ if test "$enableval" = "yes"; then
+ AC_MSG_RESULT(Will compile with 64bit support)
+ do64bit=yes
+ else
+ do64bit=no
+ fi
+ AC_MSG_RESULT($do64bit)
+
# 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.
@@ -1123,5 +1683,9 @@ AC_DEFUN(SC_TCL_CONFIG_CFLAGS, [
esac
fi
fi
+
+ AC_SUBST(DL_LIBS)
+ AC_SUBST(CFLAGS_DEBUG)
+ AC_SUBST(CFLAGS_OPTIMIZE)
])
diff --git a/unix/configure.in b/unix/configure.in
index 74a8eed..9ca62e1 100644
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -3,7 +3,7 @@ dnl This file is an input file used by the GNU "autoconf" program to
dnl generate the file "configure", which is run during Tk installation
dnl to configure the system for the local environment.
AC_INIT(../generic/tk.h)
-# RCS: @(#) $Id: configure.in,v 1.34 1999/05/26 02:39:14 stanton Exp $
+# RCS: @(#) $Id: configure.in,v 1.35 1999/06/15 22:23:19 wart Exp $
TK_VERSION=8.1
TK_MAJOR_VERSION=8
@@ -20,46 +20,27 @@ if test "${exec_prefix}" = "NONE"; then
fi
TK_SRC_DIR=`cd $srcdir/..; pwd`
-# Most of the checks here are duplicated from Tcl's configure.in
-# and should not be redone but rather simply used from the definitions
-# found in tclConfig.sh
-
AC_PROG_RANLIB
-AC_ARG_ENABLE(gcc, [ --enable-gcc allow use of gcc if available],
- [tk_ok=$enableval], [tk_ok=no])
-if test "$tk_ok" = "yes"; then
- AC_PROG_CC
-else
- CC=${CC-cc}
-AC_SUBST(CC)
-fi
-AC_C_CROSS
+SC_ENABLE_GCC
+AC_PROG_CC
+
+#------------------------------------------------------------------------
+# I'm not sure why these need to come before all of the other tests
+#------------------------------------------------------------------------
+
AC_HAVE_HEADERS(unistd.h limits.h)
+#------------------------------------------------------------------------
# Threads support
-AC_ARG_ENABLE(threads,[ --enable-threads enable Threads support],,enableval="no")
-
-if test "$enableval" = "yes"; then
- AC_MSG_RESULT(Will compile with Threads support)
- AC_DEFINE(TCL_THREADS)
- AC_DEFINE(_REENTRANT)
-
- AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no)
- if test "$tcl_ok" = "yes"; then
- # The space is needed
- THREADS_LIBS=" -lpthread"
- else
- AC_MSG_WARN("Don t know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...")
- fi
-else
- AC_MSG_RESULT(Will compile without Threads support (normal))
-fi
+#------------------------------------------------------------------------
-# set the warning flags depending on whether or not we are using gcc
-if test "${GCC}" = "yes" ; then
- # leave -Wimplicit-int out, the X libs generate so many of these warnings
- # that they obscure everything else.
+SC_ENABLE_THREADS
+
+#------------------------------------------------------------------------
+# Set the warning flags depending on whether or not we are using gcc
+#------------------------------------------------------------------------
+if test "${GCC}" = "yes" ; then
CFLAGS_WARNING="-Wall -Wconversion -Wno-implicit-int"
else
CFLAGS_WARNING=""
@@ -83,71 +64,62 @@ fi
fi
#--------------------------------------------------------------------
-# See if there was a command-line option for where Tcl is; if
-# not, assume that its top-level directory is a sibling of ours.
-# Try the patch-level-specific directory first, then the general one.
+# Find and load the tclConfig.sh file
#--------------------------------------------------------------------
-
-if test -d ../../tcl8.1$TK_PATCH_LEVEL/unix; then
- TCL_BIN_DEFAULT=../../tcl8.1$TK_PATCH_LEVEL/unix
-else
- TCL_BIN_DEFAULT=../../tcl8.1/unix
-fi
-
-AC_ARG_WITH(tcl, [ --with-tcl=DIR use Tcl 8.1 binaries from DIR],
- TCL_BIN_DIR=$withval, TCL_BIN_DIR=`cd $TCL_BIN_DEFAULT; pwd`)
-if test ! -d $TCL_BIN_DIR; then
- AC_MSG_ERROR(Tcl directory $TCL_BIN_DIR doesn't exist)
-fi
-if test ! -f $TCL_BIN_DIR/Makefile; then
- AC_MSG_ERROR(There's no Makefile in $TCL_BIN_DIR; perhaps you didn't specify the Tcl *build* directory (not the toplevel Tcl directory) or you forgot to configure Tcl?)
-fi
+SC_PATH_TCLCONFIG
+SC_LOAD_TCLCONFIG
#--------------------------------------------------------------------
-# Read in configuration information generated by Tcl for shared
-# libraries, and arrange for it to be substituted into our
-# Makefile.
+# Recompute the necessary flags to run the compiler
#--------------------------------------------------------------------
-file=$TCL_BIN_DIR/tclConfig.sh
-. $file
+SC_CONFIG_CFLAGS
-# Set the default compiler switches based on the --enable-symbols option
-
-AC_ARG_ENABLE(symbols, [ --enable-symbols build with debugging symbols],
- [tcl_ok=$enableval], [tcl_ok=no])
-if test "$tcl_ok" = "yes"; then
- CFLAGS_DEFAULT=CFLAGS_DEBUG
- TK_DBGX=g
-else
- CFLAGS_DEFAULT=CFLAGS_OPTIMIZE
- TK_DBGX=""
-fi
-
-SHLIB_CFLAGS=$TCL_SHLIB_CFLAGS
-SHLIB_LD=$TCL_SHLIB_LD
-SHLIB_LD_LIBS=$TCL_SHLIB_LD_LIBS
-SHLIB_SUFFIX=$TCL_SHLIB_SUFFIX
-SHLIB_VERSION=$TCL_SHLIB_VERSION
-DL_LIBS=$TCL_DL_LIBS
-LD_FLAGS=$TCL_LD_FLAGS
-CFLAGS_DEBUG=$TCL_CFLAGS_DEBUG
-CFLAGS_OPTIMIZE=$TCL_CFLAGS_OPTIMIZE
-EXTRA_CFLAGS=$TCL_EXTRA_CFLAGS
+SC_ENABLE_SYMBOLS
LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}'
+CFLAGS=${CFLAGS_DEFAULT}
+TK_DBGX=${DBGX}
+
+#------------------------------------------------------------------------
# If Tcl and Tk are installed in different places, adjust the library
# search path to reflect this.
+#------------------------------------------------------------------------
if test "$TCL_EXEC_PREFIX" != "$exec_prefix"; then
LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${TCL_EXEC_PREFIX}/lib"
fi
#--------------------------------------------------------------------
-# Supply a substitute for stdlib.h if it doesn't define strtol,
-# strtoul, or strtod (which it doesn't in some versions of SunOS).
+# On a few very rare systems, all of the libm.a stuff is
+# already in libc.a. Set compiler flags accordingly.
+# Also, Linux requires the "ieee" library for math to work
+# right (and it must appear before "-lm").
+#--------------------------------------------------------------------
+
+AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
+AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
+
+#--------------------------------------------------------------------
+# On AIX systems, libbsd.a has to be linked in to support
+# non-blocking file IO. This library has to be linked in after
+# the MATH_LIBS or it breaks the pow() function. The way to
+# insure proper sequencing, is to add it to the tail of MATH_LIBS.
+# This library also supplies gettimeofday.
+#--------------------------------------------------------------------
+libbsd=no
+if test "`uname -s`" = "AIX" ; then
+ AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes)
+ if test $libbsd = yes; then
+ MATH_LIBS="$MATH_LIBS -lbsd"
+ fi
+fi
+
+#--------------------------------------------------------------------
+# Supply a substitute for stdlib.h if it doesn't define strtol,
+# strtoul, or strtod (which it doesn't in some versions of SunOS).
#--------------------------------------------------------------------
AC_MSG_CHECKING(stdlib.h)
@@ -160,13 +132,13 @@ fi
AC_MSG_RESULT($tk_ok)
#--------------------------------------------------------------------
-# Include sys/select.h if it exists and if it supplies things
-# that appear to be useful and aren't already in sys/types.h.
-# This appears to be true only on the RS/6000 under AIX. Some
-# systems like OSF/1 have a sys/select.h that's of no use, and
-# other systems like SCO UNIX have a sys/select.h that's
-# pernicious. If "fd_set" isn't defined anywhere then set a
-# special flag.
+# Include sys/select.h if it exists and if it supplies things
+# that appear to be useful and aren't already in sys/types.h.
+# This appears to be true only on the RS/6000 under AIX. Some
+# systems like OSF/1 have a sys/select.h that's of no use, and
+# other systems like SCO UNIX have a sys/select.h that's
+# pernicious. If "fd_set" isn't defined anywhere then set a
+# special flag.
#--------------------------------------------------------------------
AC_MSG_CHECKING([fd_set and sys/select])
@@ -184,14 +156,14 @@ if test $tk_ok = no; then
fi
#--------------------------------------------------------------------
-# Check for various typedefs and provide substitutes if
-# they don't exist.
+# Check for various typedefs and provide substitutes if
+# they don't exist.
#--------------------------------------------------------------------
-AC_MODE_T
-AC_PID_T
-AC_SIZE_T
-AC_UID_T
+AC_TYPE_MODE_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_UID_T
#------------------------------------------------------------------------------
# Find out about time handling differences.
@@ -221,69 +193,7 @@ fi
# no include files, so double-check its result just to be safe.
#--------------------------------------------------------------------
-AC_PATH_X
-not_really_there=""
-if test "$no_x" = ""; then
- if test "$x_includes" = ""; then
- AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")
- else
- if test ! -r $x_includes/X11/Intrinsic.h; then
- not_really_there="yes"
- fi
- fi
-fi
-if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
- AC_MSG_CHECKING(for X11 header files)
- XINCLUDES="# no special path needed"
- AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="nope")
- if test "$XINCLUDES" = nope; then
- dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include"
- for i in $dirs ; do
- if test -r $i/X11/Intrinsic.h; then
- AC_MSG_RESULT($i)
- XINCLUDES=" -I$i"
- break
- fi
- done
- fi
-else
- if test "$x_includes" != ""; then
- XINCLUDES=-I$x_includes
- else
- XINCLUDES="# no special path needed"
- fi
-fi
-if test "$XINCLUDES" = nope; then
- AC_MSG_RESULT(couldn't find any!)
- XINCLUDES="# no include files found"
-fi
-
-if test "$no_x" = yes; then
- AC_MSG_CHECKING(for X11 libraries)
- XLIBSW=nope
- dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib"
- for i in $dirs ; do
- if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then
- AC_MSG_RESULT($i)
- XLIBSW="-L$i -lX11"
- x_libraries="$i"
- break
- fi
- done
-else
- if test "$x_libraries" = ""; then
- XLIBSW=-lX11
- else
- XLIBSW="-L$x_libraries -lX11"
- fi
-fi
-if test "$XLIBSW" = nope ; then
- AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)
-fi
-if test "$XLIBSW" = nope ; then
- AC_MSG_RESULT(couldn't find any! Using -lX11.)
- XLIBSW=-lX11
-fi
+SC_PATH_X
#--------------------------------------------------------------------
# Various manipulations on the search path used at runtime to
@@ -415,55 +325,41 @@ AC_C_CHAR_UNSIGNED
# "fixstrtod" (provided by Tcl) that corrects the error.
#--------------------------------------------------------------------
-AC_CHECK_FUNC(strtod, tk_strtod=1, tk_strtod=0)
-if test "$tk_strtod" = 1; then
- AC_MSG_CHECKING([for Solaris 2.4 strtod bug])
- AC_TRY_RUN([
- extern double strtod();
- int main()
- {
- char *string = "NaN";
- char *term;
- strtod(string, &term);
- if ((term != string) && (term[-1] == 0)) {
- exit(1);
- }
- exit(0);
- }], tk_ok=1, tk_ok=0, tk_ok=0)
- if test "$tk_ok" = 1; then
- AC_MSG_RESULT(ok)
- else
- AC_MSG_RESULT(buggy)
- AC_DEFINE(strtod, fixstrtod)
- fi
-fi
+SC_BUGGY_STRTOD
#--------------------------------------------------------------------
# The statements below define a collection of symbols related to
# building libtk as a shared library instead of a static library.
#--------------------------------------------------------------------
-AC_ARG_ENABLE(shared,
- [ --enable-shared build libtk as a shared library (on by default)],
- [ok=$enableval], [ok=yes])
-if test "$ok" = "yes" -a "${SHLIB_SUFFIX}" != ""; then
- TK_SHARED_BUILD=1
+SC_ENABLE_SHARED
+
+if test "$TK_SHARED_LIB_SUFFIX" = "" ; then
+ TK_SHARED_LIB_SUFFIX='${VERSION}\$\{TK_DBGX\}${SHLIB_SUFFIX}'
+fi
+if test "$TK_UNSHARED_LIB_SUFFIX" = "" ; then
+ TK_UNSHARED_LIB_SUFFIX='${VERSION}\$\{TK_DBGX\}.a'
+fi
+
+TCL_LIB_SPEC='-L$(TCL_BIN_DIR) $(TCL_LIB_FLAG)'
+TCL_STUB_LIB_SPEC='-L$(TCL_BIN_DIR) $(TCL_STUB_LIB_FLAG)'
+
+if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then
TK_SHLIB_CFLAGS="${SHLIB_CFLAGS}"
- TK_LIB_FILE=libtk${TCL_SHARED_LIB_SUFFIX}
- MAKE_LIB="\${SHLIB_LD} -o \${TK_LIB_FILE} \${OBJS} \$(TK_LD_SEARCH_FLAGS) ${TCL_BUILD_STUB_LIB_SPEC} \${LIBS}"
+ TK_LIB_FILE=libtk${TK_SHARED_LIB_SUFFIX}
+ MAKE_LIB="\${SHLIB_LD} -o \${TK_LIB_FILE} \${OBJS} \$(TK_LD_SEARCH_FLAGS) ${TCL_STUB_LIB_SPEC} \${LIBS}"
RANLIB=":"
- TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
+# TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
+ TCL_STUB_FLAGS=""
else
- TK_SHARED_BUILD=0
TK_SHLIB_CFLAGS=""
- TK_LIB_FILE=libtk${TCL_UNSHARED_LIB_SUFFIX}
+ TK_LIB_FILE=libtk${TK_UNSHARED_LIB_SUFFIX}
MAKE_LIB="ar cr \${TK_LIB_FILE} \${OBJS}"
TCL_STUB_FLAGS=""
fi
-DBGX='${TK_DBGX}'
eval "TK_LIB_FILE=${TK_LIB_FILE}"
# Note: in the following variable, it's important to use the absolute
@@ -471,7 +367,7 @@ eval "TK_LIB_FILE=${TK_LIB_FILE}"
# AIX remembers this path and will attempt to use it at run-time to look
# up the Tcl library.
-if test $TK_SHARED_BUILD = 0 -o $TCL_NEEDS_EXP_FILE = 0; then
+if test "$SHARED_BUILD" = 0 -o $TCL_NEEDS_EXP_FILE = 0; then
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
TK_LIB_FLAG="-ltk${VERSION}\${TK_DBGX}"
else
@@ -490,23 +386,22 @@ else
fi
#--------------------------------------------------------------------
-# The statements below define various symbols relating to Tk
-# using tcl stub support.
-#--------------------------------------------------------------------
-
+# The statements below define various symbols relating to creating
+# the stub'd version of the Tk library
+#
# For now, linking to Tcl stubs is not supported with Tk. It causes
# too many problems with linking. When Tk is a fully loadable
# extension, linking the the Tcl stubs will be supported.
-
+#--------------------------------------------------------------------
# Replace ${VERSION} with contents of ${TK_VERSION}
-eval "STUB_LIB_FILE=libtkstub${TCL_UNSHARED_LIB_SUFFIX}"
+eval "STUB_LIB_FILE=libtkstub${TK_UNSHARED_LIB_SUFFIX}"
MAKE_STUB_LIB="ar cr \${STUB_LIB_FILE} \${STUB_LIB_OBJS}"
TK_STUB_LIB_FILE=${STUB_LIB_FILE}
-if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
+if test "${TK_LIB_VERSIONS_OK}" = "ok"; then
TK_STUB_LIB_FLAG="-ltkstub${TK_VERSION}\${TK_DBGX}"
else
TK_STUB_LIB_FLAG="-ltkstub`echo ${TK_VERSION} | tr -d .`\${TK_DBGX}"
@@ -526,6 +421,12 @@ AC_SUBST(TK_STUB_LIB_SPEC)
AC_SUBST(TK_BUILD_STUB_LIB_PATH)
AC_SUBST(TK_STUB_LIB_PATH)
AC_SUBST(MAKE_STUB_LIB)
+AC_SUBST(TK_STUB_FLAGS)
+AC_SUBST(TK_BUILD_EXP_FILE)
+AC_SUBST(TK_EXP_FILE)
+
+eval "TK_LIB_FILE=${TK_LIB_FILE}"
+
AC_SUBST(TCL_STUB_FLAGS)
AC_SUBST(TK_BUILD_EXP_FILE)
AC_SUBST(TK_EXP_FILE)
@@ -541,13 +442,16 @@ AC_SUBST(LD_FLAGS)
AC_SUBST(MATH_LIBS)
AC_SUBST(MAKE_LIB)
AC_SUBST(SHLIB_CFLAGS)
+AC_SUBST(TK_SHLIB_CFLAGS)
AC_SUBST(SHLIB_LD)
AC_SUBST(SHLIB_LD_LIBS)
AC_SUBST(SHLIB_SUFFIX)
AC_SUBST(SHLIB_VERSION)
AC_SUBST(TCL_BIN_DIR)
-AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
-AC_SUBST(TCL_BUILD_LIB_SPEC)
+AC_SUBST(TCL_LIB_SPEC)
+AC_SUBST(TCL_LIB_FLAG)
+#AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
+#AC_SUBST(TCL_BUILD_LIB_SPEC)
AC_SUBST(TCL_DBGX)
AC_SUBST(TCL_LIB_FLAG)
AC_SUBST(TCL_SRC_DIR)
@@ -561,7 +465,6 @@ AC_SUBST(TK_LIB_SPEC)
AC_SUBST(TK_MAJOR_VERSION)
AC_SUBST(TK_MINOR_VERSION)
AC_SUBST(TK_PATCH_LEVEL)
-AC_SUBST(TK_SHLIB_CFLAGS)
AC_SUBST(TK_SRC_DIR)
AC_SUBST(TK_VERSION)
AC_SUBST(XINCLUDES)