diff options
Diffstat (limited to 'unix/tcl.m4')
| -rw-r--r-- | unix/tcl.m4 | 1927 | 
1 files changed, 1143 insertions, 784 deletions
| diff --git a/unix/tcl.m4 b/unix/tcl.m4 index 2a2af3b..c1d7a7d 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -17,7 +17,7 @@  #				the tclConfig.sh file  #------------------------------------------------------------------------ -AC_DEFUN(SC_PATH_TCLCONFIG, [ +AC_DEFUN([SC_PATH_TCLCONFIG], [      #      # Ok, lets find the tcl configuration      # First, look for one uninstalled. @@ -30,21 +30,21 @@ AC_DEFUN(SC_PATH_TCLCONFIG, [  	AC_ARG_WITH(tcl,  	    AC_HELP_STRING([--with-tcl],  		[directory containing tcl configuration (tclConfig.sh)]), -	    with_tclconfig=${withval}) +	    with_tclconfig="${withval}")  	AC_MSG_CHECKING([for Tcl configuration])  	AC_CACHE_VAL(ac_cv_c_tclconfig,[  	    # First check to see if --with-tcl was specified.  	    if test x"${with_tclconfig}" != x ; then -		case ${with_tclconfig} in +		case "${with_tclconfig}" in  		    */tclConfig.sh ) -			if test -f ${with_tclconfig}; then +			if test -f "${with_tclconfig}"; then  			    AC_MSG_WARN([--with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself]) -			    with_tclconfig=`echo ${with_tclconfig} | sed 's!/tclConfig\.sh$!!'` +			    with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`"  			fi ;;  		esac  		if test -f "${with_tclconfig}/tclConfig.sh" ; then -		    ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)` +		    ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`"  		else  		    AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])  		fi @@ -66,7 +66,7 @@ AC_DEFUN(SC_PATH_TCLCONFIG, [  			`ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \  			`ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do  		    if test -f "$i/unix/tclConfig.sh" ; then -			ac_cv_c_tclconfig=`(cd $i/unix; pwd)` +			ac_cv_c_tclconfig="`(cd $i/unix; pwd)`"  			break  		    fi  		done @@ -80,7 +80,7 @@ AC_DEFUN(SC_PATH_TCLCONFIG, [  			`ls -d /System/Library/Frameworks 2>/dev/null` \  			; do  		    if test -f "$i/Tcl.framework/tclConfig.sh" ; then -			ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)` +			ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`"  			break  		    fi  		done @@ -94,9 +94,10 @@ AC_DEFUN(SC_PATH_TCLCONFIG, [  			`ls -d /usr/local/lib 2>/dev/null` \  			`ls -d /usr/contrib/lib 2>/dev/null` \  			`ls -d /usr/lib 2>/dev/null` \ +			`ls -d /usr/lib64 2>/dev/null` \  			; do  		    if test -f "$i/tclConfig.sh" ; then -			ac_cv_c_tclconfig=`(cd $i; pwd)` +			ac_cv_c_tclconfig="`(cd $i; pwd)`"  			break  		    fi  		done @@ -110,20 +111,19 @@ AC_DEFUN(SC_PATH_TCLCONFIG, [  			`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \  			`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do  		    if test -f "$i/unix/tclConfig.sh" ; then -		    ac_cv_c_tclconfig=`(cd $i/unix; pwd)` -		    break -		fi +			ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" +			break +		    fi  		done  	    fi  	])  	if test x"${ac_cv_c_tclconfig}" = x ; then  	    TCL_BIN_DIR="# no Tcl configs found" -	    AC_MSG_WARN([Can't find Tcl configuration definitions]) -	    exit 0 +	    AC_MSG_ERROR([Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh])  	else  	    no_tcl= -	    TCL_BIN_DIR=${ac_cv_c_tclconfig} +	    TCL_BIN_DIR="${ac_cv_c_tclconfig}"  	    AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh])  	fi      fi @@ -147,7 +147,7 @@ AC_DEFUN(SC_PATH_TCLCONFIG, [  #				the tkConfig.sh file  #------------------------------------------------------------------------ -AC_DEFUN(SC_PATH_TKCONFIG, [ +AC_DEFUN([SC_PATH_TKCONFIG], [      #      # Ok, lets find the tk configuration      # First, look for one uninstalled. @@ -160,21 +160,21 @@ AC_DEFUN(SC_PATH_TKCONFIG, [  	AC_ARG_WITH(tk,  	    AC_HELP_STRING([--with-tk],  		[directory containing tk configuration (tkConfig.sh)]), -	    with_tkconfig=${withval}) +	    with_tkconfig="${withval}")  	AC_MSG_CHECKING([for Tk configuration])  	AC_CACHE_VAL(ac_cv_c_tkconfig,[  	    # First check to see if --with-tkconfig was specified.  	    if test x"${with_tkconfig}" != x ; then -		case ${with_tkconfig} in +		case "${with_tkconfig}" in  		    */tkConfig.sh ) -			if test -f ${with_tkconfig}; then +			if test -f "${with_tkconfig}"; then  			    AC_MSG_WARN([--with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself]) -			    with_tkconfig=`echo ${with_tkconfig} | sed 's!/tkConfig\.sh$!!'` +			    with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`"  			fi ;;  		esac  		if test -f "${with_tkconfig}/tkConfig.sh" ; then -		    ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)` +		    ac_cv_c_tkconfig="`(cd "${with_tkconfig}"; pwd)`"  		else  		    AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh])  		fi @@ -196,7 +196,7 @@ AC_DEFUN(SC_PATH_TKCONFIG, [  			`ls -dr ../../../tk[[8-9]].[[0-9]] 2>/dev/null` \  			`ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do  		    if test -f "$i/unix/tkConfig.sh" ; then -			ac_cv_c_tkconfig=`(cd $i/unix; pwd)` +			ac_cv_c_tkconfig="`(cd $i/unix; pwd)`"  			break  		    fi  		done @@ -210,7 +210,7 @@ AC_DEFUN(SC_PATH_TKCONFIG, [  			`ls -d /System/Library/Frameworks 2>/dev/null` \  			; do  		    if test -f "$i/Tk.framework/tkConfig.sh" ; then -			ac_cv_c_tkconfig=`(cd $i/Tk.framework; pwd)` +			ac_cv_c_tkconfig="`(cd $i/Tk.framework; pwd)`"  			break  		    fi  		done @@ -224,13 +224,15 @@ AC_DEFUN(SC_PATH_TKCONFIG, [  			`ls -d /usr/local/lib 2>/dev/null` \  			`ls -d /usr/contrib/lib 2>/dev/null` \  			`ls -d /usr/lib 2>/dev/null` \ +			`ls -d /usr/lib64 2>/dev/null` \  			; do  		    if test -f "$i/tkConfig.sh" ; then -			ac_cv_c_tkconfig=`(cd $i; pwd)` +			ac_cv_c_tkconfig="`(cd $i; pwd)`"  			break  		    fi  		done  	    fi +  	    # check in a few other private locations  	    if test x"${ac_cv_c_tkconfig}" = x ; then  		for i in \ @@ -239,7 +241,7 @@ AC_DEFUN(SC_PATH_TKCONFIG, [  			`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \  			`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do  		    if test -f "$i/unix/tkConfig.sh" ; then -			ac_cv_c_tkconfig=`(cd $i/unix; pwd)` +			ac_cv_c_tkconfig="`(cd $i/unix; pwd)`"  			break  		    fi  		done @@ -248,11 +250,10 @@ AC_DEFUN(SC_PATH_TKCONFIG, [  	if test x"${ac_cv_c_tkconfig}" = x ; then  	    TK_BIN_DIR="# no Tk configs found" -	    AC_MSG_WARN([Can't find Tk configuration definitions]) -	    exit 0 +	    AC_MSG_ERROR([Can't find Tk configuration definitions. Use --with-tk to specify a directory containing tkConfig.sh])  	else  	    no_tk= -	    TK_BIN_DIR=${ac_cv_c_tkconfig} +	    TK_BIN_DIR="${ac_cv_c_tkconfig}"  	    AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh])  	fi      fi @@ -264,25 +265,24 @@ AC_DEFUN(SC_PATH_TKCONFIG, [  #	Load the tclConfig.sh file  #  # Arguments: -#	 +#  #	Requires the following vars to be set:  #		TCL_BIN_DIR  #  # Results:  # -#	Subst the following vars: +#	Substitutes the following vars:  #		TCL_BIN_DIR  #		TCL_SRC_DIR  #		TCL_LIB_FILE -#  #------------------------------------------------------------------------ -AC_DEFUN(SC_LOAD_TCLCONFIG, [ +AC_DEFUN([SC_LOAD_TCLCONFIG], [      AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh])      if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then          AC_MSG_RESULT([loading]) -	. ${TCL_BIN_DIR}/tclConfig.sh +	. "${TCL_BIN_DIR}/tclConfig.sh"      else          AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh])      fi @@ -297,27 +297,27 @@ AC_DEFUN(SC_LOAD_TCLCONFIG, [      # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC      # instead of TCL_BUILD_LIB_SPEC since it will work with both an      # installed and uninstalled version of Tcl. -    if test -f ${TCL_BIN_DIR}/Makefile ; then -        TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC} -        TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC} -        TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH} +    if test -f "${TCL_BIN_DIR}/Makefile" ; then +        TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}" +        TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}" +        TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}"      elif test "`uname -s`" = "Darwin"; then  	# If Tcl was built as a framework, attempt to use the libraries  	# from the framework at the given location so that linking works -	# against Tcl.framework installed in an arbitary location. +	# against Tcl.framework installed in an arbitrary location.  	case ${TCL_DEFS} in  	    *TCL_FRAMEWORK*) -		if test -f ${TCL_BIN_DIR}/${TCL_LIB_FILE}; then -		    for i in "`cd ${TCL_BIN_DIR}; pwd`" \ -			     "`cd ${TCL_BIN_DIR}/../..; pwd`"; do +		if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then +		    for i in "`cd "${TCL_BIN_DIR}"; pwd`" \ +			     "`cd "${TCL_BIN_DIR}"/../..; pwd`"; do  			if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then -			    TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}" +			    TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}"  			    break  			fi  		    done  		fi -		if test -f ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}; then -		    TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}" +		if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then +		    TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}"  | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}"  		    TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"  		fi  		;; @@ -331,6 +331,7 @@ AC_DEFUN(SC_LOAD_TCLCONFIG, [      eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""      AC_SUBST(TCL_VERSION) +    AC_SUBST(TCL_PATCH_LEVEL)      AC_SUBST(TCL_BIN_DIR)      AC_SUBST(TCL_SRC_DIR) @@ -349,7 +350,7 @@ AC_DEFUN(SC_LOAD_TCLCONFIG, [  #	Load the tkConfig.sh file  #  # Arguments: -#	 +#  #	Requires the following vars to be set:  #		TK_BIN_DIR  # @@ -359,12 +360,12 @@ AC_DEFUN(SC_LOAD_TCLCONFIG, [  #		TK_BIN_DIR  #------------------------------------------------------------------------ -AC_DEFUN(SC_LOAD_TKCONFIG, [ +AC_DEFUN([SC_LOAD_TKCONFIG], [      AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh])      if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then          AC_MSG_RESULT([loading]) -	. ${TK_BIN_DIR}/tkConfig.sh +	. "${TK_BIN_DIR}/tkConfig.sh"      else          AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh])      fi @@ -379,27 +380,27 @@ AC_DEFUN(SC_LOAD_TKCONFIG, [      # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC      # instead of TK_BUILD_LIB_SPEC since it will work with both an      # installed and uninstalled version of Tcl. -    if test -f ${TK_BIN_DIR}/Makefile ; then -        TK_LIB_SPEC=${TK_BUILD_LIB_SPEC} -        TK_STUB_LIB_SPEC=${TK_BUILD_STUB_LIB_SPEC} -        TK_STUB_LIB_PATH=${TK_BUILD_STUB_LIB_PATH} +    if test -f "${TK_BIN_DIR}/Makefile" ; then +        TK_LIB_SPEC="${TK_BUILD_LIB_SPEC}" +        TK_STUB_LIB_SPEC="${TK_BUILD_STUB_LIB_SPEC}" +        TK_STUB_LIB_PATH="${TK_BUILD_STUB_LIB_PATH}"      elif test "`uname -s`" = "Darwin"; then  	# If Tk was built as a framework, attempt to use the libraries  	# from the framework at the given location so that linking works -	# against Tk.framework installed in an arbitary location. +	# against Tk.framework installed in an arbitrary location.  	case ${TK_DEFS} in  	    *TK_FRAMEWORK*) -		if test -f ${TK_BIN_DIR}/${TK_LIB_FILE}; then -		    for i in "`cd ${TK_BIN_DIR}; pwd`" \ -			     "`cd ${TK_BIN_DIR}/../..; pwd`"; do +		if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then +		    for i in "`cd "${TK_BIN_DIR}"; pwd`" \ +			     "`cd "${TK_BIN_DIR}"/../..; pwd`"; do  			if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then -			    TK_LIB_SPEC="-F`dirname "$i"` -framework ${TK_LIB_FILE}" +			    TK_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TK_LIB_FILE}"  			    break  			fi  		    done  		fi -		if test -f ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}; then -		    TK_STUB_LIB_SPEC="-L${TK_BIN_DIR} ${TK_STUB_LIB_FLAG}" +		if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then +		    TK_STUB_LIB_SPEC="-L` echo "${TK_BIN_DIR}"  | sed -e 's/ /\\\\ /g'` ${TK_STUB_LIB_FLAG}"  		    TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"  		fi  		;; @@ -437,15 +438,15 @@ AC_DEFUN(SC_LOAD_TKCONFIG, [  #	extension can't assume that an executable Tcl shell exists at  #	build time.  # -# Arguments +# Arguments:  #	none  # -# Results -#	Subst's the following values: +# Results: +#	Substitutes the following vars:  #		TCLSH_PROG  #------------------------------------------------------------------------ -AC_DEFUN(SC_PROG_TCLSH, [ +AC_DEFUN([SC_PROG_TCLSH], [      AC_MSG_CHECKING([for tclsh])      AC_CACHE_VAL(ac_cv_path_tclsh, [  	search_path=`echo ${PATH} | sed -e 's/:/ /g'` @@ -482,17 +483,17 @@ AC_DEFUN(SC_PROG_TCLSH, [  #	when running tests from an extension build directory. It is not  #	correct to use the TCLSH_PROG in cases like this.  # -# Arguments +# Arguments:  #	none  # -# Results -#	Subst's the following values: +# Results: +#	Substitutes the following values:  #		BUILD_TCLSH  #------------------------------------------------------------------------ -AC_DEFUN(SC_BUILD_TCLSH, [ +AC_DEFUN([SC_BUILD_TCLSH], [      AC_MSG_CHECKING([for tclsh in Tcl build directory]) -    BUILD_TCLSH=${TCL_BIN_DIR}/tclsh +    BUILD_TCLSH="${TCL_BIN_DIR}"/tclsh      AC_MSG_RESULT([$BUILD_TCLSH])      AC_SUBST(BUILD_TCLSH)  ]) @@ -504,7 +505,7 @@ AC_DEFUN(SC_BUILD_TCLSH, [  #  # Arguments:  #	none -#	 +#  # Results:  #  #	Adds the following arguments to configure: @@ -518,7 +519,7 @@ AC_DEFUN(SC_BUILD_TCLSH, [  #		SHARED_BUILD	Value of 1 or 0  #------------------------------------------------------------------------ -AC_DEFUN(SC_ENABLE_SHARED, [ +AC_DEFUN([SC_ENABLE_SHARED], [      AC_MSG_CHECKING([how to build libraries])      AC_ARG_ENABLE(shared,  	AC_HELP_STRING([--enable-shared], @@ -549,7 +550,7 @@ AC_DEFUN(SC_ENABLE_SHARED, [  #  # Arguments:  #	none -#	 +#  # Results:  #  #	Adds the following arguments to configure: @@ -559,34 +560,34 @@ AC_DEFUN(SC_ENABLE_SHARED, [  #		FRAMEWORK_BUILD	Value of 1 or 0  #------------------------------------------------------------------------ -AC_DEFUN(SC_ENABLE_FRAMEWORK, [ -    AC_MSG_CHECKING([how to package libraries]) -    AC_ARG_ENABLE(framework, -	AC_HELP_STRING([--enable-framework], -	    [package shared libraries in MacOSX frameworks (default: off)]), -	[tcl_ok=$enableval], [tcl_ok=no]) - -    if test "${enable_framework+set}" = set; then -	enableval="$enable_framework" -	tcl_ok=$enableval -    else -	tcl_ok=no -    fi - -    if test "$tcl_ok" = "yes" ; then -	AC_MSG_RESULT([framework]) -	FRAMEWORK_BUILD=1 -	if test "${SHARED_BUILD}" = "0" ; then -	    AC_MSG_WARN([Frameworks can only be built if --enable-shared is yes]) -	    FRAMEWORK_BUILD=0 +AC_DEFUN([SC_ENABLE_FRAMEWORK], [ +    if test "`uname -s`" = "Darwin" ; then +	AC_MSG_CHECKING([how to package libraries]) +	AC_ARG_ENABLE(framework, +	    AC_HELP_STRING([--enable-framework], +		[package shared libraries in MacOSX frameworks (default: off)]), +	    [enable_framework=$enableval], [enable_framework=no]) +	if test $enable_framework = yes; then +	    if test $SHARED_BUILD = 0; then +		AC_MSG_WARN([Frameworks can only be built if --enable-shared is yes]) +		enable_framework=no +	    fi +	    if test $tcl_corefoundation = no; then +		AC_MSG_WARN([Frameworks can only be used when CoreFoundation is available]) +		enable_framework=no +	    fi  	fi -	if test $tcl_corefoundation = no; then -	    AC_MSG_WARN([Frameworks can only be used when CoreFoundation is available]) +	if test $enable_framework = yes; then +	    AC_MSG_RESULT([framework]) +	    FRAMEWORK_BUILD=1 +	else +	    if test $SHARED_BUILD = 1; then +		AC_MSG_RESULT([shared library]) +	    else +		AC_MSG_RESULT([static library]) +	    fi  	    FRAMEWORK_BUILD=0  	fi -    else -	AC_MSG_RESULT([standard shared library]) -	FRAMEWORK_BUILD=0      fi  ]) @@ -597,7 +598,7 @@ AC_DEFUN(SC_ENABLE_FRAMEWORK, [  #  # Arguments:  #	none -#	 +#  # Results:  #  #	Adds the following arguments to configure: @@ -613,11 +614,11 @@ AC_DEFUN(SC_ENABLE_FRAMEWORK, [  #  #------------------------------------------------------------------------ -AC_DEFUN(SC_ENABLE_THREADS, [ +AC_DEFUN([SC_ENABLE_THREADS], [      AC_ARG_ENABLE(threads,  	AC_HELP_STRING([--enable-threads], -	    [build with threads (default: off)]), -	[tcl_ok=$enableval], [tcl_ok=no]) +	    [build with threads (default: on)]), +	[tcl_ok=$enableval], [tcl_ok=yes])      if test "${TCL_THREADS}" = 1; then  	tcl_threaded_core=1; @@ -677,36 +678,7 @@ AC_DEFUN(SC_ENABLE_THREADS, [  	ac_saved_libs=$LIBS  	LIBS="$LIBS $THREADS_LIBS" -	AC_CHECK_FUNCS(pthread_attr_setstacksize) -	AC_CHECK_FUNC(pthread_attr_get_np,tcl_ok=yes,tcl_ok=no) -	if test $tcl_ok = yes ; then -	    AC_DEFINE(HAVE_PTHREAD_ATTR_GET_NP, 1, -		[Do we want a BSD-like thread-attribute interface?]) -	    AC_CACHE_CHECK([for pthread_attr_get_np declaration], -		tcl_cv_grep_pthread_attr_get_np, -		AC_EGREP_HEADER(pthread_attr_get_np, pthread.h, -		    tcl_cv_grep_pthread_attr_get_np=present, -		    tcl_cv_grep_pthread_attr_get_np=missing)) -	    if test $tcl_cv_grep_pthread_attr_get_np = missing ; then -		AC_DEFINE(ATTRGETNP_NOT_DECLARED, 1, -		    [Is pthread_attr_get_np() declared in <pthread.h>?]) -	    fi -	else -	    AC_CHECK_FUNC(pthread_getattr_np,tcl_ok=yes,tcl_ok=no) -	    if test $tcl_ok = yes ; then -		AC_DEFINE(HAVE_PTHREAD_GETATTR_NP, 1, -		    [Do we want a Linux-like thread-attribute interface?]) -		AC_CACHE_CHECK([for pthread_getattr_np declaration], -		    tcl_cv_grep_pthread_getattr_np, -		    AC_EGREP_HEADER(pthread_getattr_np, pthread.h, -			tcl_cv_grep_pthread_getattr_np=present, -			tcl_cv_grep_pthread_getattr_np=missing)) -		if test $tcl_cv_grep_pthread_getattr_np = missing ; then -		    AC_DEFINE(GETATTRNP_NOT_DECLARED, 1, -			[Is pthread_getattr_np declared in <pthread.h>?]) -		fi -	    fi -	fi +	AC_CHECK_FUNCS(pthread_attr_setstacksize pthread_atfork)  	LIBS=$ac_saved_libs      else  	TCL_THREADS=0 @@ -721,7 +693,7 @@ AC_DEFUN(SC_ENABLE_THREADS, [  	    AC_MSG_RESULT([yes])  	fi      else -	AC_MSG_RESULT([no (default)]) +	AC_MSG_RESULT([no])      fi      AC_SUBST(TCL_THREADS) @@ -736,13 +708,13 @@ AC_DEFUN(SC_ENABLE_THREADS, [  #  # Arguments:  #	none -#	 +#  #	Requires the following vars to be set in the Makefile:  #		CFLAGS_DEBUG  #		CFLAGS_OPTIMIZE  #		LDFLAGS_DEBUG  #		LDFLAGS_OPTIMIZE -#	 +#  # Results:  #  #	Adds the following arguments to configure: @@ -758,7 +730,7 @@ AC_DEFUN(SC_ENABLE_THREADS, [  #  #------------------------------------------------------------------------ -AC_DEFUN(SC_ENABLE_SYMBOLS, [ +AC_DEFUN([SC_ENABLE_SYMBOLS], [      AC_MSG_CHECKING([for build with symbols])      AC_ARG_ENABLE(symbols,  	AC_HELP_STRING([--enable-symbols], @@ -769,6 +741,7 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [      if test "$tcl_ok" = "no"; then  	CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'  	LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)' +	AC_DEFINE(NDEBUG, 1, [Is no debugging enabled?])  	AC_MSG_RESULT([no])  	AC_DEFINE(TCL_CFG_OPTIMIZED, 1, [Is this an optimized build?])      else @@ -780,8 +753,6 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [      fi      AC_SUBST(CFLAGS_DEFAULT)      AC_SUBST(LDFLAGS_DEFAULT) -    ### FIXME: Surely TCL_CFG_DEBUG should be set to whether we're debugging? -    AC_DEFINE(TCL_CFG_DEBUG, 1, [Is debugging enabled?])      if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then  	AC_DEFINE(TCL_MEM_DEBUG, 1, [Is memory debugging enabled?]) @@ -810,7 +781,7 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [  #  # Arguments:  #	none -#	 +#  # Results:  #  #	Adds the following arguments to configure: @@ -818,10 +789,9 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [  #  #	Defines the following vars:  #		HAVE_LANGINFO	Triggers use of nl_langinfo if defined. -#  #------------------------------------------------------------------------ -AC_DEFUN(SC_ENABLE_LANGINFO, [ +AC_DEFUN([SC_ENABLE_LANGINFO], [      AC_ARG_ENABLE(langinfo,  	AC_HELP_STRING([--enable-langinfo],  	    [use nl_langinfo if possible to determine encoding at startup, otherwise use old heuristic (default: on)]), @@ -833,21 +803,21 @@ AC_DEFUN(SC_ENABLE_LANGINFO, [      fi      AC_MSG_CHECKING([whether to use nl_langinfo])      if test "$langinfo_ok" = "yes"; then -	AC_CACHE_VAL(tcl_cv_langinfo_h, +	AC_CACHE_VAL(tcl_cv_langinfo_h, [  	    AC_TRY_COMPILE([#include <langinfo.h>], [nl_langinfo(CODESET);], -		    [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])) +		    [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])])  	AC_MSG_RESULT([$tcl_cv_langinfo_h])  	if test $tcl_cv_langinfo_h = yes; then  	    AC_DEFINE(HAVE_LANGINFO, 1, [Do we have nl_langinfo()?])  	fi -    else  +    else  	AC_MSG_RESULT([$langinfo_ok])      fi  ])  #--------------------------------------------------------------------  # SC_CONFIG_MANPAGES -#	 +#  #	Decide whether to use symlinks for linking the manpages,  #	whether to compress the manpages after installation, and  #	whether to add a package name suffix to the installed @@ -872,7 +842,7 @@ AC_DEFUN(SC_ENABLE_LANGINFO, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_CONFIG_MANPAGES, [ +AC_DEFUN([SC_CONFIG_MANPAGES], [      AC_MSG_CHECKING([whether to use symlinks for manpages])      AC_ARG_ENABLE(man-symlinks,  	AC_HELP_STRING([--enable-man-symlinks], @@ -935,7 +905,7 @@ AC_DEFUN(SC_CONFIG_MANPAGES, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_CONFIG_SYSTEM, [ +AC_DEFUN([SC_CONFIG_SYSTEM], [      AC_CACHE_CHECK([system version], tcl_cv_sys_version, [  	if test -f /usr/lib/NextStep/software_version; then  	    tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` @@ -949,7 +919,7 @@ AC_DEFUN(SC_CONFIG_SYSTEM, [  		# results, and the version is kept in special file).  		if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then -		    tcl_cv_sys_version=MP-RAS-`awk '{print $3}' /etc/.relid` +		    tcl_cv_sys_version=MP-RAS-`awk '{print $[3]}' /etc/.relid`  		fi  		if test "`uname -s`" = "AIX" ; then  		    tcl_cv_sys_version=AIX-`uname -v`.`uname -r` @@ -1021,7 +991,7 @@ AC_DEFUN(SC_CONFIG_SYSTEM, [  # TCL_SHLIB_LD_EXTRAS - Additional element which are added to SHLIB_LD_LIBS  #  TK_SHLIB_LD_EXTRAS   for the build of Tcl and Tk, but not recorded in the  #                       tclConfig.sh, since they are only used for the build -#                       of Tcl and Tk.  +#                       of Tcl and Tk.  #                       Examples: MacOS X records the library version and  #                       compatibility version in the shared library.  But  #                       of course the Tcl version of this is only used for Tcl. @@ -1035,16 +1005,6 @@ AC_DEFUN(SC_CONFIG_SYSTEM, [  #                       a .a extension whereas shared objects for loadable  #                       extensions have a .so extension.  Defaults to  #                       ${VERSION}${SHLIB_SUFFIX}. -#       TCL_NEEDS_EXP_FILE - -#                       1 means that an export file is needed to link to a -#                       shared library. -#       TCL_EXP_FILE -  The name of the installed export / import file which -#                       should be used to link to the Tcl shared library. -#                       Empty if Tcl is unshared. -#       TCL_BUILD_EXP_FILE - -#                       The name of the built export / import file which -#                       should be used to link to the Tcl shared library. -#                       Empty if Tcl is unshared.  #       TCL_LIBS -  #                       Libs to use when linking Tcl shell or some other  #                       shell that includes Tcl libs. @@ -1056,7 +1016,7 @@ AC_DEFUN(SC_CONFIG_SYSTEM, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_CONFIG_CFLAGS, [ +AC_DEFUN([SC_CONFIG_CFLAGS], [      # Step 0.a: Enable 64 bit support? @@ -1075,11 +1035,35 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [  	    [enable 64bit Sparc VIS support (default: off)]),  	[do64bitVIS=$enableval], [do64bitVIS=no])      AC_MSG_RESULT([$do64bitVIS]) +    # Force 64bit on with VIS +    AS_IF([test "$do64bitVIS" = "yes"], [do64bit=yes]) + +    # Step 0.c: Check if visibility support is available. Do this here so +    # that platform specific alternatives can be used below if this fails. + +    AC_CACHE_CHECK([if compiler supports visibility "hidden"], +	tcl_cv_cc_visibility_hidden, [ +	hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" +	AC_TRY_LINK([ +	    extern __attribute__((__visibility__("hidden"))) void f(void); +	    void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes, +	    tcl_cv_cc_visibility_hidden=no) +	CFLAGS=$hold_cflags]) +    AS_IF([test $tcl_cv_cc_visibility_hidden = yes], [ +	AC_DEFINE(MODULE_SCOPE, +	    [extern __attribute__((__visibility__("hidden")))], +	    [Compiler support for module scope symbols]) +	AC_DEFINE(HAVE_HIDDEN, [1], [Compiler support for module scope symbols]) +    ]) -    if test "$do64bitVIS" = "yes"; then -	# Force 64bit on with VIS -	do64bit=yes -    fi +    # Step 0.d: Disable -rpath support? + +    AC_MSG_CHECKING([if rpath support is requested]) +    AC_ARG_ENABLE(rpath, +	AC_HELP_STRING([--disable-rpath], +	    [disable rpath support (default: on)]), +	[doRpath=$enableval], [doRpath=yes]) +    AC_MSG_RESULT([$doRpath])      # Step 1: set the variable "system" to hold the name and version number      # for the system. @@ -1098,127 +1082,99 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [      # Step 3: set configuration options based on system name and version.      do64bit_ok=no +    # default to '{$LIBS}' and set to "" on per-platform necessary basis +    SHLIB_LD_LIBS='${LIBS}'      LDFLAGS_ORIG="$LDFLAGS"      # When ld needs options to work in 64-bit mode, put them in      # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]      # is disabled by the user. [Bug 1016796]      LDFLAGS_ARCH="" -    TCL_EXPORT_FILE_SUFFIX=""      UNSHARED_LIB_SUFFIX=""      TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`'      ECHO_VERSION='`echo ${VERSION}`'      TCL_LIB_VERSIONS_OK=ok      CFLAGS_DEBUG=-g -    CFLAGS_OPTIMIZE=-O -    if test "$GCC" = "yes" ; then -	CFLAGS_WARNING="-Wall -Wno-implicit-int" -    else +    AS_IF([test "$GCC" = yes], [ +	CFLAGS_OPTIMIZE=-O2 +	CFLAGS_WARNING="-Wall -Wwrite-strings -Wsign-compare -Wdeclaration-after-statement" +    ], [ +	CFLAGS_OPTIMIZE=-O  	CFLAGS_WARNING="" -    fi -    TCL_NEEDS_EXP_FILE=0 -    TCL_BUILD_EXP_FILE="" -    TCL_EXP_FILE="" -dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed. -dnl AC_CHECK_TOOL(AR, ar) -    AC_CHECK_PROG(AR, ar, ar) -    if test "${AR}" = "" ; then -	AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.]) -    fi +    ]) +    AC_CHECK_TOOL(AR, ar)      STLIB_LD='${AR} cr'      LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"      PLAT_OBJS=""      PLAT_SRCS="" +    LDAIX_SRC="" +    AS_IF([test x"${SHLIB_VERSION}" = x], [SHLIB_VERSION="1.0"])      case $system in  	AIX-*) -	    if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" ; then +	    AS_IF([test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"], [  		# AIX requires the _r compiler when gcc isn't being used  		case "${CC}" in -		    *_r) +		    *_r|*_r\ *)  			# ok ...  			;;  		    *) -			CC=${CC}_r +			# Make sure only first arg gets _r +		    	CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'`  			;;  		esac  		AC_MSG_RESULT([Using $CC for compiling with threads]) -	    fi +	    ])  	    LIBS="$LIBS -lc"  	    SHLIB_CFLAGS="" -	    # Note: need the LIBS below, otherwise Tk won't find Tcl's -	    # symbols when dynamically loaded into tclsh. -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    LD_LIBRARY_PATH_VAR="LIBPATH" -	    # 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 +	    # ldAix No longer needed with use of -bexpall/-brtl +	    # but some extensions may still reference it +	    LDAIX_SRC='$(UNIX_DIR)/ldAix' + +	    # Check to enable 64-bit flags for compiler/linker +	    AS_IF([test "$do64bit" = yes], [ +		AS_IF([test "$GCC" = yes], [  		    AC_MSG_WARN([64bit mode not supported with GCC on $system]) -		else  +		], [  		    do64bit_ok=yes  		    CFLAGS="$CFLAGS -q64"  		    LDFLAGS_ARCH="-q64"  		    RANLIB="${RANLIB} -X64"  		    AR="${AR} -X64"  		    SHLIB_LD_FLAGS="-b64" -		fi -	    fi +		]) +	    ]) -	    if test "`uname -m`" = "ia64" ; then +	    AS_IF([test "`uname -m`" = ia64], [  		# AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC  		SHLIB_LD="/usr/ccs/bin/ld -G -z text"  		# AIX-5 has dl* in libc.so  		DL_LIBS="" -		if test "$GCC" = "yes" ; then +		AS_IF([test "$GCC" = yes], [  		    CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' -		else +		], [  		    CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' -		fi +		])  		LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' -	    else -		if test "$GCC" = "yes" ; then -		    SHLIB_LD="gcc -shared" -		else -		    SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry" -		fi -		SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}" +	    ], [ +		AS_IF([test "$GCC" = yes], [ +		    SHLIB_LD='${CC} -shared -Wl,-bexpall' +		], [ +		    SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" +		    LDFLAGS="$LDFLAGS -brtl" +		]) +		SHLIB_LD="${SHLIB_LD} ${SHLIB_LD_FLAGS}"  		DL_LIBS="-ldl"  		CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'  		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -		TCL_NEEDS_EXP_FILE=1 -		TCL_EXPORT_FILE_SUFFIX='${VERSION}.exp' -	    fi - -	    # AIX v<=4.1 has some different flags than 4.2+ -	    if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then -		AC_LIBOBJ([tclLoadAix]) -		DL_LIBS="-lld" -	    fi - -	    # On AIX <=v4 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. -	    # -	    # 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. - -	    AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes, libbsd=no) -	    if test $libbsd = yes; then -	    	MATH_LIBS="$MATH_LIBS -lbsd" -	    	AC_DEFINE(USE_DELTA_FOR_TZ, 1, [Do we need a special AIX hack for timezones?]) -	    fi +	    ])  	    ;;  	BeOS*)  	    SHLIB_CFLAGS="-fPIC" -	    SHLIB_LD="${CC} -nostart" -	    SHLIB_LD_LIBS='${LIBS}' +	    SHLIB_LD='${CC} -nostart'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="-ldl" @@ -1233,7 +1189,6 @@ dnl AC_CHECK_TOOL(AR, ar)  	BSD/OS-2.1*|BSD/OS-3*)  	    SHLIB_CFLAGS=""  	    SHLIB_LD="shlicc -r" -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="-ldl" @@ -1242,8 +1197,7 @@ dnl AC_CHECK_TOOL(AR, ar)  	    ;;  	BSD/OS-4.*)  	    SHLIB_CFLAGS="-export-dynamic -fPIC" -	    SHLIB_LD="cc -shared" -	    SHLIB_LD_LIBS='${LIBS}' +	    SHLIB_LD='${CC} -shared'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="-ldl" @@ -1251,9 +1205,49 @@ dnl AC_CHECK_TOOL(AR, ar)  	    CC_SEARCH_FLAGS=""  	    LD_SEARCH_FLAGS=""  	    ;; +	CYGWIN_*|MINGW32*) +	    SHLIB_CFLAGS="" +	    SHLIB_LD='${CC} -shared' +	    SHLIB_SUFFIX=".dll" +	    DL_OBJS="tclLoadDl.o" +	    PLAT_OBJS='${CYGWIN_OBJS}' +	    PLAT_SRCS='${CYGWIN_SRCS}' +	    DL_LIBS="-ldl" +	    CC_SEARCH_FLAGS="" +	    LD_SEARCH_FLAGS="" +	    TCL_NEEDS_EXP_FILE=1 +	    TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.dll.a' +	    SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a" +	    AC_CACHE_CHECK(for Cygwin version of gcc, +		ac_cv_cygwin, +		AC_TRY_COMPILE([ +		#ifdef __CYGWIN__ +		    #error cygwin +		#endif +		], [], +		ac_cv_cygwin=no, +		ac_cv_cygwin=yes) +	    ) +	    if test "$ac_cv_cygwin" = "no"; then +		AC_MSG_ERROR([${CC} is not a cygwin compiler.]) +	    fi +	    if test "x${TCL_THREADS}" = "x0"; then +		AC_MSG_ERROR([CYGWIN compile is only supported with --enable-threads]) +	    fi +	    do64bit_ok=yes +	    if test "x${SHARED_BUILD}" = "x1"; then +		echo "running cd ${TCL_SRC_DIR}/win; ${CONFIG_SHELL-/bin/sh} ./configure $ac_configure_args" +		# The eval makes quoting arguments work. +		if cd ${TCL_SRC_DIR}/win; eval ${CONFIG_SHELL-/bin/sh} ./configure $ac_configure_args; cd ../unix +		then : +		else +		    { echo "configure: error: configure failed for ../win" 1>&2; exit 1; } +		fi +	    fi +	    ;;  	dgux*)  	    SHLIB_CFLAGS="-K PIC" -	    SHLIB_LD="cc -G" +	    SHLIB_LD='${CC} -G'  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o" @@ -1261,62 +1255,73 @@ dnl AC_CHECK_TOOL(AR, ar)  	    CC_SEARCH_FLAGS=""  	    LD_SEARCH_FLAGS=""  	    ;; +	Haiku*) +	    LDFLAGS="$LDFLAGS -Wl,--export-dynamic" +	    SHLIB_CFLAGS="-fPIC" +	    SHLIB_SUFFIX=".so" +	    SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' +	    DL_OBJS="tclLoadDl.o" +	    DL_LIBS="-lroot" +	    AC_CHECK_LIB(network, inet_ntoa, [LIBS="$LIBS -lnetwork"]) +	    ;;  	HP-UX-*.11.*)  	    # Use updated header definitions where possible -	    AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])  	    AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?]) +	    AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])  	    LIBS="$LIBS -lxnet"               # Use the XOPEN network library -	    SHLIB_SUFFIX=".sl" +	    AS_IF([test "`uname -m`" = ia64], [ +		SHLIB_SUFFIX=".so" +	    ], [ +		SHLIB_SUFFIX=".sl" +	    ])  	    AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) -	    if test "$tcl_ok" = yes; then +	    AS_IF([test "$tcl_ok" = yes], [  		SHLIB_CFLAGS="+z"  		SHLIB_LD="ld -b" -		SHLIB_LD_LIBS='${LIBS}'  		DL_OBJS="tclLoadShl.o"  		DL_LIBS="-ldld"  		LDFLAGS="$LDFLAGS -Wl,-E"  		CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'  		LD_SEARCH_FLAGS='+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}' +	    ]) +	    AS_IF([test "$GCC" = yes], [ +		SHLIB_LD='${CC} -shared'  		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -	    fi +	    ], [ +		CFLAGS="$CFLAGS -z" +	    ])  	    # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc  	    #CFLAGS="$CFLAGS +DAportable"  	    # Check to enable 64-bit flags for compiler/linker -	    if test "$do64bit" = "yes" ; then -		if test "$GCC" = "yes" ; then -		    hpux_arch=`${CC} -dumpmachine` -		    case $hpux_arch in +	    AS_IF([test "$do64bit" = "yes"], [ +		AS_IF([test "$GCC" = yes], [ +		    case `${CC} -dumpmachine` in  			hppa64*)  			    # 64-bit gcc in use.  Fix flags for GNU ld.  			    do64bit_ok=yes -			    SHLIB_LD="${CC} -shared" -			    SHLIB_LD_LIBS='${LIBS}' -			    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +			    SHLIB_LD='${CC} -shared' +			    AS_IF([test $doRpath = yes], [ +				CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])  			    LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}  			    ;;  			*)  			    AC_MSG_WARN([64bit mode not supported with GCC on $system])  			    ;;  		    esac -		else +		], [  		    do64bit_ok=yes  		    CFLAGS="$CFLAGS +DD64"  		    LDFLAGS_ARCH="+DD64" -		fi -	    fi -	    ;; +		]) +	    ]) ;;  	HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)  	    SHLIB_SUFFIX=".sl"  	    AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) -	    if test "$tcl_ok" = yes; then +	    AS_IF([test "$tcl_ok" = yes], [  		SHLIB_CFLAGS="+z"  		SHLIB_LD="ld -b"  		SHLIB_LD_LIBS="" @@ -1326,31 +1331,32 @@ dnl AC_CHECK_TOOL(AR, ar)  		CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'  		LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'  		LD_LIBRARY_PATH_VAR="SHLIB_PATH" -	    fi -	    ;; +	    ]) ;;  	IRIX-5.*)  	    SHLIB_CFLAGS=""  	    SHLIB_LD="ld -shared -rdata_shared" -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' +	    AC_LIBOBJ(mkstemp) +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +		LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])  	    ;;  	IRIX-6.*)  	    SHLIB_CFLAGS=""  	    SHLIB_LD="ld -n32 -shared -rdata_shared" -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' -	    if test "$GCC" = "yes" ; then +	    AC_LIBOBJ(mkstemp) +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +		LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) +	    AS_IF([test "$GCC" = yes], [  		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. @@ -1361,97 +1367,85 @@ dnl AC_CHECK_TOOL(AR, ar)  			;;  		esac  		LDFLAGS="$LDFLAGS -n32" -	    fi +	    ])  	    ;;  	IRIX64-6.*)  	    SHLIB_CFLAGS=""  	    SHLIB_LD="ld -n32 -shared -rdata_shared" -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' +	    AC_LIBOBJ(mkstemp) +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +		LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])  	    # Check to enable 64-bit flags for compiler/linker -	    if test "$do64bit" = "yes" ; then -	        if test "$GCC" = "yes" ; then +	    AS_IF([test "$do64bit" = yes], [ +	        AS_IF([test "$GCC" = yes], [  	            AC_MSG_WARN([64bit mode not supported by gcc]) -	        else +	        ], [  	            do64bit_ok=yes  	            SHLIB_LD="ld -64 -shared -rdata_shared"  	            CFLAGS="$CFLAGS -64"  	            LDFLAGS_ARCH="-64" -	        fi -	    fi +	        ]) +	    ])  	    ;; -	Linux*) +	Linux*|GNU*|NetBSD-Debian)  	    SHLIB_CFLAGS="-fPIC" -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so" -	    CFLAGS_OPTIMIZE=-O2 -	    # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings  +	    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" -	    SHLIB_LD="${CC} -shared" +	    SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="-ldl"  	    LDFLAGS="$LDFLAGS -Wl,--export-dynamic" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])  	    LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -	    if test "`uname -m`" = "alpha" ; then -		CFLAGS="$CFLAGS -mieee" -	    fi +	    AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"]) +	    AS_IF([test $do64bit = yes], [ +		AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [ +		    hold_cflags=$CFLAGS +		    CFLAGS="$CFLAGS -m64" +		    AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no) +		    CFLAGS=$hold_cflags]) +		AS_IF([test $tcl_cv_cc_m64 = yes], [ +		    CFLAGS="$CFLAGS -m64" +		    do64bit_ok=yes +		]) +	   ]) -	    # The combo of gcc + glibc has a bug related -	    # to inlining of functions like strtod(). The -	    # -fno-builtin flag should address this problem -	    # but it does not work. The -fno-inline flag -	    # is kind of overkill but it works. -	    # Disable inlining only when one of the +	    # The combo of gcc + glibc has a bug related to inlining of +	    # functions like strtod(). The -fno-builtin flag should address +	    # this problem but it does not work. The -fno-inline flag 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"${USE_COMPAT}" != x ; then -	        CFLAGS="$CFLAGS -fno-inline" -	    fi - -	    # XIM peeking works under XFree86. -	    AC_DEFINE(PEEK_XCLOSEIM, 1, [May we use XIM peeking safely?]) -	    ;; -	GNU*) -	    SHLIB_CFLAGS="-fPIC" -	    SHLIB_LD_LIBS='${LIBS}' -	    SHLIB_SUFFIX=".so" - -	   SHLIB_LD="${CC} -shared" -	    DL_OBJS="" -	    DL_LIBS="-ldl" -	    LDFLAGS="$LDFLAGS -Wl,--export-dynamic" -	    CC_SEARCH_FLAGS="" -	    LD_SEARCH_FLAGS="" -	    if test "`uname -m`" = "alpha" ; then -		CFLAGS="$CFLAGS -mieee" -	    fi +	    AS_IF([test x"${USE_COMPAT}" != x],[CFLAGS="$CFLAGS -fno-inline"])  	    ;;  	Lynx*)  	    SHLIB_CFLAGS="-fPIC" -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so"  	    CFLAGS_OPTIMIZE=-02 -	    SHLIB_LD="${CC} -shared " +	    SHLIB_LD='${CC} -shared'  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="-mshared -ldl"  	    LD_FLAGS="-Wl,--export-dynamic" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +		LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])  	    ;;  	MP-RAS-02*)  	    SHLIB_CFLAGS="-K PIC" -	    SHLIB_LD="cc -G" +	    SHLIB_LD='${CC} -G'  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o" @@ -1461,7 +1455,7 @@ dnl AC_CHECK_TOOL(AR, ar)  	    ;;  	MP-RAS-*)  	    SHLIB_CFLAGS="-K PIC" -	    SHLIB_LD="cc -G" +	    SHLIB_LD='${CC} -G'  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o" @@ -1470,178 +1464,243 @@ dnl AC_CHECK_TOOL(AR, ar)  	    CC_SEARCH_FLAGS=""  	    LD_SEARCH_FLAGS=""  	    ;; -	NetBSD-*|FreeBSD-[[1-2]].*) -	    # NetBSD/SPARC needs -fPIC, -fpic will not do. -	    SHLIB_CFLAGS="-fPIC" -	    SHLIB_LD="ld -Bshareable -x" -	    SHLIB_LD_LIBS='${LIBS}' -	    SHLIB_SUFFIX=".so" -	    DL_OBJS="tclLoadDl.o" -	    DL_LIBS="" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' -	    AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [ -		AC_EGREP_CPP(yes, [ -#ifdef __ELF__ -	yes -#endif -		], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)]) -	    if test $tcl_cv_ld_elf = yes; then -		SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so' -	    else -		SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0' -	    fi - -	    # Ancient FreeBSD doesn't handle version numbers with dots. - -	    UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' -	    TCL_LIB_VERSIONS_OK=nodots -	    ;;  	OpenBSD-*) -	    # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do. -	    case `machine` in -	    sparc|sparc64) -		SHLIB_CFLAGS="-fPIC";; +	    arch=`arch -s` +	    case "$arch" in +	    vax) +		# Equivalent using configure option --disable-load +		# Step 4 will set the necessary variables +		DL_OBJS="" +		SHLIB_LD_LIBS="" +		LDFLAGS="" +		;;  	    *) -		SHLIB_CFLAGS="-fpic";; +		case "$arch" in +		alpha|sparc|sparc64) +		    SHLIB_CFLAGS="-fPIC" +		    ;; +		*) +		    SHLIB_CFLAGS="-fpic" +		    ;; +		esac +		SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' +		SHLIB_SUFFIX=".so" +		DL_OBJS="tclLoadDl.o" +		DL_LIBS="" +		AS_IF([test $doRpath = yes], [ +		    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) +		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} +		SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}' +		LDFLAGS="-Wl,-export-dynamic" +		;;  	    esac -	    SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" -	    SHLIB_LD_LIBS='${LIBS}' -	    SHLIB_SUFFIX=".so" -	    DL_OBJS="tclLoadDl.o" -	    DL_LIBS="" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -	    SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0' -	    AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [ -		AC_EGREP_CPP(yes, [ -#ifdef __ELF__ -	yes -#endif -		], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)]) -	    if test $tcl_cv_ld_elf = yes; then -		LDFLAGS=-Wl,-export-dynamic -	    else -		LDFLAGS="" -	    fi - +	    case "$arch" in +	    vax) +		CFLAGS_OPTIMIZE="-O1" +		;; +	    sh) +		CFLAGS_OPTIMIZE="-O0" +		;; +	    *) +		CFLAGS_OPTIMIZE="-O2" +		;; +	    esac +	    AS_IF([test "${TCL_THREADS}" = "1"], [ +		# On OpenBSD:	Compile with -pthread +		#		Don't link with -lpthread +		LIBS=`echo $LIBS | sed s/-lpthread//` +		CFLAGS="$CFLAGS -pthread" +	    ])  	    # OpenBSD doesn't do version numbers with dots.  	    UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'  	    TCL_LIB_VERSIONS_OK=nodots  	    ;; -	FreeBSD-*) -	    # FreeBSD 3.* and greater have ELF. +	NetBSD-*) +	    # NetBSD has ELF and can use 'cc -shared' to build shared libs  	    SHLIB_CFLAGS="-fPIC" -	    SHLIB_LD="ld -Bshareable -x" -	    SHLIB_LD_LIBS='${LIBS}' +	    SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS=""  	    LDFLAGS="$LDFLAGS -export-dynamic" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' -	    if test "${TCL_THREADS}" = "1" ; then +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) +	    LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} +	    AS_IF([test "${TCL_THREADS}" = "1"], [  		# The -pthread needs to go in the CFLAGS, not LIBS  		LIBS=`echo $LIBS | sed s/-pthread//`  		CFLAGS="$CFLAGS -pthread"  	    	LDFLAGS="$LDFLAGS -pthread" -	    fi +	    ]) +	    ;; +	FreeBSD-*) +	    # This configuration from FreeBSD Ports. +	    SHLIB_CFLAGS="-fPIC" +	    SHLIB_LD="${CC} -shared" +	    SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$[@]" +	    SHLIB_SUFFIX=".so" +	    DL_OBJS="tclLoadDl.o" +	    DL_LIBS="" +	    LDFLAGS="" +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +		LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) +	    AS_IF([test "${TCL_THREADS}" = "1"], [ +		# The -pthread needs to go in the LDFLAGS, not LIBS +		LIBS=`echo $LIBS | sed s/-pthread//` +		CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +		LDFLAGS="$LDFLAGS $PTHREAD_LIBS"])  	    case $system in  	    FreeBSD-3.*) -	    	# FreeBSD-3 doesn't handle version numbers with dots. -	    	UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' -	    	SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so' -	    	TCL_LIB_VERSIONS_OK=nodots +		# Version numbers are dot-stripped by system policy. +		TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .` +		UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' +		SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so' +		TCL_LIB_VERSIONS_OK=nodots  		;;  	    esac  	    ;;  	Darwin-*)  	    CFLAGS_OPTIMIZE="-Os"  	    SHLIB_CFLAGS="-fno-common" -	    if test $do64bit = yes; then -	        do64bit_ok=yes -	        CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" -	    fi +	    # To avoid discrepancies between what headers configure sees during +	    # preprocessing tests and compiling tests, move any -isysroot and +	    # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: +	    CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ +		awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ +		if ([$]i~/^(isysroot|mmacosx-version-min)/) print "-"[$]i}'`" +	    CFLAGS="`echo " ${CFLAGS}" | \ +		awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ +		if (!([$]i~/^(isysroot|mmacosx-version-min)/)) print "-"[$]i}'`" +	    AS_IF([test $do64bit = yes], [ +		case `arch` in +		    ppc) +			AC_CACHE_CHECK([if compiler accepts -arch ppc64 flag], +				tcl_cv_cc_arch_ppc64, [ +			    hold_cflags=$CFLAGS +			    CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" +			    AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes, +				    tcl_cv_cc_arch_ppc64=no) +			    CFLAGS=$hold_cflags]) +			AS_IF([test $tcl_cv_cc_arch_ppc64 = yes], [ +			    CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" +			    do64bit_ok=yes +			]);; +		    i386) +			AC_CACHE_CHECK([if compiler accepts -arch x86_64 flag], +				tcl_cv_cc_arch_x86_64, [ +			    hold_cflags=$CFLAGS +			    CFLAGS="$CFLAGS -arch x86_64" +			    AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes, +				    tcl_cv_cc_arch_x86_64=no) +			    CFLAGS=$hold_cflags]) +			AS_IF([test $tcl_cv_cc_arch_x86_64 = yes], [ +			    CFLAGS="$CFLAGS -arch x86_64" +			    do64bit_ok=yes +			]);; +		    *) +			AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`]);; +		esac +	    ], [ +		# Check for combined 32-bit and 64-bit fat build +		AS_IF([echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ +		    && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '], [ +		    fat_32_64=yes]) +	    ])  	    SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS}'  	    AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [ -	        hold_ldflags=$LDFLAGS -	        LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" -	        AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no) -	        LDFLAGS=$hold_ldflags]) -	    if test $tcl_cv_ld_single_module = yes; then -	        SHLIB_LD="${SHLIB_LD} -Wl,-single_module" -	    fi -	    SHLIB_LD_LIBS='${LIBS}' +		hold_ldflags=$LDFLAGS +		LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" +		AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no) +		LDFLAGS=$hold_ldflags]) +	    AS_IF([test $tcl_cv_ld_single_module = yes], [ +		SHLIB_LD="${SHLIB_LD} -Wl,-single_module" +	    ])  	    SHLIB_SUFFIX=".dylib"  	    DL_OBJS="tclLoadDyld.o"  	    DL_LIBS=""  	    # Don't use -prebind when building for Mac OS X 10.4 or later only: -	    test -z "${MACOSX_DEPLOYMENT_TARGET}" || \ -		test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F. '{print [$]2}'`" -lt 4 && \ -		LDFLAGS="$LDFLAGS -prebind" +	    AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \ +		"`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4], [ +		LDFLAGS="$LDFLAGS -prebind"])  	    LDFLAGS="$LDFLAGS -headerpad_max_install_names" -	    AC_CACHE_CHECK([if ld accepts -search_paths_first flag], tcl_cv_ld_search_paths_first, [ -	        hold_ldflags=$LDFLAGS -	        LDFLAGS="$LDFLAGS -Wl,-search_paths_first" -	        AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, tcl_cv_ld_search_paths_first=no) -	        LDFLAGS=$hold_ldflags]) -	    if test $tcl_cv_ld_search_paths_first = yes; then -	        LDFLAGS="$LDFLAGS -Wl,-search_paths_first" -	    fi +	    AC_CACHE_CHECK([if ld accepts -search_paths_first flag], +		    tcl_cv_ld_search_paths_first, [ +		hold_ldflags=$LDFLAGS +		LDFLAGS="$LDFLAGS -Wl,-search_paths_first" +		AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, +			tcl_cv_ld_search_paths_first=no) +		LDFLAGS=$hold_ldflags]) +	    AS_IF([test $tcl_cv_ld_search_paths_first = yes], [ +		LDFLAGS="$LDFLAGS -Wl,-search_paths_first" +	    ]) +	    AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [ +		AC_DEFINE(MODULE_SCOPE, [__private_extern__], +		    [Compiler support for module scope symbols]) +	    ])  	    CC_SEARCH_FLAGS=""  	    LD_SEARCH_FLAGS=""  	    LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" +	    AC_DEFINE(MAC_OSX_TCL, 1, [Is this a Mac I see before me?])  	    PLAT_OBJS='${MAC_OSX_OBJS}'  	    PLAT_SRCS='${MAC_OSX_SRCS}' -            AC_MSG_CHECKING([whether to use CoreFoundation]) -            AC_ARG_ENABLE(corefoundation, +	    AC_MSG_CHECKING([whether to use CoreFoundation]) +	    AC_ARG_ENABLE(corefoundation,  		AC_HELP_STRING([--enable-corefoundation], -		    [use CoreFoundation API on MacOSX (default: yes)]), -                [tcl_corefoundation=$enableval], [tcl_corefoundation=yes]) -            AC_MSG_RESULT([$tcl_corefoundation]) -            if test $tcl_corefoundation = yes; then -                AC_CACHE_CHECK([for CoreFoundation.framework], tcl_cv_lib_corefoundation, [ -                    hold_libs=$LIBS; hold_cflags=$CFLAGS -                    if test $do64bit_ok = no ; then -                        # remove -arch ppc64 from CFLAGS while testing presence -                        # of CF, otherwise all archs will have CF disabled. -                        # CF for ppc64 is disabled in tclUnixPort.h instead. -                        CFLAGS="`echo "$CFLAGS" | sed -e 's/-arch ppc64/-arch ppc/'`" -                    fi -                    LIBS="$LIBS -framework CoreFoundation" -                    AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>],  -                        [CFBundleRef b = CFBundleGetMainBundle();],  -                        tcl_cv_lib_corefoundation=yes, tcl_cv_lib_corefoundation=no) -                    LIBS=$hold_libs; CFLAGS=$hold_cflags]) -                if test $tcl_cv_lib_corefoundation = yes; then -                    LIBS="$LIBS -framework CoreFoundation" -                    AC_DEFINE(HAVE_COREFOUNDATION, 1,  -                        [Do we have access to Darwin CoreFoundation.framework ?]) -                fi -	    fi -	    AC_CHECK_HEADERS(libkern/OSAtomic.h) -	    AC_CHECK_FUNCS(OSSpinLockLock) -	    AC_CHECK_HEADERS(copyfile.h) -	    AC_CHECK_FUNCS(copyfile) -	    AC_DEFINE(MAC_OSX_TCL, 1, [Is this a Mac I see before me?]) -	    AC_DEFINE(USE_VFORK, 1, [Should we use vfork() instead of fork()?]) -	    AC_DEFINE(TCL_DEFAULT_ENCODING,"utf-8", -		[Are we to override what our default encoding is?]) -	    AC_DEFINE(MODULE_SCOPE, __private_extern__, [Linker support for module scope symbols]) -	    AC_DEFINE(TCL_LOAD_FROM_MEMORY, 1, [Can this platform load code from memory?]) -	    AC_DEFINE(TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING, 1, -		[Use better emulation of non-blocking channels for channels without BlockModeProc?]) -	    # prior to Darwin 7, realpath is not threadsafe, so don't -	    # use it when threads are enabled, c.f. bug # 711232: -	    AC_CHECK_FUNC(realpath) -	    if test $ac_cv_func_realpath = yes -a "${TCL_THREADS}" = 1 \ -	            -a `uname -r | awk -F. '{print [$]1}'` -lt 7 ; then -	        ac_cv_func_realpath=no -	    fi +		    [use CoreFoundation API on MacOSX (default: on)]), +		[tcl_corefoundation=$enableval], [tcl_corefoundation=yes]) +	    AC_MSG_RESULT([$tcl_corefoundation]) +	    AS_IF([test $tcl_corefoundation = yes], [ +		AC_CACHE_CHECK([for CoreFoundation.framework], +			tcl_cv_lib_corefoundation, [ +		    hold_libs=$LIBS +		    AS_IF([test "$fat_32_64" = yes], [ +			for v in CFLAGS CPPFLAGS LDFLAGS; do +			    # On Tiger there is no 64-bit CF, so remove 64-bit +			    # archs from CFLAGS et al. while testing for +			    # presence of CF. 64-bit CF is disabled in +			    # tclUnixPort.h if necessary. +			    eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' +			done]) +		    LIBS="$LIBS -framework CoreFoundation" +		    AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>], +			[CFBundleRef b = CFBundleGetMainBundle();], +			tcl_cv_lib_corefoundation=yes, +			tcl_cv_lib_corefoundation=no) +		    AS_IF([test "$fat_32_64" = yes], [ +			for v in CFLAGS CPPFLAGS LDFLAGS; do +			    eval $v'="$hold_'$v'"' +		        done]) +		    LIBS=$hold_libs]) +		AS_IF([test $tcl_cv_lib_corefoundation = yes], [ +		    LIBS="$LIBS -framework CoreFoundation" +		    AC_DEFINE(HAVE_COREFOUNDATION, 1, +			[Do we have access to Darwin CoreFoundation.framework?]) +		], [tcl_corefoundation=no]) +		AS_IF([test "$fat_32_64" = yes -a $tcl_corefoundation = yes],[ +		    AC_CACHE_CHECK([for 64-bit CoreFoundation], +			    tcl_cv_lib_corefoundation_64, [ +			for v in CFLAGS CPPFLAGS LDFLAGS; do +			    eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' +			done +			AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>], +			    [CFBundleRef b = CFBundleGetMainBundle();], +			    tcl_cv_lib_corefoundation_64=yes, +			    tcl_cv_lib_corefoundation_64=no) +			for v in CFLAGS CPPFLAGS LDFLAGS; do +			    eval $v'="$hold_'$v'"' +			done]) +		    AS_IF([test $tcl_cv_lib_corefoundation_64 = no], [ +			AC_DEFINE(NO_COREFOUNDATION_64, 1, +			    [Is Darwin CoreFoundation unavailable for 64-bit?]) +                        LDFLAGS="$LDFLAGS -Wl,-no_arch_warnings" +		    ]) +		]) +	    ])  	    ;;  	NEXTSTEP-*)  	    SHLIB_CFLAGS="" -	    SHLIB_LD="cc -nostdlib -r" +	    SHLIB_LD='${CC} -nostdlib -r'  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadNext.o" @@ -1650,10 +1709,11 @@ dnl AC_CHECK_TOOL(AR, ar)  	    LD_SEARCH_FLAGS=""  	    ;;  	OS/390-*) +	    SHLIB_LD_LIBS=""  	    CFLAGS_OPTIMIZE=""		# Optimizer is buggy  	    AC_DEFINE(_OE_SOCKETS, 1,	# needed in sys/socket.h  		[Should OS/390 do the right thing with sockets?]) -	    ;;       +	    ;;  	OSF1-1.0|OSF1-1.1|OSF1-1.2)  	    # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1  	    SHLIB_CFLAGS="" @@ -1669,11 +1729,9 @@ dnl AC_CHECK_TOOL(AR, ar)  	OSF1-1.*)  	    # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2  	    SHLIB_CFLAGS="-fPIC" -	    if test "$SHARED_BUILD" = "1" ; then -	        SHLIB_LD="ld -shared" -	    else +	    AS_IF([test "$SHARED_BUILD" = 1], [SHLIB_LD="ld -shared"], [  	        SHLIB_LD="ld -non_shared" -	    fi +	    ])  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o" @@ -1684,35 +1742,31 @@ dnl AC_CHECK_TOOL(AR, ar)  	OSF1-V*)  	    # Digital OSF/1  	    SHLIB_CFLAGS="" -	    if test "$SHARED_BUILD" = "1" ; then +	    AS_IF([test "$SHARED_BUILD" = 1], [  	        SHLIB_LD='ld -shared -expect_unresolved "*"' -	    else +	    ], [  	        SHLIB_LD='ld -non_shared -expect_unresolved "*"' -	    fi -	    SHLIB_LD_LIBS="" +	    ])  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="" -	    CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' -	    LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' -	    if test "$GCC" = "yes" ; then -		CFLAGS="$CFLAGS -mieee" -            else -		CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" -	    fi +	    AS_IF([test $doRpath = yes], [ +		CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +		LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) +	    AS_IF([test "$GCC" = yes], [CFLAGS="$CFLAGS -mieee"], [ +		CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"])  	    # see pthread_intro(3) for pthread support on osf1, k.furukawa -	    if test "${TCL_THREADS}" = "1" ; then +	    AS_IF([test "${TCL_THREADS}" = 1], [  		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 +		AS_IF([test "$GCC" = yes], [  		    LIBS="$LIBS -lpthread -lmach -lexc" -		else +		], [  		    CFLAGS="$CFLAGS -pthread"  		    LDFLAGS="$LDFLAGS -pthread" -		fi -	    fi - +		]) +	    ])  	    ;;  	QNX-6*)  	    # QNX RTP @@ -1731,13 +1785,13 @@ dnl AC_CHECK_TOOL(AR, ar)  	    # Note, dlopen is available only on SCO 3.2.5 and greater. However,  	    # this test works, since "uname -s" was non-standard in 3.2.4 and  	    # below. -	    if test "$GCC" = "yes" ; then +	    AS_IF([test "$GCC" = yes], [  	    	SHLIB_CFLAGS="-fPIC -melf"  	    	LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" -	    else +	    ], [  	    	SHLIB_CFLAGS="-Kpic -belf"  	    	LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" -	    fi +	    ])  	    SHLIB_LD="ld -G"  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so" @@ -1748,7 +1802,7 @@ dnl AC_CHECK_TOOL(AR, ar)  	    ;;  	SINIX*5.4*)  	    SHLIB_CFLAGS="-K PIC" -	    SHLIB_LD="cc -G" +	    SHLIB_LD='${CC} -G'  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o" @@ -1771,7 +1825,7 @@ dnl AC_CHECK_TOOL(AR, ar)  	    # requires an extra version number at the end of .so file names.  	    # So, the library has to have a name like libtcl75.so.1.0 -	    SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0' +	    SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'  	    UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'  	    TCL_LIB_VERSIONS_OK=nodots  	    ;; @@ -1786,23 +1840,18 @@ dnl AC_CHECK_TOOL(AR, ar)  		[Do we really want to follow the standard? Yes we do!])  	    SHLIB_CFLAGS="-KPIC" - -	    # Note: need the LIBS below, otherwise Tk won't find Tcl's -	    # symbols when dynamically loaded into tclsh. - -	    SHLIB_LD_LIBS='${LIBS}'  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="-ldl" -	    if test "$GCC" = "yes" ; then -		SHLIB_LD="$CC -shared" +	    AS_IF([test "$GCC" = yes], [ +		SHLIB_LD='${CC} -shared'  		CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'  		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -	    else +	    ], [  		SHLIB_LD="/usr/ccs/bin/ld -G -z text"  		CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'  		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -	    fi +	    ])  	    ;;  	SunOS-5*)  	    # Note: If _REENTRANT isn't defined, then Solaris @@ -1815,72 +1864,106 @@ dnl AC_CHECK_TOOL(AR, ar)  	    SHLIB_CFLAGS="-KPIC"  	    # Check to enable 64-bit flags for compiler/linker -	    if test "$do64bit" = "yes" ; then +	    AS_IF([test "$do64bit" = yes], [  		arch=`isainfo` -		if test "$arch" = "sparcv9 sparc" ; then -			if test "$GCC" = "yes" ; then -			    if test "`gcc -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then -				AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system]) -			    else -				do64bit_ok=yes -				CFLAGS="$CFLAGS -m64 -mcpu=v9" -				LDFLAGS="$LDFLAGS -m64 -mcpu=v9" -				SHLIB_CFLAGS="-fPIC" -			    fi -			else +		AS_IF([test "$arch" = "sparcv9 sparc"], [ +		    AS_IF([test "$GCC" = yes], [ +			AS_IF([test "`${CC} -dumpversion | awk -F. '{print [$]1}'`" -lt 3], [ +			    AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system]) +			], [  			    do64bit_ok=yes -			    if test "$do64bitVIS" = "yes" ; then -				CFLAGS="$CFLAGS -xarch=v9a" -			    	LDFLAGS_ARCH="-xarch=v9a" -			    else -				CFLAGS="$CFLAGS -xarch=v9" -			    	LDFLAGS_ARCH="-xarch=v9" -			    fi -			    # Solaris 64 uses this as well -			    #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" -			fi -		elif test "$arch" = "amd64 i386" ; then -		    if test "$GCC" = "yes" ; then -			AC_MSG_WARN([64bit mode not supported with GCC on $system]) -		    else +			    CFLAGS="$CFLAGS -m64 -mcpu=v9" +			    LDFLAGS="$LDFLAGS -m64 -mcpu=v9" +			    SHLIB_CFLAGS="-fPIC" +			]) +		    ], [  			do64bit_ok=yes -			CFLAGS="$CFLAGS -xarch=amd64" -			LDFLAGS="$LDFLAGS -xarch=amd64" -		    fi -		else -		    AC_MSG_WARN([64bit mode not supported for $arch]) -		fi -	    fi -	     -	    # Note: need the LIBS below, otherwise Tk won't find Tcl's -	    # symbols when dynamically loaded into tclsh. - -	    SHLIB_LD_LIBS='${LIBS}' +			AS_IF([test "$do64bitVIS" = yes], [ +			    CFLAGS="$CFLAGS -xarch=v9a" +			    LDFLAGS_ARCH="-xarch=v9a" +			], [ +			    CFLAGS="$CFLAGS -xarch=v9" +			    LDFLAGS_ARCH="-xarch=v9" +			]) +			# Solaris 64 uses this as well +			#LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" +		    ]) +		], [AS_IF([test "$arch" = "amd64 i386"], [ +		    AS_IF([test "$GCC" = yes], [ +			case $system in +			    SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*) +				do64bit_ok=yes +				CFLAGS="$CFLAGS -m64" +				LDFLAGS="$LDFLAGS -m64";; +			    *) +				AC_MSG_WARN([64bit mode not supported with GCC on $system]);; +			esac +		    ], [ +			do64bit_ok=yes +			case $system in +			    SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*) +				CFLAGS="$CFLAGS -m64" +				LDFLAGS="$LDFLAGS -m64";; +			    *) +				CFLAGS="$CFLAGS -xarch=amd64" +				LDFLAGS="$LDFLAGS -xarch=amd64";; +			esac +		    ]) +		], [AC_MSG_WARN([64bit mode not supported for $arch])])]) +	    ]) + +	    #-------------------------------------------------------------------- +	    # On Solaris 5.x i386 with the sunpro compiler we need to link +	    # with sunmath to get floating point rounding control +	    #-------------------------------------------------------------------- +	    AS_IF([test "$GCC" = yes],[use_sunmath=no],[ +		arch=`isainfo` +		AC_MSG_CHECKING([whether to use -lsunmath for fp rounding control]) +		AS_IF([test "$arch" = "amd64 i386" -o "$arch" = "i386"], [ +			AC_MSG_RESULT([yes]) +			MATH_LIBS="-lsunmath $MATH_LIBS" +			AC_CHECK_HEADER(sunmath.h) +			use_sunmath=yes +			], [ +			AC_MSG_RESULT([no]) +			use_sunmath=no +		]) +	    ])  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o"  	    DL_LIBS="-ldl" -	    if test "$GCC" = "yes" ; then -		SHLIB_LD="$CC -shared" +	    AS_IF([test "$GCC" = yes], [ +		SHLIB_LD='${CC} -shared'  		CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'  		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} -		if test "$do64bit_ok" = "yes" ; then -		    # We need to specify -static-libgcc or we need to -		    # add the path to the sparv9 libgcc. -		    SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" -		    # for finding sparcv9 libgcc, get the regular libgcc -		    # path, remove so name and append 'sparcv9' -		    #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." -		    #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" -		fi -	    else -		SHLIB_LD="/usr/ccs/bin/ld -G -z text" +		AS_IF([test "$do64bit_ok" = yes], [ +		    AS_IF([test "$arch" = "sparcv9 sparc"], [ +			# We need to specify -static-libgcc or we need to +			# add the path to the sparv9 libgcc. +			SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" +			# for finding sparcv9 libgcc, get the regular libgcc +			# path, remove so name and append 'sparcv9' +			#v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." +			#CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" +		    ], [AS_IF([test "$arch" = "amd64 i386"], [ +			SHLIB_LD="$SHLIB_LD -m64 -static-libgcc" +		    ])]) +		]) +	    ], [ +		AS_IF([test "$use_sunmath" = yes], [textmode=textoff],[textmode=text]) +		case $system in +		    SunOS-5.[[1-9]][[0-9]]*|SunOS-5.[[7-9]]) +			SHLIB_LD="\${CC} -G -z $textmode \${LDFLAGS}";; +		    *) +			SHLIB_LD="/usr/ccs/bin/ld -G -z $textmode";; +		esac  		CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'  		LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' -	    fi +	    ])  	    ;;  	UNIX_SV* | UnixWare-5*)  	    SHLIB_CFLAGS="-KPIC" -	    SHLIB_LD="cc -G" +	    SHLIB_LD='${CC} -G'  	    SHLIB_LD_LIBS=""  	    SHLIB_SUFFIX=".so"  	    DL_OBJS="tclLoadDl.o" @@ -1892,37 +1975,38 @@ dnl AC_CHECK_TOOL(AR, ar)  		LDFLAGS="$LDFLAGS -Wl,-Bexport"  		AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no)  	        LDFLAGS=$hold_ldflags]) -	    if test $tcl_cv_ld_Bexport = yes; then +	    AS_IF([test $tcl_cv_ld_Bexport = yes], [  		LDFLAGS="$LDFLAGS -Wl,-Bexport" -	    fi +	    ])  	    CC_SEARCH_FLAGS=""  	    LD_SEARCH_FLAGS=""  	    ;;      esac -    if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then +    AS_IF([test "$do64bit" = yes -a "$do64bit_ok" = no], [  	AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform]) -    fi +    ]) -    if test "$do64bit" = "yes" -a "$do64bit_ok" = "yes" ; then +    AS_IF([test "$do64bit" = yes -a "$do64bit_ok" = yes], [  	AC_DEFINE(TCL_CFG_DO64BIT, 1, [Is this a 64-bit build?]) -    fi +    ]) + +dnl # Add any CPPFLAGS set in the environment to our CFLAGS, but delay doing so +dnl # until the end of configure, as configure's compile and link tests use +dnl # both CPPFLAGS and CFLAGS (unlike our compile and link) but configure's +dnl # preprocessing tests use only CPPFLAGS. +    AC_CONFIG_COMMANDS_PRE([CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""])      # Step 4: disable dynamic loading if requested via a command-line switch.      AC_ARG_ENABLE(load, -	AC_HELP_STRING([--disable-load], -	    [disallow dynamic loading and "load" command (default: enabled)]), +	AC_HELP_STRING([--enable-load], +	    [allow dynamic loading and "load" command (default: on)]),  	[tcl_ok=$enableval], [tcl_ok=yes]) -    if test "$tcl_ok" = "no"; then -	DL_OBJS="" -    fi +    AS_IF([test "$tcl_ok" = no], [DL_OBJS=""]) -    if test "x$DL_OBJS" != "x" ; then -	BUILD_DLTEST="\$(DLTEST_TARGETS)" -    else -	echo "Can't figure out how to do dynamic loading or shared libraries" -	echo "on this system." +    AS_IF([test "x$DL_OBJS" != x], [BUILD_DLTEST="\$(DLTEST_TARGETS)"], [ +	AC_MSG_WARN([Can't figure out how to do dynamic loading or shared libraries on this system.])  	SHLIB_CFLAGS=""  	SHLIB_LD=""  	SHLIB_SUFFIX="" @@ -1932,91 +2016,90 @@ dnl AC_CHECK_TOOL(AR, ar)  	CC_SEARCH_FLAGS=""  	LD_SEARCH_FLAGS=""  	BUILD_DLTEST="" -    fi +    ])      LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"      # If we're running gcc, then change the C flags for compiling shared      # libraries to the right flags for gcc, instead of those for the      # standard manufacturer compiler. -    if test "$DL_OBJS" != "tclLoadNone.o" ; then -	if test "$GCC" = "yes" ; then -	    case $system in -		AIX-*) -		    ;; -		BSD/OS*) -		    ;; -		IRIX*) -		    ;; -		NetBSD-*|FreeBSD-*) -		    ;; -		Darwin-*) -		    ;; -		SCO_SV-3.2*) -		    ;; -		*) -		    SHLIB_CFLAGS="-fPIC" -		    ;; -	    esac -	fi -    fi +    AS_IF([test "$DL_OBJS" != "tclLoadNone.o" -a "$GCC" = yes], [ +	case $system in +	    AIX-*) ;; +	    BSD/OS*) ;; +	    CYGWIN_*|MINGW32_*) ;; +	    IRIX*) ;; +	    NetBSD-*|FreeBSD-*|OpenBSD-*) ;; +	    Darwin-*) ;; +	    SCO_SV-3.2*) ;; +	    *) SHLIB_CFLAGS="-fPIC" ;; +	esac]) + +    AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [ +	AC_DEFINE(MODULE_SCOPE, [extern], +	    [No Compiler support for module scope symbols]) +    ]) -    if test "$SHARED_LIB_SUFFIX" = "" ; then -	SHARED_LIB_SUFFIX='${VERSION}${SHLIB_SUFFIX}' -    fi -    if test "$UNSHARED_LIB_SUFFIX" = "" ; then -	UNSHARED_LIB_SUFFIX='${VERSION}.a' -    fi +    AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [ +	SHARED_LIB_SUFFIX='${VERSION}${SHLIB_SUFFIX}']) +    AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [ +	UNSHARED_LIB_SUFFIX='${VERSION}.a']) +    DLL_INSTALL_DIR="\$(LIB_INSTALL_DIR)" -    if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then +    AS_IF([test "${SHARED_BUILD}" = 1 -a "${SHLIB_SUFFIX}" != ""], [          LIB_SUFFIX=${SHARED_LIB_SUFFIX}          MAKE_LIB='${SHLIB_LD} -o [$]@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}' -        INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' -    else +        AS_IF([test "${SHLIB_SUFFIX}" = ".dll"], [ +            INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) "$(BIN_INSTALL_DIR)/$(LIB_FILE)";if test -f $(LIB_FILE).a; then $(INSTALL_DATA) $(LIB_FILE).a "$(LIB_INSTALL_DIR)"; fi;' +            DLL_INSTALL_DIR="\$(BIN_INSTALL_DIR)" +        ], [ +            INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) "$(LIB_INSTALL_DIR)/$(LIB_FILE)"' +        ]) +    ], [          LIB_SUFFIX=${UNSHARED_LIB_SUFFIX} -        if test "$RANLIB" = "" ; then +        AS_IF([test "$RANLIB" = ""], [              MAKE_LIB='$(STLIB_LD) [$]@ ${OBJS}' -            INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' -        else +        ], [              MAKE_LIB='${STLIB_LD} [$]@ ${OBJS} ; ${RANLIB} [$]@' -            INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(LIB_FILE))' -        fi - -dnl        Not at all clear what this was doing in Tcl's configure.in -dnl        or why it was needed was needed. In any event, this sort of -dnl        things needs to be done in the big loop above. -dnl        REMOVE THIS BLOCK LATER! (mdejong) -dnl        case $system in -dnl            BSD/OS*) -dnl                ;; -dnl            AIX-[[1-4]].*) -dnl                ;; -dnl            *) -dnl                SHLIB_LD_LIBS="" -dnl                ;; -dnl        esac -    fi - +        ]) +        INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) "$(LIB_INSTALL_DIR)/$(LIB_FILE)"' +    ])      # Stub lib does not depend on shared/static configuration -    if test "$RANLIB" = "" ; then +    AS_IF([test "$RANLIB" = ""], [          MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS}' -        INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE)' -    else +    ], [          MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS} ; ${RANLIB} [$]@' -        INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(STUB_LIB_FILE))' -    fi +    ]) +    INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) "$(LIB_INSTALL_DIR)/$(STUB_LIB_FILE)"'      # Define TCL_LIBS now that we know what DL_LIBS is. -    # The trick here is that we don't want to change -    # the value of TCL_LIBS if it is already set when -    # tclConfig.sh had been loaded by Tk. -    if test "x${TCL_LIBS}" = "x"; then -        TCL_LIBS="${DL_LIBS} ${LIBS} ${MATH_LIBS}" -    fi +    # The trick here is that we don't want to change the value of TCL_LIBS if +    # it is already set when tclConfig.sh had been loaded by Tk. +    AS_IF([test "x${TCL_LIBS}" = x], [ +        TCL_LIBS="${DL_LIBS} ${LIBS} ${MATH_LIBS}"])      AC_SUBST(TCL_LIBS) +	# See if the compiler supports casting to a union type. +	# This is used to stop gcc from printing a compiler +	# warning when initializing a union member. + +	AC_CACHE_CHECK(for cast to union support, +	    tcl_cv_cast_to_union, +	    AC_TRY_COMPILE([], +	    [ +		  union foo { int i; double d; }; +		  union foo f = (union foo) (int) 0; +	    ], +	    tcl_cv_cast_to_union=yes, +	    tcl_cv_cast_to_union=no) +	) +	if test "$tcl_cv_cast_to_union" = "yes"; then +	    AC_DEFINE(HAVE_CAST_TO_UNION, 1, +		    [Defined when compiler supports casting to union type.]) +	fi +      # FIXME: This subst was left in only because the TCL_DL_LIBS      # entry in tclConfig.sh uses it. It is not clear why someone      # would use TCL_DL_LIBS instead of TCL_LIBS. @@ -2025,6 +2108,7 @@ dnl        esac      AC_SUBST(DL_OBJS)      AC_SUBST(PLAT_OBJS)      AC_SUBST(PLAT_SRCS) +    AC_SUBST(LDAIX_SRC)      AC_SUBST(CFLAGS)      AC_SUBST(CFLAGS_DEBUG)      AC_SUBST(CFLAGS_OPTIMIZE) @@ -2049,129 +2133,12 @@ dnl        esac      AC_SUBST(MAKE_LIB)      AC_SUBST(MAKE_STUB_LIB)      AC_SUBST(INSTALL_LIB) +    AC_SUBST(DLL_INSTALL_DIR)      AC_SUBST(INSTALL_STUB_LIB)      AC_SUBST(RANLIB)  ])  #-------------------------------------------------------------------- -# 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, -#	and some build environments have stdin not pointing at a -#	pseudo-terminal (usually /dev/null instead.) -# -# Arguments: -#	none -#	 -# Results: -# -#	Defines only one of the following vars: -#		HAVE_SYS_MODEM_H -#		USE_TERMIOS -#		USE_TERMIO -#		USE_SGTTY -# -#-------------------------------------------------------------------- - -AC_DEFUN(SC_SERIAL_PORT, [ -    AC_CHECK_HEADERS(sys/modem.h) -    AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [ -    AC_TRY_RUN([ -#include <termios.h> - -int main() { -    struct termios t; -    if (tcgetattr(0, &t) == 0) { -	cfsetospeed(&t, 0); -	t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; -	return 0; -    } -    return 1; -}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) -    if test $tcl_cv_api_serial = no ; then -	AC_TRY_RUN([ -#include <termio.h> - -int main() { -    struct termio t; -    if (ioctl(0, TCGETA, &t) == 0) { -	t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; -	return 0; -    } -    return 1; -}], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) -    fi -    if test $tcl_cv_api_serial = no ; then -	AC_TRY_RUN([ -#include <sgtty.h> - -int main() { -    struct sgttyb t; -    if (ioctl(0, TIOCGETP, &t) == 0) { -	t.sg_ospeed = 0; -	t.sg_flags |= ODDP | EVENP | RAW; -	return 0; -    } -    return 1; -}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no) -    fi -    if test $tcl_cv_api_serial = no ; then -	AC_TRY_RUN([ -#include <termios.h> -#include <errno.h> - -int main() { -    struct termios t; -    if (tcgetattr(0, &t) == 0 -	|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) { -	cfsetospeed(&t, 0); -	t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; -	return 0; -    } -    return 1; -}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) -    fi -    if test $tcl_cv_api_serial = no; then -	AC_TRY_RUN([ -#include <termio.h> -#include <errno.h> - -int main() { -    struct termio t; -    if (ioctl(0, TCGETA, &t) == 0 -	|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) { -	t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; -	return 0; -    } -    return 1; -    }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) -    fi -    if test $tcl_cv_api_serial = no; then -	AC_TRY_RUN([ -#include <sgtty.h> -#include <errno.h> - -int main() { -    struct sgttyb t; -    if (ioctl(0, TIOCGETP, &t) == 0 -	|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) { -	t.sg_ospeed = 0; -	t.sg_flags |= ODDP | EVENP | RAW; -	return 0; -    } -    return 1; -}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none) -    fi]) -    case $tcl_cv_api_serial in -	termios) AC_DEFINE(USE_TERMIOS, 1, [Use the termios API for serial lines]);; -	termio)  AC_DEFINE(USE_TERMIO, 1, [Use the termio API for serial lines]);; -	sgtty)   AC_DEFINE(USE_SGTTY, 1, [Use the sgtty API for serial lines]);; -    esac -]) - -#--------------------------------------------------------------------  # SC_MISSING_POSIX_HEADERS  #  #	Supply substitutes for missing POSIX header files.  Special @@ -2183,13 +2150,12 @@ int main() {  #  # Arguments:  #	none -#	 +#  # Results:  #  #	Defines some of the following vars:  #		NO_DIRENT_H  #		NO_VALUES_H -#		HAVE_LIMITS_H or NO_LIMITS_H  #		NO_STDLIB_H  #		NO_STRING_H  #		NO_SYS_WAIT_H @@ -2200,8 +2166,8 @@ int main() {  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_MISSING_POSIX_HEADERS, [ -    AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, +AC_DEFUN([SC_MISSING_POSIX_HEADERS], [ +    AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [      AC_TRY_LINK([#include <sys/types.h>  #include <dirent.h>], [  #ifndef _POSIX_SOURCE @@ -2221,7 +2187,7 @@ d = opendir("foobar");  entryPtr = readdir(d);  p = entryPtr->d_name;  closedir(d); -], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)) +], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)])      if test $tcl_cv_dirent_h = no; then  	AC_DEFINE(NO_DIRENT_H, 1, [Do we have <dirent.h>?]) @@ -2229,9 +2195,6 @@ closedir(d);      AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H, 1, [Do we have <float.h>?])])      AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H, 1, [Do we have <values.h>?])]) -    AC_CHECK_HEADER(limits.h, -	[AC_DEFINE(HAVE_LIMITS_H, 1, [Do we have <limits.h>?])], -	[AC_DEFINE(NO_LIMITS_H, 1, [Do we have <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) @@ -2269,23 +2232,23 @@ closedir(d);  #  # Arguments:  #	none -#	 +#  # Results:  # -#	Sets the the following vars: +#	Sets the following vars:  #		XINCLUDES  #		XLIBSW  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_PATH_X, [ +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") +	    AC_TRY_CPP([#include <X11/Xlib.h>], , not_really_there="yes")  	else -	    if test ! -r $x_includes/X11/Intrinsic.h; then +	    if test ! -r $x_includes/X11/Xlib.h; then  		not_really_there="yes"  	    fi  	fi @@ -2293,11 +2256,11 @@ AC_DEFUN(SC_PATH_X, [      if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then  	AC_MSG_CHECKING([for X11 header files])  	found_xincludes="no" -	AC_TRY_CPP([#include <X11/Intrinsic.h>], found_xincludes="yes", found_xincludes="no") +	AC_TRY_CPP([#include <X11/Xlib.h>], found_xincludes="yes", found_xincludes="no")  	if test "$found_xincludes" = "no"; 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 +		if test -r $i/X11/Xlib.h; then  		    AC_MSG_RESULT([$i])  		    XINCLUDES=" -I$i"  		    found_xincludes="yes" @@ -2311,7 +2274,7 @@ AC_DEFUN(SC_PATH_X, [  	    found_xincludes="yes"  	fi      fi -    if test found_xincludes = "no"; then +    if test "$found_xincludes" = "no"; then  	AC_MSG_RESULT([couldn't find any!])      fi @@ -2320,7 +2283,7 @@ AC_DEFUN(SC_PATH_X, [  	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 +	    if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl -o -r $i/libX11.dylib; then  		AC_MSG_RESULT([$i])  		XLIBSW="-L$i -lX11"  		x_libraries="$i" @@ -2347,13 +2310,13 @@ AC_DEFUN(SC_PATH_X, [  # SC_BLOCKING_STYLE  #  #	The statements below check for systems where POSIX-style -#	non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented.  +#	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: @@ -2364,17 +2327,12 @@ AC_DEFUN(SC_PATH_X, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_BLOCKING_STYLE, [ +AC_DEFUN([SC_BLOCKING_STYLE], [      AC_CHECK_HEADERS(sys/ioctl.h)      AC_CHECK_HEADERS(sys/filio.h)      SC_CONFIG_SYSTEM      AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])      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, 1, [Should we use FIONBIO?])  	    AC_MSG_RESULT([FIONBIO]) @@ -2397,7 +2355,7 @@ AC_DEFUN(SC_BLOCKING_STYLE, [  #  # Arguments:  #	none -#	 +#  # Results:  #  #	Defines some of the following vars: @@ -2408,23 +2366,22 @@ AC_DEFUN(SC_BLOCKING_STYLE, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_TIME_HANDLER, [ +AC_DEFUN([SC_TIME_HANDLER], [      AC_CHECK_HEADERS(sys/time.h)      AC_HEADER_TIME -    AC_STRUCT_TIMEZONE      AC_CHECK_FUNCS(gmtime_r localtime_r mktime) -    AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, +    AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [  	AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;], -	    tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)) +	    tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)])      if test $tcl_cv_member_tm_tzadj = yes ; then  	AC_DEFINE(HAVE_TM_TZADJ, 1, [Should we use the tm_tzadj field of struct tm?])      fi -    AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, +    AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [  	AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;], -	    tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)) +	    tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)])      if test $tcl_cv_member_tm_gmtoff = yes ; then  	AC_DEFINE(HAVE_TM_GMTOFF, 1, [Should we use the tm_gmtoff field of struct tm?])      fi @@ -2433,24 +2390,24 @@ AC_DEFUN(SC_TIME_HANDLER, [      # Its important to include time.h in this check, as some systems      # (like convex) have timezone functions, etc.      # -    AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, +    AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [  	AC_TRY_COMPILE([#include <time.h>],  	    [extern long timezone;  	    timezone += 1;  	    exit (0);], -	    tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)) +	    tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)])      if test $tcl_cv_timezone_long = yes ; then  	AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])      else  	#  	# On some systems (eg IRIX 6.2), timezone is a time_t and not a long.  	# -	AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, +	AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [  	    AC_TRY_COMPILE([#include <time.h>],  		[extern time_t timezone;  		timezone += 1;  		exit (0);], -		tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)) +		tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)])  	if test $tcl_cv_timezone_time = yes ; then  	    AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])  	fi @@ -2469,7 +2426,7 @@ AC_DEFUN(SC_TIME_HANDLER, [  #  # Arguments:  #	none -#	 +#  # Results:  #  #	Might defines some of the following vars: @@ -2477,7 +2434,7 @@ AC_DEFUN(SC_TIME_HANDLER, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_BUGGY_STRTOD, [ +AC_DEFUN([SC_BUGGY_STRTOD], [      AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0)      if test "$tcl_strtod" = 1; then  	AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[ @@ -2519,7 +2476,7 @@ AC_DEFUN(SC_BUGGY_STRTOD, [  #  # Arguments:  #	None. -#	 +#  # Results:  #  #	Might append to the following vars: @@ -2531,7 +2488,7 @@ AC_DEFUN(SC_BUGGY_STRTOD, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_TCL_LINK_LIBS, [ +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. @@ -2592,7 +2549,7 @@ AC_DEFUN(SC_TCL_LINK_LIBS, [  #  # Arguments:  #	None -#	 +#  # Results:  #  #	Might define the following vars: @@ -2602,7 +2559,7 @@ AC_DEFUN(SC_TCL_LINK_LIBS, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_TCL_EARLY_FLAG,[ +AC_DEFUN([SC_TCL_EARLY_FLAG],[      AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]),  	AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,  	    AC_TRY_COMPILE([[#define ]$1[ 1 @@ -2615,7 +2572,7 @@ AC_DEFUN(SC_TCL_EARLY_FLAG,[      fi  ]) -AC_DEFUN(SC_TCL_EARLY_FLAGS,[ +AC_DEFUN([SC_TCL_EARLY_FLAGS],[      AC_MSG_CHECKING([for required early compiler flags])      tcl_flags=""      SC_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include <stdlib.h>], @@ -2638,7 +2595,7 @@ AC_DEFUN(SC_TCL_EARLY_FLAGS,[  #  # Arguments:  #	None -#	 +#  # Results:  #  #	Might define the following vars: @@ -2650,7 +2607,7 @@ AC_DEFUN(SC_TCL_EARLY_FLAGS,[  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_TCL_64BIT_FLAGS, [ +AC_DEFUN([SC_TCL_64BIT_FLAGS], [      AC_MSG_CHECKING([for 64-bit integer type])      AC_CACHE_VAL(tcl_cv_type_64bit,[  	tcl_cv_type_64bit=none @@ -2660,8 +2617,8 @@ AC_DEFUN(SC_TCL_64BIT_FLAGS, [  	# 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)): ;  +        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, 1, [Are wide integers to be implemented with C 'long's?]) @@ -2674,7 +2631,7 @@ AC_DEFUN(SC_TCL_64BIT_FLAGS, [  	# Now check for auxiliary declarations  	AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[  	    AC_TRY_COMPILE([#include <sys/types.h> -#include <sys/dirent.h>],[struct dirent64 p;], +#include <dirent.h>],[struct dirent64 p;],  		tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)])  	if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then  	    AC_DEFINE(HAVE_STRUCT_DIRENT64, 1, [Is 'struct dirent64' in <sys/types.h>?]) @@ -2724,7 +2681,7 @@ AC_DEFUN(SC_TCL_64BIT_FLAGS, [  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_TCL_CFG_ENCODING, [ +AC_DEFUN([SC_TCL_CFG_ENCODING], [      AC_ARG_WITH(encoding,  	AC_HELP_STRING([--with-encoding],  	    [encoding for configuration values (default: iso8859-1)]), @@ -2749,13 +2706,13 @@ AC_DEFUN(SC_TCL_CFG_ENCODING, [  #	advancedTest - the advanced test to run if the function is present  #  # Results: -#	Might cause compatability versions of the function to be used. +#	Might cause compatibility versions of the function to be used.  #	Might affect the following vars:  #		USE_COMPAT	(implicit)  #  #-------------------------------------------------------------------- -AC_DEFUN(SC_TCL_CHECK_BROKEN_FUNC,[ +AC_DEFUN([SC_TCL_CHECK_BROKEN_FUNC],[      AC_CHECK_FUNC($1, tcl_ok=1, tcl_ok=0)      if test ["$tcl_ok"] = 1; then  	AC_CACHE_CHECK([proper ]$1[ implementation], [tcl_cv_]$1[_unbroken], @@ -2773,7 +2730,409 @@ AC_DEFUN(SC_TCL_CHECK_BROKEN_FUNC,[      fi  ]) +#-------------------------------------------------------------------- +# SC_TCL_GETHOSTBYADDR_R +# +#	Check if we have MT-safe variant of gethostbyaddr(). +# +# Arguments: +#	None +# +# Results: +# +#	Might define the following vars: +#		HAVE_GETHOSTBYADDR_R +#		HAVE_GETHOSTBYADDR_R_7 +#		HAVE_GETHOSTBYADDR_R_8 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETHOSTBYADDR_R], [AC_CHECK_FUNC(gethostbyaddr_r, [ +    AC_CACHE_CHECK([for gethostbyaddr_r with 7 args], tcl_cv_api_gethostbyaddr_r_7, [ +    AC_TRY_COMPILE([ +	#include <netdb.h> +    ], [ +	char *addr; +	int length; +	int type; +	struct hostent *result; +	char buffer[2048]; +	int buflen = 2048; +	int h_errnop; + +	(void) gethostbyaddr_r(addr, length, type, result, buffer, buflen, +			       &h_errnop); +    ], tcl_cv_api_gethostbyaddr_r_7=yes, tcl_cv_api_gethostbyaddr_r_7=no)]) +    tcl_ok=$tcl_cv_api_gethostbyaddr_r_7 +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETHOSTBYADDR_R_7, 1, +	    [Define to 1 if gethostbyaddr_r takes 7 args.]) +    else +	AC_CACHE_CHECK([for gethostbyaddr_r with 8 args], tcl_cv_api_gethostbyaddr_r_8, [ +	AC_TRY_COMPILE([ +	    #include <netdb.h> +	], [ +	    char *addr; +	    int length; +	    int type; +	    struct hostent *result, *resultp; +	    char buffer[2048]; +	    int buflen = 2048; +	    int h_errnop; + +	    (void) gethostbyaddr_r(addr, length, type, result, buffer, buflen, +				   &resultp, &h_errnop); +	], tcl_cv_api_gethostbyaddr_r_8=yes, tcl_cv_api_gethostbyaddr_r_8=no)]) +	tcl_ok=$tcl_cv_api_gethostbyaddr_r_8 +	if test "$tcl_ok" = yes; then +	    AC_DEFINE(HAVE_GETHOSTBYADDR_R_8, 1, +		[Define to 1 if gethostbyaddr_r takes 8 args.]) +	fi +    fi +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETHOSTBYADDR_R, 1, +	    [Define to 1 if gethostbyaddr_r is available.]) +    fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETHOSTBYNAME_R +# +#	Check to see what variant of gethostbyname_r() we have. +#	Based on David Arnold's example from the comp.programming.threads +#	FAQ Q213 +# +# Arguments: +#	None +# +# Results: +# +#	Might define the following vars: +#		HAVE_GETHOSTBYADDR_R +#		HAVE_GETHOSTBYADDR_R_3 +#		HAVE_GETHOSTBYADDR_R_5 +#		HAVE_GETHOSTBYADDR_R_6 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETHOSTBYNAME_R], [AC_CHECK_FUNC(gethostbyname_r, [ +    AC_CACHE_CHECK([for gethostbyname_r with 6 args], tcl_cv_api_gethostbyname_r_6, [ +    AC_TRY_COMPILE([ +	#include <netdb.h> +    ], [ +	char *name; +	struct hostent *he, *res; +	char buffer[2048]; +	int buflen = 2048; +	int h_errnop; + +	(void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop); +    ], tcl_cv_api_gethostbyname_r_6=yes, tcl_cv_api_gethostbyname_r_6=no)]) +    tcl_ok=$tcl_cv_api_gethostbyname_r_6 +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETHOSTBYNAME_R_6, 1, +	    [Define to 1 if gethostbyname_r takes 6 args.]) +    else +	AC_CACHE_CHECK([for gethostbyname_r with 5 args], tcl_cv_api_gethostbyname_r_5, [ +	AC_TRY_COMPILE([ +	    #include <netdb.h> +	], [ +	    char *name; +	    struct hostent *he; +	    char buffer[2048]; +	    int buflen = 2048; +	    int h_errnop; + +	    (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop); +	], tcl_cv_api_gethostbyname_r_5=yes, tcl_cv_api_gethostbyname_r_5=no)]) +	tcl_ok=$tcl_cv_api_gethostbyname_r_5 +	if test "$tcl_ok" = yes; then +	    AC_DEFINE(HAVE_GETHOSTBYNAME_R_5, 1, +		[Define to 1 if gethostbyname_r takes 5 args.]) +	else +	    AC_CACHE_CHECK([for gethostbyname_r with 3 args], tcl_cv_api_gethostbyname_r_3, [ +	    AC_TRY_COMPILE([ +		#include <netdb.h> +	    ], [ +		char *name; +		struct hostent *he; +		struct hostent_data data; + +		(void) gethostbyname_r(name, he, &data); +	    ], tcl_cv_api_gethostbyname_r_3=yes, tcl_cv_api_gethostbyname_r_3=no)]) +	    tcl_ok=$tcl_cv_api_gethostbyname_r_3 +	    if test "$tcl_ok" = yes; then +		AC_DEFINE(HAVE_GETHOSTBYNAME_R_3, 1, +		    [Define to 1 if gethostbyname_r takes 3 args.]) +	    fi +	fi +    fi +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETHOSTBYNAME_R, 1, +	    [Define to 1 if gethostbyname_r is available.]) +    fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETPWUID_R +# +#	Check if we have MT-safe variant of getpwuid() and if yes, +#	which one exactly. +# +# Arguments: +#	None +# +# Results: +# +#	Might define the following vars: +#		HAVE_GETPWUID_R +#		HAVE_GETPWUID_R_4 +#		HAVE_GETPWUID_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETPWUID_R], [AC_CHECK_FUNC(getpwuid_r, [ +    AC_CACHE_CHECK([for getpwuid_r with 5 args], tcl_cv_api_getpwuid_r_5, [ +    AC_TRY_COMPILE([ +	#include <sys/types.h> +	#include <pwd.h> +    ], [ +	uid_t uid; +	struct passwd pw, *pwp; +	char buf[512]; +	int buflen = 512; + +	(void) getpwuid_r(uid, &pw, buf, buflen, &pwp); +    ], tcl_cv_api_getpwuid_r_5=yes, tcl_cv_api_getpwuid_r_5=no)]) +    tcl_ok=$tcl_cv_api_getpwuid_r_5 +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETPWUID_R_5, 1, +	    [Define to 1 if getpwuid_r takes 5 args.]) +    else +	AC_CACHE_CHECK([for getpwuid_r with 4 args], tcl_cv_api_getpwuid_r_4, [ +	AC_TRY_COMPILE([ +	    #include <sys/types.h> +	    #include <pwd.h> +	], [ +	    uid_t uid; +	    struct passwd pw; +	    char buf[512]; +	    int buflen = 512; + +	    (void)getpwnam_r(uid, &pw, buf, buflen); +	], tcl_cv_api_getpwuid_r_4=yes, tcl_cv_api_getpwuid_r_4=no)]) +	tcl_ok=$tcl_cv_api_getpwuid_r_4 +	if test "$tcl_ok" = yes; then +	    AC_DEFINE(HAVE_GETPWUID_R_4, 1, +		[Define to 1 if getpwuid_r takes 4 args.]) +	fi +    fi +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETPWUID_R, 1, +	    [Define to 1 if getpwuid_r is available.]) +    fi +])]) +#-------------------------------------------------------------------- +# SC_TCL_GETPWNAM_R +# +#	Check if we have MT-safe variant of getpwnam() and if yes, +#	which one exactly. +# +# Arguments: +#	None +# +# Results: +# +#	Might define the following vars: +#		HAVE_GETPWNAM_R +#		HAVE_GETPWNAM_R_4 +#		HAVE_GETPWNAM_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETPWNAM_R], [AC_CHECK_FUNC(getpwnam_r, [ +    AC_CACHE_CHECK([for getpwnam_r with 5 args], tcl_cv_api_getpwnam_r_5, [ +    AC_TRY_COMPILE([ +	#include <sys/types.h> +	#include <pwd.h> +    ], [ +	char *name; +	struct passwd pw, *pwp; +	char buf[512]; +	int buflen = 512; + +	(void) getpwnam_r(name, &pw, buf, buflen, &pwp); +    ], tcl_cv_api_getpwnam_r_5=yes, tcl_cv_api_getpwnam_r_5=no)]) +    tcl_ok=$tcl_cv_api_getpwnam_r_5 +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETPWNAM_R_5, 1, +	    [Define to 1 if getpwnam_r takes 5 args.]) +    else +	AC_CACHE_CHECK([for getpwnam_r with 4 args], tcl_cv_api_getpwnam_r_4, [ +	AC_TRY_COMPILE([ +	    #include <sys/types.h> +	    #include <pwd.h> +	], [ +	    char *name; +	    struct passwd pw; +	    char buf[512]; +	    int buflen = 512; + +	    (void)getpwnam_r(name, &pw, buf, buflen); +	], tcl_cv_api_getpwnam_r_4=yes, tcl_cv_api_getpwnam_r_4=no)]) +	tcl_ok=$tcl_cv_api_getpwnam_r_4 +	if test "$tcl_ok" = yes; then +	    AC_DEFINE(HAVE_GETPWNAM_R_4, 1, +		[Define to 1 if getpwnam_r takes 4 args.]) +	fi +    fi +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETPWNAM_R, 1, +	    [Define to 1 if getpwnam_r is available.]) +    fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETGRGID_R +# +#	Check if we have MT-safe variant of getgrgid() and if yes, +#	which one exactly. +# +# Arguments: +#	None +# +# Results: +# +#	Might define the following vars: +#		HAVE_GETGRGID_R +#		HAVE_GETGRGID_R_4 +#		HAVE_GETGRGID_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETGRGID_R], [AC_CHECK_FUNC(getgrgid_r, [ +    AC_CACHE_CHECK([for getgrgid_r with 5 args], tcl_cv_api_getgrgid_r_5, [ +    AC_TRY_COMPILE([ +	#include <sys/types.h> +	#include <grp.h> +    ], [ +	gid_t gid; +	struct group gr, *grp; +	char buf[512]; +	int buflen = 512; + +	(void) getgrgid_r(gid, &gr, buf, buflen, &grp); +    ], tcl_cv_api_getgrgid_r_5=yes, tcl_cv_api_getgrgid_r_5=no)]) +    tcl_ok=$tcl_cv_api_getgrgid_r_5 +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETGRGID_R_5, 1, +	    [Define to 1 if getgrgid_r takes 5 args.]) +    else +	AC_CACHE_CHECK([for getgrgid_r with 4 args], tcl_cv_api_getgrgid_r_4, [ +	AC_TRY_COMPILE([ +	    #include <sys/types.h> +	    #include <grp.h> +	], [ +	    gid_t gid; +	    struct group gr; +	    char buf[512]; +	    int buflen = 512; + +	    (void)getgrgid_r(gid, &gr, buf, buflen); +	], tcl_cv_api_getgrgid_r_4=yes, tcl_cv_api_getgrgid_r_4=no)]) +	tcl_ok=$tcl_cv_api_getgrgid_r_4 +	if test "$tcl_ok" = yes; then +	    AC_DEFINE(HAVE_GETGRGID_R_4, 1, +		[Define to 1 if getgrgid_r takes 4 args.]) +	fi +    fi +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETGRGID_R, 1, +	    [Define to 1 if getgrgid_r is available.]) +    fi +])]) + +#-------------------------------------------------------------------- +# SC_TCL_GETGRNAM_R +# +#	Check if we have MT-safe variant of getgrnam() and if yes, +#	which one exactly. +# +# Arguments: +#	None +# +# Results: +# +#	Might define the following vars: +#		HAVE_GETGRNAM_R +#		HAVE_GETGRNAM_R_4 +#		HAVE_GETGRNAM_R_5 +# +#-------------------------------------------------------------------- + +AC_DEFUN([SC_TCL_GETGRNAM_R], [AC_CHECK_FUNC(getgrnam_r, [ +    AC_CACHE_CHECK([for getgrnam_r with 5 args], tcl_cv_api_getgrnam_r_5, [ +    AC_TRY_COMPILE([ +	#include <sys/types.h> +	#include <grp.h> +    ], [ +	char *name; +	struct group gr, *grp; +	char buf[512]; +	int buflen = 512; + +	(void) getgrnam_r(name, &gr, buf, buflen, &grp); +    ], tcl_cv_api_getgrnam_r_5=yes, tcl_cv_api_getgrnam_r_5=no)]) +    tcl_ok=$tcl_cv_api_getgrnam_r_5 +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETGRNAM_R_5, 1, +	    [Define to 1 if getgrnam_r takes 5 args.]) +    else +	AC_CACHE_CHECK([for getgrnam_r with 4 args], tcl_cv_api_getgrnam_r_4, [ +	AC_TRY_COMPILE([ +	    #include <sys/types.h> +	    #include <grp.h> +	], [ +	    char *name; +	    struct group gr; +	    char buf[512]; +	    int buflen = 512; + +	    (void)getgrnam_r(name, &gr, buf, buflen); +	], tcl_cv_api_getgrnam_r_4=yes, tcl_cv_api_getgrnam_r_4=no)]) +	tcl_ok=$tcl_cv_api_getgrnam_r_4 +	if test "$tcl_ok" = yes; then +	    AC_DEFINE(HAVE_GETGRNAM_R_4, 1, +		[Define to 1 if getgrnam_r takes 4 args.]) +	fi +    fi +    if test "$tcl_ok" = yes; then +	AC_DEFINE(HAVE_GETGRNAM_R, 1, +	    [Define to 1 if getgrnam_r is available.]) +    fi +])]) + +AC_DEFUN([SC_TCL_IPV6],[ +	NEED_FAKE_RFC2553=0 +	AC_CHECK_FUNCS(getnameinfo getaddrinfo freeaddrinfo gai_strerror,,[NEED_FAKE_RFC2553=1]) +	AC_CHECK_TYPES([ +		struct addrinfo, +		struct in6_addr, +		struct sockaddr_in6, +		struct sockaddr_storage],,[NEED_FAKE_RFC2553=1],[[ +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <netdb.h> +]]) +if test "x$NEED_FAKE_RFC2553" = "x1"; then +   AC_DEFINE([NEED_FAKE_RFC2553], 1, +        [Use compat implementation of getaddrinfo() and friends]) +   AC_LIBOBJ([fake-rfc2553]) +   AC_CHECK_FUNC(strlcpy) +fi +])  # Local Variables:  # mode: autoconf  # End: | 
