1# $Id: tcl.m4,v 12.2 2005/06/28 20:45:25 gmf Exp $
2
3# The SC_* macros in this file are from the unix/tcl.m4 files in the Tcl
4# 8.3.0 distribution, with some minor changes.  For this reason, license
5# terms for the Berkeley DB distribution dist/aclocal/tcl.m4 file are as
6# follows (copied from the license.terms file in the Tcl 8.3 distribution):
7#
8# This software is copyrighted by the Regents of the University of
9# California, Sun Microsystems, Inc., Scriptics Corporation,
10# and other parties.  The following terms apply to all files associated
11# with the software unless explicitly disclaimed in individual files.
12#
13# The authors hereby grant permission to use, copy, modify, distribute,
14# and license this software and its documentation for any purpose, provided
15# that existing copyright notices are retained in all copies and that this
16# notice is included verbatim in any distributions. No written agreement,
17# license, or royalty fee is required for any of the authorized uses.
18# Modifications to this software may be copyrighted by their authors
19# and need not follow the licensing terms described here, provided that
20# the new terms are clearly indicated on the first page of each file where
21# they apply.
22#
23# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
24# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
25# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
26# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
27# POSSIBILITY OF SUCH DAMAGE.
28#
29# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
30# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
31# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
32# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
33# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
34# MODIFICATIONS.
35#
36# GOVERNMENT USE: If you are acquiring this software on behalf of the
37# U.S. government, the Government shall have only "Restricted Rights"
38# in the software and related documentation as defined in the Federal
39# Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
40# are acquiring the software on behalf of the Department of Defense, the
41# software shall be classified as "Commercial Computer Software" and the
42# Government shall have only "Restricted Rights" as defined in Clause
43# 252.227-7013 (c) (1) of DFARs.  Notwithstanding the foregoing, the
44# authors grant the U.S. Government and others acting in its behalf
45# permission to use and distribute the software in accordance with the
46# terms specified in this license.
47
48AC_DEFUN(SC_PATH_TCLCONFIG, [
49	AC_CACHE_VAL(ac_cv_c_tclconfig,[
50
51	    # First check to see if --with-tclconfig was specified.
52	    if test "${with_tclconfig}" != no; then
53		if test -f "${with_tclconfig}/tclConfig.sh" ; then
54		    ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
55		else
56		    AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
57		fi
58	    fi
59
60	    # check in a few common install locations
61	    if test x"${ac_cv_c_tclconfig}" = x ; then
62		for i in `ls -d /usr/local/lib 2>/dev/null` ; do
63		    if test -f "$i/tclConfig.sh" ; then
64			ac_cv_c_tclconfig=`(cd $i; pwd)`
65			break
66		    fi
67		done
68	    fi
69
70	])
71
72	if test x"${ac_cv_c_tclconfig}" = x ; then
73	    TCL_BIN_DIR="# no Tcl configs found"
74	    AC_MSG_ERROR(can't find Tcl configuration definitions)
75	else
76	    TCL_BIN_DIR=${ac_cv_c_tclconfig}
77	fi
78])
79
80AC_DEFUN(SC_LOAD_TCLCONFIG, [
81	AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh])
82
83	if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
84		AC_MSG_RESULT([loading])
85		. $TCL_BIN_DIR/tclConfig.sh
86	else
87		AC_MSG_RESULT([file not found])
88	fi
89
90	# DB requires at least version 8.4.
91	if test ${TCL_MAJOR_VERSION} -lt 8 \
92	    -o ${TCL_MAJOR_VERSION} -eq 8 -a ${TCL_MINOR_VERSION} -lt 4; then
93		AC_MSG_ERROR([Berkeley DB requires Tcl version 8.4 or better.])
94	fi
95
96	# The eval is required to do substitution (for example, the TCL_DBGX
97	# substitution in the TCL_LIB_FILE variable.
98	eval "TCL_INCLUDE_SPEC=\"${TCL_INCLUDE_SPEC}\""
99	eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
100	eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
101	eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
102
103	#
104	# If the DB Tcl library isn't loaded with the Tcl spec and library
105	# flags on AIX, the resulting libdb_tcl-X.Y.so.0 will drop core at
106	# load time. [#4843]  Furthermore, with Tcl 8.3, the link flags
107	# given by the Tcl spec are insufficient for our use.  [#5779]
108	#
109	case "$host_os" in
110	aix4.[[2-9]].*)
111		LIBTSO_LIBS="$LIBTSO_LIBS $TCL_LIB_SPEC $TCL_LIB_FLAG"
112		LIBTSO_LIBS="$LIBTSO_LIBS -L$TCL_EXEC_PREFIX/lib -ltcl$TCL_VERSION";;
113	aix*)
114		LIBTSO_LIBS="$LIBTSO_LIBS $TCL_LIB_SPEC $TCL_LIB_FLAG";;
115	esac
116	AC_SUBST(TCL_BIN_DIR)
117	AC_SUBST(TCL_INCLUDE_SPEC)
118	AC_SUBST(TCL_LIB_FILE)
119	AC_SUBST(TCL_SRC_DIR)
120
121	AC_SUBST(TCL_TCLSH)
122	TCL_TCLSH="${TCL_PREFIX}/bin/tclsh${TCL_VERSION}"
123])
124
125# Optional Tcl API.
126AC_DEFUN(AM_TCL_LOAD, [
127	if test `$LIBTOOL_PROG --config | grep build_libtool_libs | grep no` 2>/dev/null; then
128		AC_MSG_ERROR([Tcl requires shared libraries])
129	fi
130
131	SC_PATH_TCLCONFIG
132	SC_LOAD_TCLCONFIG
133
134	INSTALL_LIBS="${INSTALL_LIBS} \$(libtso_target)"
135])
136