sqlmath 0.0.1 → 2021.11.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmignore +10 -0
- package/CHANGELOG.md +53 -2
- package/LICENSE +16 -22
- package/README.md +18 -219
- package/_binary_sqlmath_napi8_darwin_x64.node +0 -0
- package/_binary_sqlmath_napi8_linux_x64.node +0 -0
- package/_binary_sqlmath_napi8_win32_x64.node +0 -0
- package/jslint.mjs +10998 -0
- package/package.json +23 -8
- package/sqlmath.mjs +1713 -0
- package/.gitconfig +0 -25
- package/.github/workflows/ci.yml +0 -61
- package/.gitignore +0 -24
- package/extension-functions.c +0 -2047
- package/jslint_ci.sh +0 -1968
- package/node_sqlite3.cc +0 -11877
- package/sqlite-autoconf-3360000/INSTALL +0 -370
- package/sqlite-autoconf-3360000/Makefile.am +0 -20
- package/sqlite-autoconf-3360000/Makefile.fallback +0 -19
- package/sqlite-autoconf-3360000/Makefile.in +0 -1028
- package/sqlite-autoconf-3360000/Makefile.msc +0 -1037
- package/sqlite-autoconf-3360000/README.txt +0 -113
- package/sqlite-autoconf-3360000/Replace.cs +0 -223
- package/sqlite-autoconf-3360000/aclocal.m4 +0 -10199
- package/sqlite-autoconf-3360000/compile +0 -347
- package/sqlite-autoconf-3360000/config.guess +0 -1480
- package/sqlite-autoconf-3360000/config.sub +0 -1801
- package/sqlite-autoconf-3360000/configure +0 -16135
- package/sqlite-autoconf-3360000/configure.ac +0 -285
- package/sqlite-autoconf-3360000/depcomp +0 -791
- package/sqlite-autoconf-3360000/install-sh +0 -508
- package/sqlite-autoconf-3360000/ltmain.sh +0 -11156
- package/sqlite-autoconf-3360000/missing +0 -215
- package/sqlite-autoconf-3360000/shell.c +0 -22381
- package/sqlite-autoconf-3360000/sqlite3.1 +0 -286
- package/sqlite-autoconf-3360000/sqlite3.c +0 -235517
- package/sqlite-autoconf-3360000/sqlite3.h +0 -12353
- package/sqlite-autoconf-3360000/sqlite3.pc.in +0 -13
- package/sqlite-autoconf-3360000/sqlite3.rc +0 -83
- package/sqlite-autoconf-3360000/sqlite3ext.h +0 -663
- package/sqlite-autoconf-3360000/sqlite3rc.h +0 -3
- package/sqlite-autoconf-3360000/tea/Makefile.in +0 -440
- package/sqlite-autoconf-3360000/tea/README +0 -36
- package/sqlite-autoconf-3360000/tea/aclocal.m4 +0 -9
- package/sqlite-autoconf-3360000/tea/configure +0 -9989
- package/sqlite-autoconf-3360000/tea/configure.ac +0 -201
- package/sqlite-autoconf-3360000/tea/doc/sqlite3.n +0 -15
- package/sqlite-autoconf-3360000/tea/generic/tclsqlite3.c +0 -4016
- package/sqlite-autoconf-3360000/tea/license.terms +0 -6
- package/sqlite-autoconf-3360000/tea/pkgIndex.tcl.in +0 -7
- package/sqlite-autoconf-3360000/tea/tclconfig/install-sh +0 -528
- package/sqlite-autoconf-3360000/tea/tclconfig/tcl.m4 +0 -4168
- package/sqlite-autoconf-3360000/tea/win/makefile.vc +0 -419
- package/sqlite-autoconf-3360000/tea/win/nmakehlp.c +0 -815
- package/sqlite-autoconf-3360000/tea/win/rules.vc +0 -711
- package/sqlmath.js +0 -238
- package/test/backup.test.js +0 -279
- package/test/blob.test.js +0 -54
- package/test/cache.test.js +0 -42
- package/test/constants.test.js +0 -44
- package/test/database_fail.test.js +0 -153
- package/test/each.test.js +0 -39
- package/test/exec.test.js +0 -39
- package/test/extension.test.js +0 -26
- package/test/extension_functions.test.js +0 -29
- package/test/fts-content.test.js +0 -13
- package/test/interrupt.test.js +0 -80
- package/test/issue-108.test.js +0 -28
- package/test/json.test.js +0 -22
- package/test/map.test.js +0 -63
- package/test/named_columns.test.js +0 -38
- package/test/named_params.test.js +0 -69
- package/test/null_error.test.js +0 -41
- package/test/nw/.gitignore +0 -3
- package/test/nw/Makefile +0 -39
- package/test/nw/index.html +0 -14
- package/test/nw/package.json +0 -9
- package/test/open_close.test.js +0 -187
- package/test/other_objects.test.js +0 -98
- package/test/parallel_insert.test.js +0 -44
- package/test/prepare.test.js +0 -427
- package/test/profile.test.js +0 -57
- package/test/rerun.test.js +0 -50
- package/test/scheduling.test.js +0 -44
- package/test/serialization.test.js +0 -104
- package/test/support/createdb-electron.js +0 -10
- package/test/support/createdb.js +0 -47
- package/test/support/elmo.png +0 -0
- package/test/support/helper.js +0 -37
- package/test/support/script.sql +0 -70
- package/test/trace.test.js +0 -67
- package/test/unicode.test.js +0 -114
- package/test/upsert.test.js +0 -27
- package/test/verbose.test.js +0 -60
- package/test.js +0 -141
- package/test.slr.mjs +0 -212
|
@@ -1,4168 +0,0 @@
|
|
|
1
|
-
# tcl.m4 --
|
|
2
|
-
#
|
|
3
|
-
# This file provides a set of autoconf macros to help TEA-enable
|
|
4
|
-
# a Tcl extension.
|
|
5
|
-
#
|
|
6
|
-
# Copyright (c) 1999-2000 Ajuba Solutions.
|
|
7
|
-
# Copyright (c) 2002-2005 ActiveState Corporation.
|
|
8
|
-
#
|
|
9
|
-
# See the file "license.terms" for information on usage and redistribution
|
|
10
|
-
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
11
|
-
|
|
12
|
-
AC_PREREQ(2.57)
|
|
13
|
-
|
|
14
|
-
dnl TEA extensions pass us the version of TEA they think they
|
|
15
|
-
dnl are compatible with (must be set in TEA_INIT below)
|
|
16
|
-
dnl TEA_VERSION="3.9"
|
|
17
|
-
|
|
18
|
-
# Possible values for key variables defined:
|
|
19
|
-
#
|
|
20
|
-
# TEA_WINDOWINGSYSTEM - win32 aqua x11 (mirrors 'tk windowingsystem')
|
|
21
|
-
# TEA_PLATFORM - windows unix
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
#------------------------------------------------------------------------
|
|
25
|
-
# TEA_PATH_TCLCONFIG --
|
|
26
|
-
#
|
|
27
|
-
# Locate the tclConfig.sh file and perform a sanity check on
|
|
28
|
-
# the Tcl compile flags
|
|
29
|
-
#
|
|
30
|
-
# Arguments:
|
|
31
|
-
# none
|
|
32
|
-
#
|
|
33
|
-
# Results:
|
|
34
|
-
#
|
|
35
|
-
# Adds the following arguments to configure:
|
|
36
|
-
# --with-tcl=...
|
|
37
|
-
#
|
|
38
|
-
# Defines the following vars:
|
|
39
|
-
# TCL_BIN_DIR Full path to the directory containing
|
|
40
|
-
# the tclConfig.sh file
|
|
41
|
-
#------------------------------------------------------------------------
|
|
42
|
-
|
|
43
|
-
AC_DEFUN([TEA_PATH_TCLCONFIG], [
|
|
44
|
-
dnl TEA specific: Make sure we are initialized
|
|
45
|
-
AC_REQUIRE([TEA_INIT])
|
|
46
|
-
#
|
|
47
|
-
# Ok, lets find the tcl configuration
|
|
48
|
-
# First, look for one uninstalled.
|
|
49
|
-
# the alternative search directory is invoked by --with-tcl
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
if test x"${no_tcl}" = x ; then
|
|
53
|
-
# we reset no_tcl in case something fails here
|
|
54
|
-
no_tcl=true
|
|
55
|
-
AC_ARG_WITH(tcl,
|
|
56
|
-
AC_HELP_STRING([--with-tcl],
|
|
57
|
-
[directory containing tcl configuration (tclConfig.sh)]),
|
|
58
|
-
with_tclconfig="${withval}")
|
|
59
|
-
AC_MSG_CHECKING([for Tcl configuration])
|
|
60
|
-
AC_CACHE_VAL(ac_cv_c_tclconfig,[
|
|
61
|
-
|
|
62
|
-
# First check to see if --with-tcl was specified.
|
|
63
|
-
if test x"${with_tclconfig}" != x ; then
|
|
64
|
-
case "${with_tclconfig}" in
|
|
65
|
-
*/tclConfig.sh )
|
|
66
|
-
if test -f "${with_tclconfig}"; then
|
|
67
|
-
AC_MSG_WARN([--with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself])
|
|
68
|
-
with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`"
|
|
69
|
-
fi ;;
|
|
70
|
-
esac
|
|
71
|
-
if test -f "${with_tclconfig}/tclConfig.sh" ; then
|
|
72
|
-
ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`"
|
|
73
|
-
else
|
|
74
|
-
AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
|
|
75
|
-
fi
|
|
76
|
-
fi
|
|
77
|
-
|
|
78
|
-
# then check for a private Tcl installation
|
|
79
|
-
if test x"${ac_cv_c_tclconfig}" = x ; then
|
|
80
|
-
for i in \
|
|
81
|
-
../tcl \
|
|
82
|
-
`ls -dr ../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
83
|
-
`ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \
|
|
84
|
-
`ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
|
|
85
|
-
../../tcl \
|
|
86
|
-
`ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
87
|
-
`ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
|
|
88
|
-
`ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
|
|
89
|
-
../../../tcl \
|
|
90
|
-
`ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
91
|
-
`ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
|
|
92
|
-
`ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
|
|
93
|
-
if test "${TEA_PLATFORM}" = "windows" \
|
|
94
|
-
-a -f "$i/win/tclConfig.sh" ; then
|
|
95
|
-
ac_cv_c_tclconfig="`(cd $i/win; pwd)`"
|
|
96
|
-
break
|
|
97
|
-
fi
|
|
98
|
-
if test -f "$i/unix/tclConfig.sh" ; then
|
|
99
|
-
ac_cv_c_tclconfig="`(cd $i/unix; pwd)`"
|
|
100
|
-
break
|
|
101
|
-
fi
|
|
102
|
-
done
|
|
103
|
-
fi
|
|
104
|
-
|
|
105
|
-
# on Darwin, check in Framework installation locations
|
|
106
|
-
if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then
|
|
107
|
-
for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
|
|
108
|
-
`ls -d /Library/Frameworks 2>/dev/null` \
|
|
109
|
-
`ls -d /Network/Library/Frameworks 2>/dev/null` \
|
|
110
|
-
`ls -d /System/Library/Frameworks 2>/dev/null` \
|
|
111
|
-
; do
|
|
112
|
-
if test -f "$i/Tcl.framework/tclConfig.sh" ; then
|
|
113
|
-
ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`"
|
|
114
|
-
break
|
|
115
|
-
fi
|
|
116
|
-
done
|
|
117
|
-
fi
|
|
118
|
-
|
|
119
|
-
# TEA specific: on Windows, check in common installation locations
|
|
120
|
-
if test "${TEA_PLATFORM}" = "windows" \
|
|
121
|
-
-a x"${ac_cv_c_tclconfig}" = x ; then
|
|
122
|
-
for i in `ls -d C:/Tcl/lib 2>/dev/null` \
|
|
123
|
-
`ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
|
|
124
|
-
; do
|
|
125
|
-
if test -f "$i/tclConfig.sh" ; then
|
|
126
|
-
ac_cv_c_tclconfig="`(cd $i; pwd)`"
|
|
127
|
-
break
|
|
128
|
-
fi
|
|
129
|
-
done
|
|
130
|
-
fi
|
|
131
|
-
|
|
132
|
-
# check in a few common install locations
|
|
133
|
-
if test x"${ac_cv_c_tclconfig}" = x ; then
|
|
134
|
-
for i in `ls -d ${libdir} 2>/dev/null` \
|
|
135
|
-
`ls -d ${exec_prefix}/lib 2>/dev/null` \
|
|
136
|
-
`ls -d ${prefix}/lib 2>/dev/null` \
|
|
137
|
-
`ls -d /usr/local/lib 2>/dev/null` \
|
|
138
|
-
`ls -d /usr/contrib/lib 2>/dev/null` \
|
|
139
|
-
`ls -d /usr/lib 2>/dev/null` \
|
|
140
|
-
`ls -d /usr/lib64 2>/dev/null` \
|
|
141
|
-
`ls -d /usr/lib/tcl8.6 2>/dev/null` \
|
|
142
|
-
`ls -d /usr/lib/tcl8.5 2>/dev/null` \
|
|
143
|
-
; do
|
|
144
|
-
if test -f "$i/tclConfig.sh" ; then
|
|
145
|
-
ac_cv_c_tclconfig="`(cd $i; pwd)`"
|
|
146
|
-
break
|
|
147
|
-
fi
|
|
148
|
-
done
|
|
149
|
-
fi
|
|
150
|
-
|
|
151
|
-
# check in a few other private locations
|
|
152
|
-
if test x"${ac_cv_c_tclconfig}" = x ; then
|
|
153
|
-
for i in \
|
|
154
|
-
${srcdir}/../tcl \
|
|
155
|
-
`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
156
|
-
`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \
|
|
157
|
-
`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
|
|
158
|
-
if test "${TEA_PLATFORM}" = "windows" \
|
|
159
|
-
-a -f "$i/win/tclConfig.sh" ; then
|
|
160
|
-
ac_cv_c_tclconfig="`(cd $i/win; pwd)`"
|
|
161
|
-
break
|
|
162
|
-
fi
|
|
163
|
-
if test -f "$i/unix/tclConfig.sh" ; then
|
|
164
|
-
ac_cv_c_tclconfig="`(cd $i/unix; pwd)`"
|
|
165
|
-
break
|
|
166
|
-
fi
|
|
167
|
-
done
|
|
168
|
-
fi
|
|
169
|
-
])
|
|
170
|
-
|
|
171
|
-
if test x"${ac_cv_c_tclconfig}" = x ; then
|
|
172
|
-
TCL_BIN_DIR="# no Tcl configs found"
|
|
173
|
-
AC_MSG_ERROR([Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh])
|
|
174
|
-
else
|
|
175
|
-
no_tcl=
|
|
176
|
-
TCL_BIN_DIR="${ac_cv_c_tclconfig}"
|
|
177
|
-
AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh])
|
|
178
|
-
fi
|
|
179
|
-
fi
|
|
180
|
-
])
|
|
181
|
-
|
|
182
|
-
#------------------------------------------------------------------------
|
|
183
|
-
# TEA_PATH_TKCONFIG --
|
|
184
|
-
#
|
|
185
|
-
# Locate the tkConfig.sh file
|
|
186
|
-
#
|
|
187
|
-
# Arguments:
|
|
188
|
-
# none
|
|
189
|
-
#
|
|
190
|
-
# Results:
|
|
191
|
-
#
|
|
192
|
-
# Adds the following arguments to configure:
|
|
193
|
-
# --with-tk=...
|
|
194
|
-
#
|
|
195
|
-
# Defines the following vars:
|
|
196
|
-
# TK_BIN_DIR Full path to the directory containing
|
|
197
|
-
# the tkConfig.sh file
|
|
198
|
-
#------------------------------------------------------------------------
|
|
199
|
-
|
|
200
|
-
AC_DEFUN([TEA_PATH_TKCONFIG], [
|
|
201
|
-
#
|
|
202
|
-
# Ok, lets find the tk configuration
|
|
203
|
-
# First, look for one uninstalled.
|
|
204
|
-
# the alternative search directory is invoked by --with-tk
|
|
205
|
-
#
|
|
206
|
-
|
|
207
|
-
if test x"${no_tk}" = x ; then
|
|
208
|
-
# we reset no_tk in case something fails here
|
|
209
|
-
no_tk=true
|
|
210
|
-
AC_ARG_WITH(tk,
|
|
211
|
-
AC_HELP_STRING([--with-tk],
|
|
212
|
-
[directory containing tk configuration (tkConfig.sh)]),
|
|
213
|
-
with_tkconfig="${withval}")
|
|
214
|
-
AC_MSG_CHECKING([for Tk configuration])
|
|
215
|
-
AC_CACHE_VAL(ac_cv_c_tkconfig,[
|
|
216
|
-
|
|
217
|
-
# First check to see if --with-tkconfig was specified.
|
|
218
|
-
if test x"${with_tkconfig}" != x ; then
|
|
219
|
-
case "${with_tkconfig}" in
|
|
220
|
-
*/tkConfig.sh )
|
|
221
|
-
if test -f "${with_tkconfig}"; then
|
|
222
|
-
AC_MSG_WARN([--with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself])
|
|
223
|
-
with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`"
|
|
224
|
-
fi ;;
|
|
225
|
-
esac
|
|
226
|
-
if test -f "${with_tkconfig}/tkConfig.sh" ; then
|
|
227
|
-
ac_cv_c_tkconfig="`(cd "${with_tkconfig}"; pwd)`"
|
|
228
|
-
else
|
|
229
|
-
AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh])
|
|
230
|
-
fi
|
|
231
|
-
fi
|
|
232
|
-
|
|
233
|
-
# then check for a private Tk library
|
|
234
|
-
if test x"${ac_cv_c_tkconfig}" = x ; then
|
|
235
|
-
for i in \
|
|
236
|
-
../tk \
|
|
237
|
-
`ls -dr ../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
238
|
-
`ls -dr ../tk[[8-9]].[[0-9]] 2>/dev/null` \
|
|
239
|
-
`ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \
|
|
240
|
-
../../tk \
|
|
241
|
-
`ls -dr ../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
242
|
-
`ls -dr ../../tk[[8-9]].[[0-9]] 2>/dev/null` \
|
|
243
|
-
`ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \
|
|
244
|
-
../../../tk \
|
|
245
|
-
`ls -dr ../../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
246
|
-
`ls -dr ../../../tk[[8-9]].[[0-9]] 2>/dev/null` \
|
|
247
|
-
`ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
|
|
248
|
-
if test "${TEA_PLATFORM}" = "windows" \
|
|
249
|
-
-a -f "$i/win/tkConfig.sh" ; then
|
|
250
|
-
ac_cv_c_tkconfig="`(cd $i/win; pwd)`"
|
|
251
|
-
break
|
|
252
|
-
fi
|
|
253
|
-
if test -f "$i/unix/tkConfig.sh" ; then
|
|
254
|
-
ac_cv_c_tkconfig="`(cd $i/unix; pwd)`"
|
|
255
|
-
break
|
|
256
|
-
fi
|
|
257
|
-
done
|
|
258
|
-
fi
|
|
259
|
-
|
|
260
|
-
# on Darwin, check in Framework installation locations
|
|
261
|
-
if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then
|
|
262
|
-
for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
|
|
263
|
-
`ls -d /Library/Frameworks 2>/dev/null` \
|
|
264
|
-
`ls -d /Network/Library/Frameworks 2>/dev/null` \
|
|
265
|
-
`ls -d /System/Library/Frameworks 2>/dev/null` \
|
|
266
|
-
; do
|
|
267
|
-
if test -f "$i/Tk.framework/tkConfig.sh" ; then
|
|
268
|
-
ac_cv_c_tkconfig="`(cd $i/Tk.framework; pwd)`"
|
|
269
|
-
break
|
|
270
|
-
fi
|
|
271
|
-
done
|
|
272
|
-
fi
|
|
273
|
-
|
|
274
|
-
# check in a few common install locations
|
|
275
|
-
if test x"${ac_cv_c_tkconfig}" = x ; then
|
|
276
|
-
for i in `ls -d ${libdir} 2>/dev/null` \
|
|
277
|
-
`ls -d ${exec_prefix}/lib 2>/dev/null` \
|
|
278
|
-
`ls -d ${prefix}/lib 2>/dev/null` \
|
|
279
|
-
`ls -d /usr/local/lib 2>/dev/null` \
|
|
280
|
-
`ls -d /usr/contrib/lib 2>/dev/null` \
|
|
281
|
-
`ls -d /usr/lib 2>/dev/null` \
|
|
282
|
-
`ls -d /usr/lib64 2>/dev/null` \
|
|
283
|
-
; do
|
|
284
|
-
if test -f "$i/tkConfig.sh" ; then
|
|
285
|
-
ac_cv_c_tkconfig="`(cd $i; pwd)`"
|
|
286
|
-
break
|
|
287
|
-
fi
|
|
288
|
-
done
|
|
289
|
-
fi
|
|
290
|
-
|
|
291
|
-
# TEA specific: on Windows, check in common installation locations
|
|
292
|
-
if test "${TEA_PLATFORM}" = "windows" \
|
|
293
|
-
-a x"${ac_cv_c_tkconfig}" = x ; then
|
|
294
|
-
for i in `ls -d C:/Tcl/lib 2>/dev/null` \
|
|
295
|
-
`ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
|
|
296
|
-
; do
|
|
297
|
-
if test -f "$i/tkConfig.sh" ; then
|
|
298
|
-
ac_cv_c_tkconfig="`(cd $i; pwd)`"
|
|
299
|
-
break
|
|
300
|
-
fi
|
|
301
|
-
done
|
|
302
|
-
fi
|
|
303
|
-
|
|
304
|
-
# check in a few other private locations
|
|
305
|
-
if test x"${ac_cv_c_tkconfig}" = x ; then
|
|
306
|
-
for i in \
|
|
307
|
-
${srcdir}/../tk \
|
|
308
|
-
`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
309
|
-
`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \
|
|
310
|
-
`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
|
|
311
|
-
if test "${TEA_PLATFORM}" = "windows" \
|
|
312
|
-
-a -f "$i/win/tkConfig.sh" ; then
|
|
313
|
-
ac_cv_c_tkconfig="`(cd $i/win; pwd)`"
|
|
314
|
-
break
|
|
315
|
-
fi
|
|
316
|
-
if test -f "$i/unix/tkConfig.sh" ; then
|
|
317
|
-
ac_cv_c_tkconfig="`(cd $i/unix; pwd)`"
|
|
318
|
-
break
|
|
319
|
-
fi
|
|
320
|
-
done
|
|
321
|
-
fi
|
|
322
|
-
])
|
|
323
|
-
|
|
324
|
-
if test x"${ac_cv_c_tkconfig}" = x ; then
|
|
325
|
-
TK_BIN_DIR="# no Tk configs found"
|
|
326
|
-
AC_MSG_ERROR([Can't find Tk configuration definitions. Use --with-tk to specify a directory containing tkConfig.sh])
|
|
327
|
-
else
|
|
328
|
-
no_tk=
|
|
329
|
-
TK_BIN_DIR="${ac_cv_c_tkconfig}"
|
|
330
|
-
AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh])
|
|
331
|
-
fi
|
|
332
|
-
fi
|
|
333
|
-
])
|
|
334
|
-
|
|
335
|
-
#------------------------------------------------------------------------
|
|
336
|
-
# TEA_LOAD_TCLCONFIG --
|
|
337
|
-
#
|
|
338
|
-
# Load the tclConfig.sh file
|
|
339
|
-
#
|
|
340
|
-
# Arguments:
|
|
341
|
-
#
|
|
342
|
-
# Requires the following vars to be set:
|
|
343
|
-
# TCL_BIN_DIR
|
|
344
|
-
#
|
|
345
|
-
# Results:
|
|
346
|
-
#
|
|
347
|
-
# Substitutes the following vars:
|
|
348
|
-
# TCL_BIN_DIR
|
|
349
|
-
# TCL_SRC_DIR
|
|
350
|
-
# TCL_LIB_FILE
|
|
351
|
-
#------------------------------------------------------------------------
|
|
352
|
-
|
|
353
|
-
AC_DEFUN([TEA_LOAD_TCLCONFIG], [
|
|
354
|
-
AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh])
|
|
355
|
-
|
|
356
|
-
if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
|
|
357
|
-
AC_MSG_RESULT([loading])
|
|
358
|
-
. "${TCL_BIN_DIR}/tclConfig.sh"
|
|
359
|
-
else
|
|
360
|
-
AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh])
|
|
361
|
-
fi
|
|
362
|
-
|
|
363
|
-
# eval is required to do the TCL_DBGX substitution
|
|
364
|
-
eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
|
|
365
|
-
eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
|
|
366
|
-
|
|
367
|
-
# If the TCL_BIN_DIR is the build directory (not the install directory),
|
|
368
|
-
# then set the common variable name to the value of the build variables.
|
|
369
|
-
# For example, the variable TCL_LIB_SPEC will be set to the value
|
|
370
|
-
# of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
|
|
371
|
-
# instead of TCL_BUILD_LIB_SPEC since it will work with both an
|
|
372
|
-
# installed and uninstalled version of Tcl.
|
|
373
|
-
if test -f "${TCL_BIN_DIR}/Makefile" ; then
|
|
374
|
-
TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}"
|
|
375
|
-
TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}"
|
|
376
|
-
TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}"
|
|
377
|
-
elif test "`uname -s`" = "Darwin"; then
|
|
378
|
-
# If Tcl was built as a framework, attempt to use the libraries
|
|
379
|
-
# from the framework at the given location so that linking works
|
|
380
|
-
# against Tcl.framework installed in an arbitrary location.
|
|
381
|
-
case ${TCL_DEFS} in
|
|
382
|
-
*TCL_FRAMEWORK*)
|
|
383
|
-
if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then
|
|
384
|
-
for i in "`cd "${TCL_BIN_DIR}"; pwd`" \
|
|
385
|
-
"`cd "${TCL_BIN_DIR}"/../..; pwd`"; do
|
|
386
|
-
if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then
|
|
387
|
-
TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}"
|
|
388
|
-
break
|
|
389
|
-
fi
|
|
390
|
-
done
|
|
391
|
-
fi
|
|
392
|
-
if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then
|
|
393
|
-
TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}"
|
|
394
|
-
TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"
|
|
395
|
-
fi
|
|
396
|
-
;;
|
|
397
|
-
esac
|
|
398
|
-
fi
|
|
399
|
-
|
|
400
|
-
# eval is required to do the TCL_DBGX substitution
|
|
401
|
-
eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
|
|
402
|
-
eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
|
|
403
|
-
eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
|
|
404
|
-
eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
|
|
405
|
-
|
|
406
|
-
AC_SUBST(TCL_VERSION)
|
|
407
|
-
AC_SUBST(TCL_PATCH_LEVEL)
|
|
408
|
-
AC_SUBST(TCL_BIN_DIR)
|
|
409
|
-
AC_SUBST(TCL_SRC_DIR)
|
|
410
|
-
|
|
411
|
-
AC_SUBST(TCL_LIB_FILE)
|
|
412
|
-
AC_SUBST(TCL_LIB_FLAG)
|
|
413
|
-
AC_SUBST(TCL_LIB_SPEC)
|
|
414
|
-
|
|
415
|
-
AC_SUBST(TCL_STUB_LIB_FILE)
|
|
416
|
-
AC_SUBST(TCL_STUB_LIB_FLAG)
|
|
417
|
-
AC_SUBST(TCL_STUB_LIB_SPEC)
|
|
418
|
-
|
|
419
|
-
AC_MSG_CHECKING([platform])
|
|
420
|
-
hold_cc=$CC; CC="$TCL_CC"
|
|
421
|
-
AC_TRY_COMPILE(,[
|
|
422
|
-
#ifdef _WIN32
|
|
423
|
-
#error win32
|
|
424
|
-
#endif
|
|
425
|
-
], TEA_PLATFORM="unix",
|
|
426
|
-
TEA_PLATFORM="windows"
|
|
427
|
-
)
|
|
428
|
-
CC=$hold_cc
|
|
429
|
-
AC_MSG_RESULT($TEA_PLATFORM)
|
|
430
|
-
|
|
431
|
-
# The BUILD_$pkg is to define the correct extern storage class
|
|
432
|
-
# handling when making this package
|
|
433
|
-
AC_DEFINE_UNQUOTED(BUILD_${PACKAGE_NAME}, [],
|
|
434
|
-
[Building extension source?])
|
|
435
|
-
# Do this here as we have fully defined TEA_PLATFORM now
|
|
436
|
-
if test "${TEA_PLATFORM}" = "windows" ; then
|
|
437
|
-
EXEEXT=".exe"
|
|
438
|
-
CLEANFILES="$CLEANFILES *.lib *.dll *.pdb *.exp"
|
|
439
|
-
fi
|
|
440
|
-
|
|
441
|
-
# TEA specific:
|
|
442
|
-
AC_SUBST(CLEANFILES)
|
|
443
|
-
AC_SUBST(TCL_LIBS)
|
|
444
|
-
AC_SUBST(TCL_DEFS)
|
|
445
|
-
AC_SUBST(TCL_EXTRA_CFLAGS)
|
|
446
|
-
AC_SUBST(TCL_LD_FLAGS)
|
|
447
|
-
AC_SUBST(TCL_SHLIB_LD_LIBS)
|
|
448
|
-
])
|
|
449
|
-
|
|
450
|
-
#------------------------------------------------------------------------
|
|
451
|
-
# TEA_LOAD_TKCONFIG --
|
|
452
|
-
#
|
|
453
|
-
# Load the tkConfig.sh file
|
|
454
|
-
#
|
|
455
|
-
# Arguments:
|
|
456
|
-
#
|
|
457
|
-
# Requires the following vars to be set:
|
|
458
|
-
# TK_BIN_DIR
|
|
459
|
-
#
|
|
460
|
-
# Results:
|
|
461
|
-
#
|
|
462
|
-
# Sets the following vars that should be in tkConfig.sh:
|
|
463
|
-
# TK_BIN_DIR
|
|
464
|
-
#------------------------------------------------------------------------
|
|
465
|
-
|
|
466
|
-
AC_DEFUN([TEA_LOAD_TKCONFIG], [
|
|
467
|
-
AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh])
|
|
468
|
-
|
|
469
|
-
if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then
|
|
470
|
-
AC_MSG_RESULT([loading])
|
|
471
|
-
. "${TK_BIN_DIR}/tkConfig.sh"
|
|
472
|
-
else
|
|
473
|
-
AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh])
|
|
474
|
-
fi
|
|
475
|
-
|
|
476
|
-
# eval is required to do the TK_DBGX substitution
|
|
477
|
-
eval "TK_LIB_FILE=\"${TK_LIB_FILE}\""
|
|
478
|
-
eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\""
|
|
479
|
-
|
|
480
|
-
# If the TK_BIN_DIR is the build directory (not the install directory),
|
|
481
|
-
# then set the common variable name to the value of the build variables.
|
|
482
|
-
# For example, the variable TK_LIB_SPEC will be set to the value
|
|
483
|
-
# of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC
|
|
484
|
-
# instead of TK_BUILD_LIB_SPEC since it will work with both an
|
|
485
|
-
# installed and uninstalled version of Tcl.
|
|
486
|
-
if test -f "${TK_BIN_DIR}/Makefile" ; then
|
|
487
|
-
TK_LIB_SPEC="${TK_BUILD_LIB_SPEC}"
|
|
488
|
-
TK_STUB_LIB_SPEC="${TK_BUILD_STUB_LIB_SPEC}"
|
|
489
|
-
TK_STUB_LIB_PATH="${TK_BUILD_STUB_LIB_PATH}"
|
|
490
|
-
elif test "`uname -s`" = "Darwin"; then
|
|
491
|
-
# If Tk was built as a framework, attempt to use the libraries
|
|
492
|
-
# from the framework at the given location so that linking works
|
|
493
|
-
# against Tk.framework installed in an arbitrary location.
|
|
494
|
-
case ${TK_DEFS} in
|
|
495
|
-
*TK_FRAMEWORK*)
|
|
496
|
-
if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then
|
|
497
|
-
for i in "`cd "${TK_BIN_DIR}"; pwd`" \
|
|
498
|
-
"`cd "${TK_BIN_DIR}"/../..; pwd`"; do
|
|
499
|
-
if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then
|
|
500
|
-
TK_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TK_LIB_FILE}"
|
|
501
|
-
break
|
|
502
|
-
fi
|
|
503
|
-
done
|
|
504
|
-
fi
|
|
505
|
-
if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then
|
|
506
|
-
TK_STUB_LIB_SPEC="-L` echo "${TK_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TK_STUB_LIB_FLAG}"
|
|
507
|
-
TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"
|
|
508
|
-
fi
|
|
509
|
-
;;
|
|
510
|
-
esac
|
|
511
|
-
fi
|
|
512
|
-
|
|
513
|
-
# eval is required to do the TK_DBGX substitution
|
|
514
|
-
eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\""
|
|
515
|
-
eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\""
|
|
516
|
-
eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\""
|
|
517
|
-
eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\""
|
|
518
|
-
|
|
519
|
-
# TEA specific: Ensure windowingsystem is defined
|
|
520
|
-
if test "${TEA_PLATFORM}" = "unix" ; then
|
|
521
|
-
case ${TK_DEFS} in
|
|
522
|
-
*MAC_OSX_TK*)
|
|
523
|
-
AC_DEFINE(MAC_OSX_TK, 1, [Are we building against Mac OS X TkAqua?])
|
|
524
|
-
TEA_WINDOWINGSYSTEM="aqua"
|
|
525
|
-
;;
|
|
526
|
-
*)
|
|
527
|
-
TEA_WINDOWINGSYSTEM="x11"
|
|
528
|
-
;;
|
|
529
|
-
esac
|
|
530
|
-
elif test "${TEA_PLATFORM}" = "windows" ; then
|
|
531
|
-
TEA_WINDOWINGSYSTEM="win32"
|
|
532
|
-
fi
|
|
533
|
-
|
|
534
|
-
AC_SUBST(TK_VERSION)
|
|
535
|
-
AC_SUBST(TK_BIN_DIR)
|
|
536
|
-
AC_SUBST(TK_SRC_DIR)
|
|
537
|
-
|
|
538
|
-
AC_SUBST(TK_LIB_FILE)
|
|
539
|
-
AC_SUBST(TK_LIB_FLAG)
|
|
540
|
-
AC_SUBST(TK_LIB_SPEC)
|
|
541
|
-
|
|
542
|
-
AC_SUBST(TK_STUB_LIB_FILE)
|
|
543
|
-
AC_SUBST(TK_STUB_LIB_FLAG)
|
|
544
|
-
AC_SUBST(TK_STUB_LIB_SPEC)
|
|
545
|
-
|
|
546
|
-
# TEA specific:
|
|
547
|
-
AC_SUBST(TK_LIBS)
|
|
548
|
-
AC_SUBST(TK_XINCLUDES)
|
|
549
|
-
])
|
|
550
|
-
|
|
551
|
-
#------------------------------------------------------------------------
|
|
552
|
-
# TEA_PROG_TCLSH
|
|
553
|
-
# Determine the fully qualified path name of the tclsh executable
|
|
554
|
-
# in the Tcl build directory or the tclsh installed in a bin
|
|
555
|
-
# directory. This macro will correctly determine the name
|
|
556
|
-
# of the tclsh executable even if tclsh has not yet been
|
|
557
|
-
# built in the build directory. The tclsh found is always
|
|
558
|
-
# associated with a tclConfig.sh file. This tclsh should be used
|
|
559
|
-
# only for running extension test cases. It should never be
|
|
560
|
-
# or generation of files (like pkgIndex.tcl) at build time.
|
|
561
|
-
#
|
|
562
|
-
# Arguments:
|
|
563
|
-
# none
|
|
564
|
-
#
|
|
565
|
-
# Results:
|
|
566
|
-
# Substitutes the following vars:
|
|
567
|
-
# TCLSH_PROG
|
|
568
|
-
#------------------------------------------------------------------------
|
|
569
|
-
|
|
570
|
-
AC_DEFUN([TEA_PROG_TCLSH], [
|
|
571
|
-
AC_MSG_CHECKING([for tclsh])
|
|
572
|
-
if test -f "${TCL_BIN_DIR}/Makefile" ; then
|
|
573
|
-
# tclConfig.sh is in Tcl build directory
|
|
574
|
-
if test "${TEA_PLATFORM}" = "windows"; then
|
|
575
|
-
TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
|
|
576
|
-
else
|
|
577
|
-
TCLSH_PROG="${TCL_BIN_DIR}/tclsh"
|
|
578
|
-
fi
|
|
579
|
-
else
|
|
580
|
-
# tclConfig.sh is in install location
|
|
581
|
-
if test "${TEA_PLATFORM}" = "windows"; then
|
|
582
|
-
TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
|
|
583
|
-
else
|
|
584
|
-
TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
|
|
585
|
-
fi
|
|
586
|
-
list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \
|
|
587
|
-
`ls -d ${TCL_BIN_DIR}/.. 2>/dev/null` \
|
|
588
|
-
`ls -d ${TCL_PREFIX}/bin 2>/dev/null`"
|
|
589
|
-
for i in $list ; do
|
|
590
|
-
if test -f "$i/${TCLSH_PROG}" ; then
|
|
591
|
-
REAL_TCL_BIN_DIR="`cd "$i"; pwd`/"
|
|
592
|
-
break
|
|
593
|
-
fi
|
|
594
|
-
done
|
|
595
|
-
TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}"
|
|
596
|
-
fi
|
|
597
|
-
AC_MSG_RESULT([${TCLSH_PROG}])
|
|
598
|
-
AC_SUBST(TCLSH_PROG)
|
|
599
|
-
])
|
|
600
|
-
|
|
601
|
-
#------------------------------------------------------------------------
|
|
602
|
-
# TEA_PROG_WISH
|
|
603
|
-
# Determine the fully qualified path name of the wish executable
|
|
604
|
-
# in the Tk build directory or the wish installed in a bin
|
|
605
|
-
# directory. This macro will correctly determine the name
|
|
606
|
-
# of the wish executable even if wish has not yet been
|
|
607
|
-
# built in the build directory. The wish found is always
|
|
608
|
-
# associated with a tkConfig.sh file. This wish should be used
|
|
609
|
-
# only for running extension test cases. It should never be
|
|
610
|
-
# or generation of files (like pkgIndex.tcl) at build time.
|
|
611
|
-
#
|
|
612
|
-
# Arguments:
|
|
613
|
-
# none
|
|
614
|
-
#
|
|
615
|
-
# Results:
|
|
616
|
-
# Substitutes the following vars:
|
|
617
|
-
# WISH_PROG
|
|
618
|
-
#------------------------------------------------------------------------
|
|
619
|
-
|
|
620
|
-
AC_DEFUN([TEA_PROG_WISH], [
|
|
621
|
-
AC_MSG_CHECKING([for wish])
|
|
622
|
-
if test -f "${TK_BIN_DIR}/Makefile" ; then
|
|
623
|
-
# tkConfig.sh is in Tk build directory
|
|
624
|
-
if test "${TEA_PLATFORM}" = "windows"; then
|
|
625
|
-
WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}"
|
|
626
|
-
else
|
|
627
|
-
WISH_PROG="${TK_BIN_DIR}/wish"
|
|
628
|
-
fi
|
|
629
|
-
else
|
|
630
|
-
# tkConfig.sh is in install location
|
|
631
|
-
if test "${TEA_PLATFORM}" = "windows"; then
|
|
632
|
-
WISH_PROG="wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}"
|
|
633
|
-
else
|
|
634
|
-
WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_DBGX}"
|
|
635
|
-
fi
|
|
636
|
-
list="`ls -d ${TK_BIN_DIR}/../bin 2>/dev/null` \
|
|
637
|
-
`ls -d ${TK_BIN_DIR}/.. 2>/dev/null` \
|
|
638
|
-
`ls -d ${TK_PREFIX}/bin 2>/dev/null`"
|
|
639
|
-
for i in $list ; do
|
|
640
|
-
if test -f "$i/${WISH_PROG}" ; then
|
|
641
|
-
REAL_TK_BIN_DIR="`cd "$i"; pwd`/"
|
|
642
|
-
break
|
|
643
|
-
fi
|
|
644
|
-
done
|
|
645
|
-
WISH_PROG="${REAL_TK_BIN_DIR}${WISH_PROG}"
|
|
646
|
-
fi
|
|
647
|
-
AC_MSG_RESULT([${WISH_PROG}])
|
|
648
|
-
AC_SUBST(WISH_PROG)
|
|
649
|
-
])
|
|
650
|
-
|
|
651
|
-
#------------------------------------------------------------------------
|
|
652
|
-
# TEA_ENABLE_SHARED --
|
|
653
|
-
#
|
|
654
|
-
# Allows the building of shared libraries
|
|
655
|
-
#
|
|
656
|
-
# Arguments:
|
|
657
|
-
# none
|
|
658
|
-
#
|
|
659
|
-
# Results:
|
|
660
|
-
#
|
|
661
|
-
# Adds the following arguments to configure:
|
|
662
|
-
# --enable-shared=yes|no
|
|
663
|
-
#
|
|
664
|
-
# Defines the following vars:
|
|
665
|
-
# STATIC_BUILD Used for building import/export libraries
|
|
666
|
-
# on Windows.
|
|
667
|
-
#
|
|
668
|
-
# Sets the following vars:
|
|
669
|
-
# SHARED_BUILD Value of 1 or 0
|
|
670
|
-
#------------------------------------------------------------------------
|
|
671
|
-
|
|
672
|
-
AC_DEFUN([TEA_ENABLE_SHARED], [
|
|
673
|
-
AC_MSG_CHECKING([how to build libraries])
|
|
674
|
-
AC_ARG_ENABLE(shared,
|
|
675
|
-
AC_HELP_STRING([--enable-shared],
|
|
676
|
-
[build and link with shared libraries (default: on)]),
|
|
677
|
-
[tcl_ok=$enableval], [tcl_ok=yes])
|
|
678
|
-
|
|
679
|
-
if test "${enable_shared+set}" = set; then
|
|
680
|
-
enableval="$enable_shared"
|
|
681
|
-
tcl_ok=$enableval
|
|
682
|
-
else
|
|
683
|
-
tcl_ok=yes
|
|
684
|
-
fi
|
|
685
|
-
|
|
686
|
-
if test "$tcl_ok" = "yes" ; then
|
|
687
|
-
AC_MSG_RESULT([shared])
|
|
688
|
-
SHARED_BUILD=1
|
|
689
|
-
else
|
|
690
|
-
AC_MSG_RESULT([static])
|
|
691
|
-
SHARED_BUILD=0
|
|
692
|
-
AC_DEFINE(STATIC_BUILD, 1, [Is this a static build?])
|
|
693
|
-
fi
|
|
694
|
-
AC_SUBST(SHARED_BUILD)
|
|
695
|
-
])
|
|
696
|
-
|
|
697
|
-
#------------------------------------------------------------------------
|
|
698
|
-
# TEA_ENABLE_THREADS --
|
|
699
|
-
#
|
|
700
|
-
# Specify if thread support should be enabled. If "yes" is specified
|
|
701
|
-
# as an arg (optional), threads are enabled by default, "no" means
|
|
702
|
-
# threads are disabled. "yes" is the default.
|
|
703
|
-
#
|
|
704
|
-
# TCL_THREADS is checked so that if you are compiling an extension
|
|
705
|
-
# against a threaded core, your extension must be compiled threaded
|
|
706
|
-
# as well.
|
|
707
|
-
#
|
|
708
|
-
# Note that it is legal to have a thread enabled extension run in a
|
|
709
|
-
# threaded or non-threaded Tcl core, but a non-threaded extension may
|
|
710
|
-
# only run in a non-threaded Tcl core.
|
|
711
|
-
#
|
|
712
|
-
# Arguments:
|
|
713
|
-
# none
|
|
714
|
-
#
|
|
715
|
-
# Results:
|
|
716
|
-
#
|
|
717
|
-
# Adds the following arguments to configure:
|
|
718
|
-
# --enable-threads
|
|
719
|
-
#
|
|
720
|
-
# Sets the following vars:
|
|
721
|
-
# THREADS_LIBS Thread library(s)
|
|
722
|
-
#
|
|
723
|
-
# Defines the following vars:
|
|
724
|
-
# TCL_THREADS
|
|
725
|
-
# _REENTRANT
|
|
726
|
-
# _THREAD_SAFE
|
|
727
|
-
#------------------------------------------------------------------------
|
|
728
|
-
|
|
729
|
-
AC_DEFUN([TEA_ENABLE_THREADS], [
|
|
730
|
-
AC_ARG_ENABLE(threads,
|
|
731
|
-
AC_HELP_STRING([--enable-threads],
|
|
732
|
-
[build with threads]),
|
|
733
|
-
[tcl_ok=$enableval], [tcl_ok=yes])
|
|
734
|
-
|
|
735
|
-
if test "${enable_threads+set}" = set; then
|
|
736
|
-
enableval="$enable_threads"
|
|
737
|
-
tcl_ok=$enableval
|
|
738
|
-
else
|
|
739
|
-
tcl_ok=yes
|
|
740
|
-
fi
|
|
741
|
-
|
|
742
|
-
if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
|
|
743
|
-
TCL_THREADS=1
|
|
744
|
-
|
|
745
|
-
if test "${TEA_PLATFORM}" != "windows" ; then
|
|
746
|
-
# We are always OK on Windows, so check what this platform wants:
|
|
747
|
-
|
|
748
|
-
# USE_THREAD_ALLOC tells us to try the special thread-based
|
|
749
|
-
# allocator that significantly reduces lock contention
|
|
750
|
-
AC_DEFINE(USE_THREAD_ALLOC, 1,
|
|
751
|
-
[Do we want to use the threaded memory allocator?])
|
|
752
|
-
AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?])
|
|
753
|
-
if test "`uname -s`" = "SunOS" ; then
|
|
754
|
-
AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1,
|
|
755
|
-
[Do we really want to follow the standard? Yes we do!])
|
|
756
|
-
fi
|
|
757
|
-
AC_DEFINE(_THREAD_SAFE, 1, [Do we want the thread-safe OS API?])
|
|
758
|
-
AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no)
|
|
759
|
-
if test "$tcl_ok" = "no"; then
|
|
760
|
-
# Check a little harder for __pthread_mutex_init in the same
|
|
761
|
-
# library, as some systems hide it there until pthread.h is
|
|
762
|
-
# defined. We could alternatively do an AC_TRY_COMPILE with
|
|
763
|
-
# pthread.h, but that will work with libpthread really doesn't
|
|
764
|
-
# exist, like AIX 4.2. [Bug: 4359]
|
|
765
|
-
AC_CHECK_LIB(pthread, __pthread_mutex_init,
|
|
766
|
-
tcl_ok=yes, tcl_ok=no)
|
|
767
|
-
fi
|
|
768
|
-
|
|
769
|
-
if test "$tcl_ok" = "yes"; then
|
|
770
|
-
# The space is needed
|
|
771
|
-
THREADS_LIBS=" -lpthread"
|
|
772
|
-
else
|
|
773
|
-
AC_CHECK_LIB(pthreads, pthread_mutex_init,
|
|
774
|
-
tcl_ok=yes, tcl_ok=no)
|
|
775
|
-
if test "$tcl_ok" = "yes"; then
|
|
776
|
-
# The space is needed
|
|
777
|
-
THREADS_LIBS=" -lpthreads"
|
|
778
|
-
else
|
|
779
|
-
AC_CHECK_LIB(c, pthread_mutex_init,
|
|
780
|
-
tcl_ok=yes, tcl_ok=no)
|
|
781
|
-
if test "$tcl_ok" = "no"; then
|
|
782
|
-
AC_CHECK_LIB(c_r, pthread_mutex_init,
|
|
783
|
-
tcl_ok=yes, tcl_ok=no)
|
|
784
|
-
if test "$tcl_ok" = "yes"; then
|
|
785
|
-
# The space is needed
|
|
786
|
-
THREADS_LIBS=" -pthread"
|
|
787
|
-
else
|
|
788
|
-
TCL_THREADS=0
|
|
789
|
-
AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled])
|
|
790
|
-
fi
|
|
791
|
-
fi
|
|
792
|
-
fi
|
|
793
|
-
fi
|
|
794
|
-
fi
|
|
795
|
-
else
|
|
796
|
-
TCL_THREADS=0
|
|
797
|
-
fi
|
|
798
|
-
# Do checking message here to not mess up interleaved configure output
|
|
799
|
-
AC_MSG_CHECKING([for building with threads])
|
|
800
|
-
if test "${TCL_THREADS}" = 1; then
|
|
801
|
-
AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?])
|
|
802
|
-
AC_MSG_RESULT([yes (default)])
|
|
803
|
-
else
|
|
804
|
-
AC_MSG_RESULT([no])
|
|
805
|
-
fi
|
|
806
|
-
# TCL_THREADS sanity checking. See if our request for building with
|
|
807
|
-
# threads is the same as the way Tcl was built. If not, warn the user.
|
|
808
|
-
case ${TCL_DEFS} in
|
|
809
|
-
*THREADS=1*)
|
|
810
|
-
if test "${TCL_THREADS}" = "0"; then
|
|
811
|
-
AC_MSG_WARN([
|
|
812
|
-
Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
|
|
813
|
-
that IS thread-enabled. It is recommended to use --enable-threads.])
|
|
814
|
-
fi
|
|
815
|
-
;;
|
|
816
|
-
*)
|
|
817
|
-
if test "${TCL_THREADS}" = "1"; then
|
|
818
|
-
AC_MSG_WARN([
|
|
819
|
-
--enable-threads requested, but building against a Tcl that is NOT
|
|
820
|
-
thread-enabled. This is an OK configuration that will also run in
|
|
821
|
-
a thread-enabled core.])
|
|
822
|
-
fi
|
|
823
|
-
;;
|
|
824
|
-
esac
|
|
825
|
-
AC_SUBST(TCL_THREADS)
|
|
826
|
-
])
|
|
827
|
-
|
|
828
|
-
#------------------------------------------------------------------------
|
|
829
|
-
# TEA_ENABLE_SYMBOLS --
|
|
830
|
-
#
|
|
831
|
-
# Specify if debugging symbols should be used.
|
|
832
|
-
# Memory (TCL_MEM_DEBUG) debugging can also be enabled.
|
|
833
|
-
#
|
|
834
|
-
# Arguments:
|
|
835
|
-
# none
|
|
836
|
-
#
|
|
837
|
-
# TEA varies from core Tcl in that C|LDFLAGS_DEFAULT receives
|
|
838
|
-
# the value of C|LDFLAGS_OPTIMIZE|DEBUG already substituted.
|
|
839
|
-
# Requires the following vars to be set in the Makefile:
|
|
840
|
-
# CFLAGS_DEFAULT
|
|
841
|
-
# LDFLAGS_DEFAULT
|
|
842
|
-
#
|
|
843
|
-
# Results:
|
|
844
|
-
#
|
|
845
|
-
# Adds the following arguments to configure:
|
|
846
|
-
# --enable-symbols
|
|
847
|
-
#
|
|
848
|
-
# Defines the following vars:
|
|
849
|
-
# CFLAGS_DEFAULT Sets to $(CFLAGS_DEBUG) if true
|
|
850
|
-
# Sets to "$(CFLAGS_OPTIMIZE) -DNDEBUG" if false
|
|
851
|
-
# LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true
|
|
852
|
-
# Sets to $(LDFLAGS_OPTIMIZE) if false
|
|
853
|
-
# DBGX Formerly used as debug library extension;
|
|
854
|
-
# always blank now.
|
|
855
|
-
#------------------------------------------------------------------------
|
|
856
|
-
|
|
857
|
-
AC_DEFUN([TEA_ENABLE_SYMBOLS], [
|
|
858
|
-
dnl TEA specific: Make sure we are initialized
|
|
859
|
-
AC_REQUIRE([TEA_CONFIG_CFLAGS])
|
|
860
|
-
AC_MSG_CHECKING([for build with symbols])
|
|
861
|
-
AC_ARG_ENABLE(symbols,
|
|
862
|
-
AC_HELP_STRING([--enable-symbols],
|
|
863
|
-
[build with debugging symbols (default: off)]),
|
|
864
|
-
[tcl_ok=$enableval], [tcl_ok=no])
|
|
865
|
-
DBGX=""
|
|
866
|
-
if test "$tcl_ok" = "no"; then
|
|
867
|
-
CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE} -DNDEBUG"
|
|
868
|
-
LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
|
|
869
|
-
AC_MSG_RESULT([no])
|
|
870
|
-
else
|
|
871
|
-
CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
|
|
872
|
-
LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
|
|
873
|
-
if test "$tcl_ok" = "yes"; then
|
|
874
|
-
AC_MSG_RESULT([yes (standard debugging)])
|
|
875
|
-
fi
|
|
876
|
-
fi
|
|
877
|
-
# TEA specific:
|
|
878
|
-
if test "${TEA_PLATFORM}" != "windows" ; then
|
|
879
|
-
LDFLAGS_DEFAULT="${LDFLAGS}"
|
|
880
|
-
fi
|
|
881
|
-
AC_SUBST(CFLAGS_DEFAULT)
|
|
882
|
-
AC_SUBST(LDFLAGS_DEFAULT)
|
|
883
|
-
AC_SUBST(TCL_DBGX)
|
|
884
|
-
|
|
885
|
-
if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then
|
|
886
|
-
AC_DEFINE(TCL_MEM_DEBUG, 1, [Is memory debugging enabled?])
|
|
887
|
-
fi
|
|
888
|
-
|
|
889
|
-
if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then
|
|
890
|
-
if test "$tcl_ok" = "all"; then
|
|
891
|
-
AC_MSG_RESULT([enabled symbols mem debugging])
|
|
892
|
-
else
|
|
893
|
-
AC_MSG_RESULT([enabled $tcl_ok debugging])
|
|
894
|
-
fi
|
|
895
|
-
fi
|
|
896
|
-
])
|
|
897
|
-
|
|
898
|
-
#------------------------------------------------------------------------
|
|
899
|
-
# TEA_ENABLE_LANGINFO --
|
|
900
|
-
#
|
|
901
|
-
# Allows use of modern nl_langinfo check for better l10n.
|
|
902
|
-
# This is only relevant for Unix.
|
|
903
|
-
#
|
|
904
|
-
# Arguments:
|
|
905
|
-
# none
|
|
906
|
-
#
|
|
907
|
-
# Results:
|
|
908
|
-
#
|
|
909
|
-
# Adds the following arguments to configure:
|
|
910
|
-
# --enable-langinfo=yes|no (default is yes)
|
|
911
|
-
#
|
|
912
|
-
# Defines the following vars:
|
|
913
|
-
# HAVE_LANGINFO Triggers use of nl_langinfo if defined.
|
|
914
|
-
#------------------------------------------------------------------------
|
|
915
|
-
|
|
916
|
-
AC_DEFUN([TEA_ENABLE_LANGINFO], [
|
|
917
|
-
AC_ARG_ENABLE(langinfo,
|
|
918
|
-
AC_HELP_STRING([--enable-langinfo],
|
|
919
|
-
[use nl_langinfo if possible to determine encoding at startup, otherwise use old heuristic (default: on)]),
|
|
920
|
-
[langinfo_ok=$enableval], [langinfo_ok=yes])
|
|
921
|
-
|
|
922
|
-
HAVE_LANGINFO=0
|
|
923
|
-
if test "$langinfo_ok" = "yes"; then
|
|
924
|
-
AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no])
|
|
925
|
-
fi
|
|
926
|
-
AC_MSG_CHECKING([whether to use nl_langinfo])
|
|
927
|
-
if test "$langinfo_ok" = "yes"; then
|
|
928
|
-
AC_CACHE_VAL(tcl_cv_langinfo_h, [
|
|
929
|
-
AC_TRY_COMPILE([#include <langinfo.h>], [nl_langinfo(CODESET);],
|
|
930
|
-
[tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])])
|
|
931
|
-
AC_MSG_RESULT([$tcl_cv_langinfo_h])
|
|
932
|
-
if test $tcl_cv_langinfo_h = yes; then
|
|
933
|
-
AC_DEFINE(HAVE_LANGINFO, 1, [Do we have nl_langinfo()?])
|
|
934
|
-
fi
|
|
935
|
-
else
|
|
936
|
-
AC_MSG_RESULT([$langinfo_ok])
|
|
937
|
-
fi
|
|
938
|
-
])
|
|
939
|
-
|
|
940
|
-
#--------------------------------------------------------------------
|
|
941
|
-
# TEA_CONFIG_SYSTEM
|
|
942
|
-
#
|
|
943
|
-
# Determine what the system is (some things cannot be easily checked
|
|
944
|
-
# on a feature-driven basis, alas). This can usually be done via the
|
|
945
|
-
# "uname" command.
|
|
946
|
-
#
|
|
947
|
-
# Arguments:
|
|
948
|
-
# none
|
|
949
|
-
#
|
|
950
|
-
# Results:
|
|
951
|
-
# Defines the following var:
|
|
952
|
-
#
|
|
953
|
-
# system - System/platform/version identification code.
|
|
954
|
-
#--------------------------------------------------------------------
|
|
955
|
-
|
|
956
|
-
AC_DEFUN([TEA_CONFIG_SYSTEM], [
|
|
957
|
-
AC_CACHE_CHECK([system version], tcl_cv_sys_version, [
|
|
958
|
-
# TEA specific:
|
|
959
|
-
if test "${TEA_PLATFORM}" = "windows" ; then
|
|
960
|
-
tcl_cv_sys_version=windows
|
|
961
|
-
else
|
|
962
|
-
tcl_cv_sys_version=`uname -s`-`uname -r`
|
|
963
|
-
if test "$?" -ne 0 ; then
|
|
964
|
-
AC_MSG_WARN([can't find uname command])
|
|
965
|
-
tcl_cv_sys_version=unknown
|
|
966
|
-
else
|
|
967
|
-
if test "`uname -s`" = "AIX" ; then
|
|
968
|
-
tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
|
|
969
|
-
fi
|
|
970
|
-
fi
|
|
971
|
-
fi
|
|
972
|
-
])
|
|
973
|
-
system=$tcl_cv_sys_version
|
|
974
|
-
])
|
|
975
|
-
|
|
976
|
-
#--------------------------------------------------------------------
|
|
977
|
-
# TEA_CONFIG_CFLAGS
|
|
978
|
-
#
|
|
979
|
-
# Try to determine the proper flags to pass to the compiler
|
|
980
|
-
# for building shared libraries and other such nonsense.
|
|
981
|
-
#
|
|
982
|
-
# Arguments:
|
|
983
|
-
# none
|
|
984
|
-
#
|
|
985
|
-
# Results:
|
|
986
|
-
#
|
|
987
|
-
# Defines and substitutes the following vars:
|
|
988
|
-
#
|
|
989
|
-
# DL_OBJS, DL_LIBS - removed for TEA, only needed by core.
|
|
990
|
-
# LDFLAGS - Flags to pass to the compiler when linking object
|
|
991
|
-
# files into an executable application binary such
|
|
992
|
-
# as tclsh.
|
|
993
|
-
# LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib",
|
|
994
|
-
# that tell the run-time dynamic linker where to look
|
|
995
|
-
# for shared libraries such as libtcl.so. Depends on
|
|
996
|
-
# the variable LIB_RUNTIME_DIR in the Makefile. Could
|
|
997
|
-
# be the same as CC_SEARCH_FLAGS if ${CC} is used to link.
|
|
998
|
-
# CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib",
|
|
999
|
-
# that tell the run-time dynamic linker where to look
|
|
1000
|
-
# for shared libraries such as libtcl.so. Depends on
|
|
1001
|
-
# the variable LIB_RUNTIME_DIR in the Makefile.
|
|
1002
|
-
# SHLIB_CFLAGS - Flags to pass to cc when compiling the components
|
|
1003
|
-
# of a shared library (may request position-independent
|
|
1004
|
-
# code, among other things).
|
|
1005
|
-
# SHLIB_LD - Base command to use for combining object files
|
|
1006
|
-
# into a shared library.
|
|
1007
|
-
# SHLIB_LD_LIBS - Dependent libraries for the linker to scan when
|
|
1008
|
-
# creating shared libraries. This symbol typically
|
|
1009
|
-
# goes at the end of the "ld" commands that build
|
|
1010
|
-
# shared libraries. The value of the symbol defaults to
|
|
1011
|
-
# "${LIBS}" if all of the dependent libraries should
|
|
1012
|
-
# be specified when creating a shared library. If
|
|
1013
|
-
# dependent libraries should not be specified (as on
|
|
1014
|
-
# SunOS 4.x, where they cause the link to fail, or in
|
|
1015
|
-
# general if Tcl and Tk aren't themselves shared
|
|
1016
|
-
# libraries), then this symbol has an empty string
|
|
1017
|
-
# as its value.
|
|
1018
|
-
# SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable
|
|
1019
|
-
# extensions. An empty string means we don't know how
|
|
1020
|
-
# to use shared libraries on this platform.
|
|
1021
|
-
# LIB_SUFFIX - Specifies everything that comes after the "libfoo"
|
|
1022
|
-
# in a static or shared library name, using the $PACKAGE_VERSION variable
|
|
1023
|
-
# to put the version in the right place. This is used
|
|
1024
|
-
# by platforms that need non-standard library names.
|
|
1025
|
-
# Examples: ${PACKAGE_VERSION}.so.1.1 on NetBSD, since it needs
|
|
1026
|
-
# to have a version after the .so, and ${PACKAGE_VERSION}.a
|
|
1027
|
-
# on AIX, since a shared library needs to have
|
|
1028
|
-
# a .a extension whereas shared objects for loadable
|
|
1029
|
-
# extensions have a .so extension. Defaults to
|
|
1030
|
-
# ${PACKAGE_VERSION}${SHLIB_SUFFIX}.
|
|
1031
|
-
# CFLAGS_DEBUG -
|
|
1032
|
-
# Flags used when running the compiler in debug mode
|
|
1033
|
-
# CFLAGS_OPTIMIZE -
|
|
1034
|
-
# Flags used when running the compiler in optimize mode
|
|
1035
|
-
# CFLAGS - Additional CFLAGS added as necessary (usually 64-bit)
|
|
1036
|
-
#--------------------------------------------------------------------
|
|
1037
|
-
|
|
1038
|
-
AC_DEFUN([TEA_CONFIG_CFLAGS], [
|
|
1039
|
-
dnl TEA specific: Make sure we are initialized
|
|
1040
|
-
AC_REQUIRE([TEA_INIT])
|
|
1041
|
-
|
|
1042
|
-
# Step 0.a: Enable 64 bit support?
|
|
1043
|
-
|
|
1044
|
-
AC_MSG_CHECKING([if 64bit support is requested])
|
|
1045
|
-
AC_ARG_ENABLE(64bit,
|
|
1046
|
-
AC_HELP_STRING([--enable-64bit],
|
|
1047
|
-
[enable 64bit support (default: off)]),
|
|
1048
|
-
[do64bit=$enableval], [do64bit=no])
|
|
1049
|
-
AC_MSG_RESULT([$do64bit])
|
|
1050
|
-
|
|
1051
|
-
# Step 0.b: Enable Solaris 64 bit VIS support?
|
|
1052
|
-
|
|
1053
|
-
AC_MSG_CHECKING([if 64bit Sparc VIS support is requested])
|
|
1054
|
-
AC_ARG_ENABLE(64bit-vis,
|
|
1055
|
-
AC_HELP_STRING([--enable-64bit-vis],
|
|
1056
|
-
[enable 64bit Sparc VIS support (default: off)]),
|
|
1057
|
-
[do64bitVIS=$enableval], [do64bitVIS=no])
|
|
1058
|
-
AC_MSG_RESULT([$do64bitVIS])
|
|
1059
|
-
# Force 64bit on with VIS
|
|
1060
|
-
AS_IF([test "$do64bitVIS" = "yes"], [do64bit=yes])
|
|
1061
|
-
|
|
1062
|
-
# Step 0.c: Check if visibility support is available. Do this here so
|
|
1063
|
-
# that platform specific alternatives can be used below if this fails.
|
|
1064
|
-
|
|
1065
|
-
AC_CACHE_CHECK([if compiler supports visibility "hidden"],
|
|
1066
|
-
tcl_cv_cc_visibility_hidden, [
|
|
1067
|
-
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror"
|
|
1068
|
-
AC_TRY_LINK([
|
|
1069
|
-
extern __attribute__((__visibility__("hidden"))) void f(void);
|
|
1070
|
-
void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes,
|
|
1071
|
-
tcl_cv_cc_visibility_hidden=no)
|
|
1072
|
-
CFLAGS=$hold_cflags])
|
|
1073
|
-
AS_IF([test $tcl_cv_cc_visibility_hidden = yes], [
|
|
1074
|
-
AC_DEFINE(MODULE_SCOPE,
|
|
1075
|
-
[extern __attribute__((__visibility__("hidden")))],
|
|
1076
|
-
[Compiler support for module scope symbols])
|
|
1077
|
-
AC_DEFINE(HAVE_HIDDEN, [1], [Compiler support for module scope symbols])
|
|
1078
|
-
])
|
|
1079
|
-
|
|
1080
|
-
# Step 0.d: Disable -rpath support?
|
|
1081
|
-
|
|
1082
|
-
AC_MSG_CHECKING([if rpath support is requested])
|
|
1083
|
-
AC_ARG_ENABLE(rpath,
|
|
1084
|
-
AC_HELP_STRING([--disable-rpath],
|
|
1085
|
-
[disable rpath support (default: on)]),
|
|
1086
|
-
[doRpath=$enableval], [doRpath=yes])
|
|
1087
|
-
AC_MSG_RESULT([$doRpath])
|
|
1088
|
-
|
|
1089
|
-
# TEA specific: Cross-compiling options for Windows/CE builds?
|
|
1090
|
-
|
|
1091
|
-
AS_IF([test "${TEA_PLATFORM}" = windows], [
|
|
1092
|
-
AC_MSG_CHECKING([if Windows/CE build is requested])
|
|
1093
|
-
AC_ARG_ENABLE(wince,
|
|
1094
|
-
AC_HELP_STRING([--enable-wince],
|
|
1095
|
-
[enable Win/CE support (where applicable)]),
|
|
1096
|
-
[doWince=$enableval], [doWince=no])
|
|
1097
|
-
AC_MSG_RESULT([$doWince])
|
|
1098
|
-
])
|
|
1099
|
-
|
|
1100
|
-
# Set the variable "system" to hold the name and version number
|
|
1101
|
-
# for the system.
|
|
1102
|
-
|
|
1103
|
-
TEA_CONFIG_SYSTEM
|
|
1104
|
-
|
|
1105
|
-
# Require ranlib early so we can override it in special cases below.
|
|
1106
|
-
|
|
1107
|
-
AC_REQUIRE([AC_PROG_RANLIB])
|
|
1108
|
-
|
|
1109
|
-
# Set configuration options based on system name and version.
|
|
1110
|
-
# This is similar to Tcl's unix/tcl.m4 except that we've added a
|
|
1111
|
-
# "windows" case and removed some core-only vars.
|
|
1112
|
-
|
|
1113
|
-
do64bit_ok=no
|
|
1114
|
-
# default to '{$LIBS}' and set to "" on per-platform necessary basis
|
|
1115
|
-
SHLIB_LD_LIBS='${LIBS}'
|
|
1116
|
-
# When ld needs options to work in 64-bit mode, put them in
|
|
1117
|
-
# LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]
|
|
1118
|
-
# is disabled by the user. [Bug 1016796]
|
|
1119
|
-
LDFLAGS_ARCH=""
|
|
1120
|
-
UNSHARED_LIB_SUFFIX=""
|
|
1121
|
-
# TEA specific: use PACKAGE_VERSION instead of VERSION
|
|
1122
|
-
TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
|
|
1123
|
-
ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
|
|
1124
|
-
TCL_LIB_VERSIONS_OK=ok
|
|
1125
|
-
CFLAGS_DEBUG=-g
|
|
1126
|
-
AS_IF([test "$GCC" = yes], [
|
|
1127
|
-
CFLAGS_OPTIMIZE=-O2
|
|
1128
|
-
CFLAGS_WARNING="-Wall"
|
|
1129
|
-
], [
|
|
1130
|
-
CFLAGS_OPTIMIZE=-O
|
|
1131
|
-
CFLAGS_WARNING=""
|
|
1132
|
-
])
|
|
1133
|
-
AC_CHECK_TOOL(AR, ar)
|
|
1134
|
-
STLIB_LD='${AR} cr'
|
|
1135
|
-
LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
|
|
1136
|
-
AS_IF([test "x$SHLIB_VERSION" = x],[SHLIB_VERSION="1.0"])
|
|
1137
|
-
case $system in
|
|
1138
|
-
# TEA specific:
|
|
1139
|
-
windows)
|
|
1140
|
-
# This is a 2-stage check to make sure we have the 64-bit SDK
|
|
1141
|
-
# We have to know where the SDK is installed.
|
|
1142
|
-
# This magic is based on MS Platform SDK for Win2003 SP1 - hobbs
|
|
1143
|
-
# MACHINE is IX86 for LINK, but this is used by the manifest,
|
|
1144
|
-
# which requires x86|amd64|ia64.
|
|
1145
|
-
MACHINE="X86"
|
|
1146
|
-
if test "$do64bit" != "no" ; then
|
|
1147
|
-
if test "x${MSSDK}x" = "xx" ; then
|
|
1148
|
-
MSSDK="C:/Progra~1/Microsoft Platform SDK"
|
|
1149
|
-
fi
|
|
1150
|
-
MSSDK=`echo "$MSSDK" | sed -e 's!\\\!/!g'`
|
|
1151
|
-
PATH64=""
|
|
1152
|
-
case "$do64bit" in
|
|
1153
|
-
amd64|x64|yes)
|
|
1154
|
-
MACHINE="AMD64" ; # default to AMD64 64-bit build
|
|
1155
|
-
PATH64="${MSSDK}/Bin/Win64/x86/AMD64"
|
|
1156
|
-
;;
|
|
1157
|
-
ia64)
|
|
1158
|
-
MACHINE="IA64"
|
|
1159
|
-
PATH64="${MSSDK}/Bin/Win64"
|
|
1160
|
-
;;
|
|
1161
|
-
esac
|
|
1162
|
-
if test "$GCC" != "yes" -a ! -d "${PATH64}" ; then
|
|
1163
|
-
AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode])
|
|
1164
|
-
AC_MSG_WARN([Ensure latest Platform SDK is installed])
|
|
1165
|
-
do64bit="no"
|
|
1166
|
-
else
|
|
1167
|
-
AC_MSG_RESULT([ Using 64-bit $MACHINE mode])
|
|
1168
|
-
do64bit_ok="yes"
|
|
1169
|
-
fi
|
|
1170
|
-
fi
|
|
1171
|
-
|
|
1172
|
-
if test "$doWince" != "no" ; then
|
|
1173
|
-
if test "$do64bit" != "no" ; then
|
|
1174
|
-
AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible])
|
|
1175
|
-
fi
|
|
1176
|
-
if test "$GCC" = "yes" ; then
|
|
1177
|
-
AC_MSG_ERROR([Windows/CE and GCC builds incompatible])
|
|
1178
|
-
fi
|
|
1179
|
-
TEA_PATH_CELIB
|
|
1180
|
-
# Set defaults for common evc4/PPC2003 setup
|
|
1181
|
-
# Currently Tcl requires 300+, possibly 420+ for sockets
|
|
1182
|
-
CEVERSION=420; # could be 211 300 301 400 420 ...
|
|
1183
|
-
TARGETCPU=ARMV4; # could be ARMV4 ARM MIPS SH3 X86 ...
|
|
1184
|
-
ARCH=ARM; # could be ARM MIPS X86EM ...
|
|
1185
|
-
PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002"
|
|
1186
|
-
if test "$doWince" != "yes"; then
|
|
1187
|
-
# If !yes then the user specified something
|
|
1188
|
-
# Reset ARCH to allow user to skip specifying it
|
|
1189
|
-
ARCH=
|
|
1190
|
-
eval `echo $doWince | awk -F, '{ \
|
|
1191
|
-
if (length([$]1)) { printf "CEVERSION=\"%s\"\n", [$]1; \
|
|
1192
|
-
if ([$]1 < 400) { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \
|
|
1193
|
-
if (length([$]2)) { printf "TARGETCPU=\"%s\"\n", toupper([$]2) }; \
|
|
1194
|
-
if (length([$]3)) { printf "ARCH=\"%s\"\n", toupper([$]3) }; \
|
|
1195
|
-
if (length([$]4)) { printf "PLATFORM=\"%s\"\n", [$]4 }; \
|
|
1196
|
-
}'`
|
|
1197
|
-
if test "x${ARCH}" = "x" ; then
|
|
1198
|
-
ARCH=$TARGETCPU;
|
|
1199
|
-
fi
|
|
1200
|
-
fi
|
|
1201
|
-
OSVERSION=WCE$CEVERSION;
|
|
1202
|
-
if test "x${WCEROOT}" = "x" ; then
|
|
1203
|
-
WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0"
|
|
1204
|
-
if test ! -d "${WCEROOT}" ; then
|
|
1205
|
-
WCEROOT="C:/Program Files/Microsoft eMbedded Tools"
|
|
1206
|
-
fi
|
|
1207
|
-
fi
|
|
1208
|
-
if test "x${SDKROOT}" = "x" ; then
|
|
1209
|
-
SDKROOT="C:/Program Files/Windows CE Tools"
|
|
1210
|
-
if test ! -d "${SDKROOT}" ; then
|
|
1211
|
-
SDKROOT="C:/Windows CE Tools"
|
|
1212
|
-
fi
|
|
1213
|
-
fi
|
|
1214
|
-
WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`
|
|
1215
|
-
SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`
|
|
1216
|
-
if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
|
|
1217
|
-
-o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
|
|
1218
|
-
AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]])
|
|
1219
|
-
doWince="no"
|
|
1220
|
-
else
|
|
1221
|
-
# We could PATH_NOSPACE these, but that's not important,
|
|
1222
|
-
# as long as we quote them when used.
|
|
1223
|
-
CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include"
|
|
1224
|
-
if test -d "${CEINCLUDE}/${TARGETCPU}" ; then
|
|
1225
|
-
CEINCLUDE="${CEINCLUDE}/${TARGETCPU}"
|
|
1226
|
-
fi
|
|
1227
|
-
CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}"
|
|
1228
|
-
fi
|
|
1229
|
-
fi
|
|
1230
|
-
|
|
1231
|
-
if test "$GCC" != "yes" ; then
|
|
1232
|
-
if test "${SHARED_BUILD}" = "0" ; then
|
|
1233
|
-
runtime=-MT
|
|
1234
|
-
else
|
|
1235
|
-
runtime=-MD
|
|
1236
|
-
fi
|
|
1237
|
-
|
|
1238
|
-
if test "$do64bit" != "no" ; then
|
|
1239
|
-
# All this magic is necessary for the Win64 SDK RC1 - hobbs
|
|
1240
|
-
CC="\"${PATH64}/cl.exe\""
|
|
1241
|
-
CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""
|
|
1242
|
-
RC="\"${MSSDK}/bin/rc.exe\""
|
|
1243
|
-
lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
|
|
1244
|
-
LINKBIN="\"${PATH64}/link.exe\""
|
|
1245
|
-
CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
|
|
1246
|
-
CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
|
|
1247
|
-
# Avoid 'unresolved external symbol __security_cookie'
|
|
1248
|
-
# errors, c.f. http://support.microsoft.com/?id=894573
|
|
1249
|
-
TEA_ADD_LIBS([bufferoverflowU.lib])
|
|
1250
|
-
elif test "$doWince" != "no" ; then
|
|
1251
|
-
CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"
|
|
1252
|
-
if test "${TARGETCPU}" = "X86"; then
|
|
1253
|
-
CC="\"${CEBINROOT}/cl.exe\""
|
|
1254
|
-
else
|
|
1255
|
-
CC="\"${CEBINROOT}/cl${ARCH}.exe\""
|
|
1256
|
-
fi
|
|
1257
|
-
CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
|
|
1258
|
-
RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""
|
|
1259
|
-
arch=`echo ${ARCH} | awk '{print tolower([$]0)}'`
|
|
1260
|
-
defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"
|
|
1261
|
-
if test "${SHARED_BUILD}" = "1" ; then
|
|
1262
|
-
# Static CE builds require static celib as well
|
|
1263
|
-
defs="${defs} _DLL"
|
|
1264
|
-
fi
|
|
1265
|
-
for i in $defs ; do
|
|
1266
|
-
AC_DEFINE_UNQUOTED($i, 1, [WinCE def ]$i)
|
|
1267
|
-
done
|
|
1268
|
-
AC_DEFINE_UNQUOTED(_WIN32_WCE, $CEVERSION, [_WIN32_WCE version])
|
|
1269
|
-
AC_DEFINE_UNQUOTED(UNDER_CE, $CEVERSION, [UNDER_CE version])
|
|
1270
|
-
CFLAGS_DEBUG="-nologo -Zi -Od"
|
|
1271
|
-
CFLAGS_OPTIMIZE="-nologo -Ox"
|
|
1272
|
-
lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
|
|
1273
|
-
lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
|
|
1274
|
-
LINKBIN="\"${CEBINROOT}/link.exe\""
|
|
1275
|
-
AC_SUBST(CELIB_DIR)
|
|
1276
|
-
else
|
|
1277
|
-
RC="rc"
|
|
1278
|
-
lflags="-nologo"
|
|
1279
|
-
LINKBIN="link"
|
|
1280
|
-
CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
|
|
1281
|
-
CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
|
|
1282
|
-
fi
|
|
1283
|
-
fi
|
|
1284
|
-
|
|
1285
|
-
if test "$GCC" = "yes"; then
|
|
1286
|
-
# mingw gcc mode
|
|
1287
|
-
AC_CHECK_TOOL(RC, windres)
|
|
1288
|
-
CFLAGS_DEBUG="-g"
|
|
1289
|
-
CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
|
|
1290
|
-
SHLIB_LD='${CC} -shared'
|
|
1291
|
-
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
|
|
1292
|
-
LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}"
|
|
1293
|
-
LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}"
|
|
1294
|
-
|
|
1295
|
-
AC_CACHE_CHECK(for cross-compile version of gcc,
|
|
1296
|
-
ac_cv_cross,
|
|
1297
|
-
AC_TRY_COMPILE([
|
|
1298
|
-
#ifdef _WIN32
|
|
1299
|
-
#error cross-compiler
|
|
1300
|
-
#endif
|
|
1301
|
-
], [],
|
|
1302
|
-
ac_cv_cross=yes,
|
|
1303
|
-
ac_cv_cross=no)
|
|
1304
|
-
)
|
|
1305
|
-
if test "$ac_cv_cross" = "yes"; then
|
|
1306
|
-
case "$do64bit" in
|
|
1307
|
-
amd64|x64|yes)
|
|
1308
|
-
CC="x86_64-w64-mingw32-gcc"
|
|
1309
|
-
LD="x86_64-w64-mingw32-ld"
|
|
1310
|
-
AR="x86_64-w64-mingw32-ar"
|
|
1311
|
-
RANLIB="x86_64-w64-mingw32-ranlib"
|
|
1312
|
-
RC="x86_64-w64-mingw32-windres"
|
|
1313
|
-
;;
|
|
1314
|
-
*)
|
|
1315
|
-
CC="i686-w64-mingw32-gcc"
|
|
1316
|
-
LD="i686-w64-mingw32-ld"
|
|
1317
|
-
AR="i686-w64-mingw32-ar"
|
|
1318
|
-
RANLIB="i686-w64-mingw32-ranlib"
|
|
1319
|
-
RC="i686-w64-mingw32-windres"
|
|
1320
|
-
;;
|
|
1321
|
-
esac
|
|
1322
|
-
fi
|
|
1323
|
-
|
|
1324
|
-
else
|
|
1325
|
-
SHLIB_LD="${LINKBIN} -dll ${lflags}"
|
|
1326
|
-
# link -lib only works when -lib is the first arg
|
|
1327
|
-
STLIB_LD="${LINKBIN} -lib ${lflags}"
|
|
1328
|
-
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib'
|
|
1329
|
-
PATHTYPE=-w
|
|
1330
|
-
# For information on what debugtype is most useful, see:
|
|
1331
|
-
# http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
|
|
1332
|
-
# and also
|
|
1333
|
-
# http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx
|
|
1334
|
-
# This essentially turns it all on.
|
|
1335
|
-
LDFLAGS_DEBUG="-debug -debugtype:cv"
|
|
1336
|
-
LDFLAGS_OPTIMIZE="-release"
|
|
1337
|
-
if test "$doWince" != "no" ; then
|
|
1338
|
-
LDFLAGS_CONSOLE="-link ${lflags}"
|
|
1339
|
-
LDFLAGS_WINDOW=${LDFLAGS_CONSOLE}
|
|
1340
|
-
else
|
|
1341
|
-
LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}"
|
|
1342
|
-
LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}"
|
|
1343
|
-
fi
|
|
1344
|
-
fi
|
|
1345
|
-
|
|
1346
|
-
SHLIB_SUFFIX=".dll"
|
|
1347
|
-
SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll'
|
|
1348
|
-
|
|
1349
|
-
TCL_LIB_VERSIONS_OK=nodots
|
|
1350
|
-
;;
|
|
1351
|
-
AIX-*)
|
|
1352
|
-
AS_IF([test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"], [
|
|
1353
|
-
# AIX requires the _r compiler when gcc isn't being used
|
|
1354
|
-
case "${CC}" in
|
|
1355
|
-
*_r|*_r\ *)
|
|
1356
|
-
# ok ...
|
|
1357
|
-
;;
|
|
1358
|
-
*)
|
|
1359
|
-
# Make sure only first arg gets _r
|
|
1360
|
-
CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'`
|
|
1361
|
-
;;
|
|
1362
|
-
esac
|
|
1363
|
-
AC_MSG_RESULT([Using $CC for compiling with threads])
|
|
1364
|
-
])
|
|
1365
|
-
LIBS="$LIBS -lc"
|
|
1366
|
-
SHLIB_CFLAGS=""
|
|
1367
|
-
SHLIB_SUFFIX=".so"
|
|
1368
|
-
|
|
1369
|
-
LD_LIBRARY_PATH_VAR="LIBPATH"
|
|
1370
|
-
|
|
1371
|
-
# Check to enable 64-bit flags for compiler/linker
|
|
1372
|
-
AS_IF([test "$do64bit" = yes], [
|
|
1373
|
-
AS_IF([test "$GCC" = yes], [
|
|
1374
|
-
AC_MSG_WARN([64bit mode not supported with GCC on $system])
|
|
1375
|
-
], [
|
|
1376
|
-
do64bit_ok=yes
|
|
1377
|
-
CFLAGS="$CFLAGS -q64"
|
|
1378
|
-
LDFLAGS_ARCH="-q64"
|
|
1379
|
-
RANLIB="${RANLIB} -X64"
|
|
1380
|
-
AR="${AR} -X64"
|
|
1381
|
-
SHLIB_LD_FLAGS="-b64"
|
|
1382
|
-
])
|
|
1383
|
-
])
|
|
1384
|
-
|
|
1385
|
-
AS_IF([test "`uname -m`" = ia64], [
|
|
1386
|
-
# AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC
|
|
1387
|
-
SHLIB_LD="/usr/ccs/bin/ld -G -z text"
|
|
1388
|
-
AS_IF([test "$GCC" = yes], [
|
|
1389
|
-
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
|
|
1390
|
-
], [
|
|
1391
|
-
CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
|
|
1392
|
-
])
|
|
1393
|
-
LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
|
|
1394
|
-
], [
|
|
1395
|
-
AS_IF([test "$GCC" = yes], [
|
|
1396
|
-
SHLIB_LD='${CC} -shared -Wl,-bexpall'
|
|
1397
|
-
], [
|
|
1398
|
-
SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry"
|
|
1399
|
-
LDFLAGS="$LDFLAGS -brtl"
|
|
1400
|
-
])
|
|
1401
|
-
SHLIB_LD="${SHLIB_LD} ${SHLIB_LD_FLAGS}"
|
|
1402
|
-
CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
|
|
1403
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1404
|
-
])
|
|
1405
|
-
;;
|
|
1406
|
-
BeOS*)
|
|
1407
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1408
|
-
SHLIB_LD='${CC} -nostart'
|
|
1409
|
-
SHLIB_SUFFIX=".so"
|
|
1410
|
-
|
|
1411
|
-
#-----------------------------------------------------------
|
|
1412
|
-
# Check for inet_ntoa in -lbind, for BeOS (which also needs
|
|
1413
|
-
# -lsocket, even if the network functions are in -lnet which
|
|
1414
|
-
# is always linked to, for compatibility.
|
|
1415
|
-
#-----------------------------------------------------------
|
|
1416
|
-
AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"])
|
|
1417
|
-
;;
|
|
1418
|
-
BSD/OS-4.*)
|
|
1419
|
-
SHLIB_CFLAGS="-export-dynamic -fPIC"
|
|
1420
|
-
SHLIB_LD='${CC} -shared'
|
|
1421
|
-
SHLIB_SUFFIX=".so"
|
|
1422
|
-
LDFLAGS="$LDFLAGS -export-dynamic"
|
|
1423
|
-
CC_SEARCH_FLAGS=""
|
|
1424
|
-
LD_SEARCH_FLAGS=""
|
|
1425
|
-
;;
|
|
1426
|
-
CYGWIN_*)
|
|
1427
|
-
SHLIB_CFLAGS=""
|
|
1428
|
-
SHLIB_LD='${CC} -shared'
|
|
1429
|
-
SHLIB_SUFFIX=".dll"
|
|
1430
|
-
EXEEXT=".exe"
|
|
1431
|
-
do64bit_ok=yes
|
|
1432
|
-
CC_SEARCH_FLAGS=""
|
|
1433
|
-
LD_SEARCH_FLAGS=""
|
|
1434
|
-
;;
|
|
1435
|
-
Haiku*)
|
|
1436
|
-
LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
|
|
1437
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1438
|
-
SHLIB_SUFFIX=".so"
|
|
1439
|
-
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
|
|
1440
|
-
AC_CHECK_LIB(network, inet_ntoa, [LIBS="$LIBS -lnetwork"])
|
|
1441
|
-
;;
|
|
1442
|
-
HP-UX-*.11.*)
|
|
1443
|
-
# Use updated header definitions where possible
|
|
1444
|
-
AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?])
|
|
1445
|
-
# TEA specific: Needed by Tcl, but not most extensions
|
|
1446
|
-
#AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])
|
|
1447
|
-
#LIBS="$LIBS -lxnet" # Use the XOPEN network library
|
|
1448
|
-
|
|
1449
|
-
AS_IF([test "`uname -m`" = ia64], [
|
|
1450
|
-
SHLIB_SUFFIX=".so"
|
|
1451
|
-
# Use newer C++ library for C++ extensions
|
|
1452
|
-
#if test "$GCC" != "yes" ; then
|
|
1453
|
-
# CPPFLAGS="-AA"
|
|
1454
|
-
#fi
|
|
1455
|
-
], [
|
|
1456
|
-
SHLIB_SUFFIX=".sl"
|
|
1457
|
-
])
|
|
1458
|
-
AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no)
|
|
1459
|
-
AS_IF([test "$tcl_ok" = yes], [
|
|
1460
|
-
LDFLAGS="$LDFLAGS -Wl,-E"
|
|
1461
|
-
CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
|
|
1462
|
-
LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
|
|
1463
|
-
LD_LIBRARY_PATH_VAR="SHLIB_PATH"
|
|
1464
|
-
])
|
|
1465
|
-
AS_IF([test "$GCC" = yes], [
|
|
1466
|
-
SHLIB_LD='${CC} -shared'
|
|
1467
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1468
|
-
], [
|
|
1469
|
-
CFLAGS="$CFLAGS -z"
|
|
1470
|
-
# Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
|
|
1471
|
-
#CFLAGS="$CFLAGS +DAportable"
|
|
1472
|
-
SHLIB_CFLAGS="+z"
|
|
1473
|
-
SHLIB_LD="ld -b"
|
|
1474
|
-
])
|
|
1475
|
-
|
|
1476
|
-
# Check to enable 64-bit flags for compiler/linker
|
|
1477
|
-
AS_IF([test "$do64bit" = "yes"], [
|
|
1478
|
-
AS_IF([test "$GCC" = yes], [
|
|
1479
|
-
case `${CC} -dumpmachine` in
|
|
1480
|
-
hppa64*)
|
|
1481
|
-
# 64-bit gcc in use. Fix flags for GNU ld.
|
|
1482
|
-
do64bit_ok=yes
|
|
1483
|
-
SHLIB_LD='${CC} -shared'
|
|
1484
|
-
AS_IF([test $doRpath = yes], [
|
|
1485
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
|
|
1486
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1487
|
-
;;
|
|
1488
|
-
*)
|
|
1489
|
-
AC_MSG_WARN([64bit mode not supported with GCC on $system])
|
|
1490
|
-
;;
|
|
1491
|
-
esac
|
|
1492
|
-
], [
|
|
1493
|
-
do64bit_ok=yes
|
|
1494
|
-
CFLAGS="$CFLAGS +DD64"
|
|
1495
|
-
LDFLAGS_ARCH="+DD64"
|
|
1496
|
-
])
|
|
1497
|
-
]) ;;
|
|
1498
|
-
IRIX-6.*)
|
|
1499
|
-
SHLIB_CFLAGS=""
|
|
1500
|
-
SHLIB_LD="ld -n32 -shared -rdata_shared"
|
|
1501
|
-
SHLIB_SUFFIX=".so"
|
|
1502
|
-
AS_IF([test $doRpath = yes], [
|
|
1503
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
|
|
1504
|
-
LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
|
|
1505
|
-
AS_IF([test "$GCC" = yes], [
|
|
1506
|
-
CFLAGS="$CFLAGS -mabi=n32"
|
|
1507
|
-
LDFLAGS="$LDFLAGS -mabi=n32"
|
|
1508
|
-
], [
|
|
1509
|
-
case $system in
|
|
1510
|
-
IRIX-6.3)
|
|
1511
|
-
# Use to build 6.2 compatible binaries on 6.3.
|
|
1512
|
-
CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS"
|
|
1513
|
-
;;
|
|
1514
|
-
*)
|
|
1515
|
-
CFLAGS="$CFLAGS -n32"
|
|
1516
|
-
;;
|
|
1517
|
-
esac
|
|
1518
|
-
LDFLAGS="$LDFLAGS -n32"
|
|
1519
|
-
])
|
|
1520
|
-
;;
|
|
1521
|
-
IRIX64-6.*)
|
|
1522
|
-
SHLIB_CFLAGS=""
|
|
1523
|
-
SHLIB_LD="ld -n32 -shared -rdata_shared"
|
|
1524
|
-
SHLIB_SUFFIX=".so"
|
|
1525
|
-
AS_IF([test $doRpath = yes], [
|
|
1526
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
|
|
1527
|
-
LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
|
|
1528
|
-
|
|
1529
|
-
# Check to enable 64-bit flags for compiler/linker
|
|
1530
|
-
|
|
1531
|
-
AS_IF([test "$do64bit" = yes], [
|
|
1532
|
-
AS_IF([test "$GCC" = yes], [
|
|
1533
|
-
AC_MSG_WARN([64bit mode not supported by gcc])
|
|
1534
|
-
], [
|
|
1535
|
-
do64bit_ok=yes
|
|
1536
|
-
SHLIB_LD="ld -64 -shared -rdata_shared"
|
|
1537
|
-
CFLAGS="$CFLAGS -64"
|
|
1538
|
-
LDFLAGS_ARCH="-64"
|
|
1539
|
-
])
|
|
1540
|
-
])
|
|
1541
|
-
;;
|
|
1542
|
-
Linux*|GNU*|NetBSD-Debian)
|
|
1543
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1544
|
-
SHLIB_SUFFIX=".so"
|
|
1545
|
-
|
|
1546
|
-
# TEA specific:
|
|
1547
|
-
CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
|
|
1548
|
-
|
|
1549
|
-
# TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
|
|
1550
|
-
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS_DEFAULT}'
|
|
1551
|
-
LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
|
|
1552
|
-
AS_IF([test $doRpath = yes], [
|
|
1553
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
|
|
1554
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1555
|
-
AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"])
|
|
1556
|
-
AS_IF([test $do64bit = yes], [
|
|
1557
|
-
AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [
|
|
1558
|
-
hold_cflags=$CFLAGS
|
|
1559
|
-
CFLAGS="$CFLAGS -m64"
|
|
1560
|
-
AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no)
|
|
1561
|
-
CFLAGS=$hold_cflags])
|
|
1562
|
-
AS_IF([test $tcl_cv_cc_m64 = yes], [
|
|
1563
|
-
CFLAGS="$CFLAGS -m64"
|
|
1564
|
-
do64bit_ok=yes
|
|
1565
|
-
])
|
|
1566
|
-
])
|
|
1567
|
-
|
|
1568
|
-
# The combo of gcc + glibc has a bug related to inlining of
|
|
1569
|
-
# functions like strtod(). The -fno-builtin flag should address
|
|
1570
|
-
# this problem but it does not work. The -fno-inline flag is kind
|
|
1571
|
-
# of overkill but it works. Disable inlining only when one of the
|
|
1572
|
-
# files in compat/*.c is being linked in.
|
|
1573
|
-
|
|
1574
|
-
AS_IF([test x"${USE_COMPAT}" != x],[CFLAGS="$CFLAGS -fno-inline"])
|
|
1575
|
-
;;
|
|
1576
|
-
Lynx*)
|
|
1577
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1578
|
-
SHLIB_SUFFIX=".so"
|
|
1579
|
-
CFLAGS_OPTIMIZE=-02
|
|
1580
|
-
SHLIB_LD='${CC} -shared'
|
|
1581
|
-
LD_FLAGS="-Wl,--export-dynamic"
|
|
1582
|
-
AS_IF([test $doRpath = yes], [
|
|
1583
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
|
|
1584
|
-
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
|
|
1585
|
-
;;
|
|
1586
|
-
OpenBSD-*)
|
|
1587
|
-
arch=`arch -s`
|
|
1588
|
-
case "$arch" in
|
|
1589
|
-
vax)
|
|
1590
|
-
SHLIB_SUFFIX=""
|
|
1591
|
-
SHARED_LIB_SUFFIX=""
|
|
1592
|
-
LDFLAGS=""
|
|
1593
|
-
;;
|
|
1594
|
-
*)
|
|
1595
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1596
|
-
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
|
|
1597
|
-
SHLIB_SUFFIX=".so"
|
|
1598
|
-
AS_IF([test $doRpath = yes], [
|
|
1599
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
|
|
1600
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1601
|
-
SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
|
|
1602
|
-
LDFLAGS="-Wl,-export-dynamic"
|
|
1603
|
-
;;
|
|
1604
|
-
esac
|
|
1605
|
-
case "$arch" in
|
|
1606
|
-
vax)
|
|
1607
|
-
CFLAGS_OPTIMIZE="-O1"
|
|
1608
|
-
;;
|
|
1609
|
-
*)
|
|
1610
|
-
CFLAGS_OPTIMIZE="-O2"
|
|
1611
|
-
;;
|
|
1612
|
-
esac
|
|
1613
|
-
AS_IF([test "${TCL_THREADS}" = "1"], [
|
|
1614
|
-
# On OpenBSD: Compile with -pthread
|
|
1615
|
-
# Don't link with -lpthread
|
|
1616
|
-
LIBS=`echo $LIBS | sed s/-lpthread//`
|
|
1617
|
-
CFLAGS="$CFLAGS -pthread"
|
|
1618
|
-
])
|
|
1619
|
-
# OpenBSD doesn't do version numbers with dots.
|
|
1620
|
-
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
|
|
1621
|
-
TCL_LIB_VERSIONS_OK=nodots
|
|
1622
|
-
;;
|
|
1623
|
-
NetBSD-*)
|
|
1624
|
-
# NetBSD has ELF and can use 'cc -shared' to build shared libs
|
|
1625
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1626
|
-
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
|
|
1627
|
-
SHLIB_SUFFIX=".so"
|
|
1628
|
-
LDFLAGS="$LDFLAGS -export-dynamic"
|
|
1629
|
-
AS_IF([test $doRpath = yes], [
|
|
1630
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
|
|
1631
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1632
|
-
AS_IF([test "${TCL_THREADS}" = "1"], [
|
|
1633
|
-
# The -pthread needs to go in the CFLAGS, not LIBS
|
|
1634
|
-
LIBS=`echo $LIBS | sed s/-pthread//`
|
|
1635
|
-
CFLAGS="$CFLAGS -pthread"
|
|
1636
|
-
LDFLAGS="$LDFLAGS -pthread"
|
|
1637
|
-
])
|
|
1638
|
-
;;
|
|
1639
|
-
FreeBSD-*)
|
|
1640
|
-
# This configuration from FreeBSD Ports.
|
|
1641
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1642
|
-
SHLIB_LD="${CC} -shared"
|
|
1643
|
-
TCL_SHLIB_LD_EXTRAS="-Wl,-soname=\$[@]"
|
|
1644
|
-
TK_SHLIB_LD_EXTRAS="-Wl,-soname,\$[@]"
|
|
1645
|
-
SHLIB_SUFFIX=".so"
|
|
1646
|
-
LDFLAGS=""
|
|
1647
|
-
AS_IF([test $doRpath = yes], [
|
|
1648
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
|
|
1649
|
-
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
|
|
1650
|
-
AS_IF([test "${TCL_THREADS}" = "1"], [
|
|
1651
|
-
# The -pthread needs to go in the LDFLAGS, not LIBS
|
|
1652
|
-
LIBS=`echo $LIBS | sed s/-pthread//`
|
|
1653
|
-
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
1654
|
-
LDFLAGS="$LDFLAGS $PTHREAD_LIBS"])
|
|
1655
|
-
case $system in
|
|
1656
|
-
FreeBSD-3.*)
|
|
1657
|
-
# Version numbers are dot-stripped by system policy.
|
|
1658
|
-
TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .`
|
|
1659
|
-
UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
|
|
1660
|
-
SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
|
|
1661
|
-
TCL_LIB_VERSIONS_OK=nodots
|
|
1662
|
-
;;
|
|
1663
|
-
esac
|
|
1664
|
-
;;
|
|
1665
|
-
Darwin-*)
|
|
1666
|
-
CFLAGS_OPTIMIZE="-Os"
|
|
1667
|
-
SHLIB_CFLAGS="-fno-common"
|
|
1668
|
-
# To avoid discrepancies between what headers configure sees during
|
|
1669
|
-
# preprocessing tests and compiling tests, move any -isysroot and
|
|
1670
|
-
# -mmacosx-version-min flags from CFLAGS to CPPFLAGS:
|
|
1671
|
-
CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \
|
|
1672
|
-
awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
|
|
1673
|
-
if ([$]i~/^(isysroot|mmacosx-version-min)/) print "-"[$]i}'`"
|
|
1674
|
-
CFLAGS="`echo " ${CFLAGS}" | \
|
|
1675
|
-
awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \
|
|
1676
|
-
if (!([$]i~/^(isysroot|mmacosx-version-min)/)) print "-"[$]i}'`"
|
|
1677
|
-
AS_IF([test $do64bit = yes], [
|
|
1678
|
-
case `arch` in
|
|
1679
|
-
ppc)
|
|
1680
|
-
AC_CACHE_CHECK([if compiler accepts -arch ppc64 flag],
|
|
1681
|
-
tcl_cv_cc_arch_ppc64, [
|
|
1682
|
-
hold_cflags=$CFLAGS
|
|
1683
|
-
CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
|
|
1684
|
-
AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes,
|
|
1685
|
-
tcl_cv_cc_arch_ppc64=no)
|
|
1686
|
-
CFLAGS=$hold_cflags])
|
|
1687
|
-
AS_IF([test $tcl_cv_cc_arch_ppc64 = yes], [
|
|
1688
|
-
CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5"
|
|
1689
|
-
do64bit_ok=yes
|
|
1690
|
-
]);;
|
|
1691
|
-
i386)
|
|
1692
|
-
AC_CACHE_CHECK([if compiler accepts -arch x86_64 flag],
|
|
1693
|
-
tcl_cv_cc_arch_x86_64, [
|
|
1694
|
-
hold_cflags=$CFLAGS
|
|
1695
|
-
CFLAGS="$CFLAGS -arch x86_64"
|
|
1696
|
-
AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes,
|
|
1697
|
-
tcl_cv_cc_arch_x86_64=no)
|
|
1698
|
-
CFLAGS=$hold_cflags])
|
|
1699
|
-
AS_IF([test $tcl_cv_cc_arch_x86_64 = yes], [
|
|
1700
|
-
CFLAGS="$CFLAGS -arch x86_64"
|
|
1701
|
-
do64bit_ok=yes
|
|
1702
|
-
]);;
|
|
1703
|
-
*)
|
|
1704
|
-
AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`]);;
|
|
1705
|
-
esac
|
|
1706
|
-
], [
|
|
1707
|
-
# Check for combined 32-bit and 64-bit fat build
|
|
1708
|
-
AS_IF([echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \
|
|
1709
|
-
&& echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '], [
|
|
1710
|
-
fat_32_64=yes])
|
|
1711
|
-
])
|
|
1712
|
-
# TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
|
|
1713
|
-
SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
|
|
1714
|
-
AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [
|
|
1715
|
-
hold_ldflags=$LDFLAGS
|
|
1716
|
-
LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
|
|
1717
|
-
AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no)
|
|
1718
|
-
LDFLAGS=$hold_ldflags])
|
|
1719
|
-
AS_IF([test $tcl_cv_ld_single_module = yes], [
|
|
1720
|
-
SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
|
|
1721
|
-
])
|
|
1722
|
-
# TEA specific: link shlib with current and compatibility version flags
|
|
1723
|
-
vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
|
|
1724
|
-
SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}"
|
|
1725
|
-
SHLIB_SUFFIX=".dylib"
|
|
1726
|
-
# Don't use -prebind when building for Mac OS X 10.4 or later only:
|
|
1727
|
-
AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \
|
|
1728
|
-
"`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4], [
|
|
1729
|
-
LDFLAGS="$LDFLAGS -prebind"])
|
|
1730
|
-
LDFLAGS="$LDFLAGS -headerpad_max_install_names"
|
|
1731
|
-
AC_CACHE_CHECK([if ld accepts -search_paths_first flag],
|
|
1732
|
-
tcl_cv_ld_search_paths_first, [
|
|
1733
|
-
hold_ldflags=$LDFLAGS
|
|
1734
|
-
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
|
|
1735
|
-
AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes,
|
|
1736
|
-
tcl_cv_ld_search_paths_first=no)
|
|
1737
|
-
LDFLAGS=$hold_ldflags])
|
|
1738
|
-
AS_IF([test $tcl_cv_ld_search_paths_first = yes], [
|
|
1739
|
-
LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
|
|
1740
|
-
])
|
|
1741
|
-
AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [
|
|
1742
|
-
AC_DEFINE(MODULE_SCOPE, [__private_extern__],
|
|
1743
|
-
[Compiler support for module scope symbols])
|
|
1744
|
-
tcl_cv_cc_visibility_hidden=yes
|
|
1745
|
-
])
|
|
1746
|
-
CC_SEARCH_FLAGS=""
|
|
1747
|
-
LD_SEARCH_FLAGS=""
|
|
1748
|
-
LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
|
|
1749
|
-
# TEA specific: for combined 32 & 64 bit fat builds of Tk
|
|
1750
|
-
# extensions, verify that 64-bit build is possible.
|
|
1751
|
-
AS_IF([test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"], [
|
|
1752
|
-
AS_IF([test "${TEA_WINDOWINGSYSTEM}" = x11], [
|
|
1753
|
-
AC_CACHE_CHECK([for 64-bit X11], tcl_cv_lib_x11_64, [
|
|
1754
|
-
for v in CFLAGS CPPFLAGS LDFLAGS; do
|
|
1755
|
-
eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
|
|
1756
|
-
done
|
|
1757
|
-
CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
|
|
1758
|
-
LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
|
|
1759
|
-
AC_TRY_LINK([#include <X11/Xlib.h>], [XrmInitialize();],
|
|
1760
|
-
tcl_cv_lib_x11_64=yes, tcl_cv_lib_x11_64=no)
|
|
1761
|
-
for v in CFLAGS CPPFLAGS LDFLAGS; do
|
|
1762
|
-
eval $v'="$hold_'$v'"'
|
|
1763
|
-
done])
|
|
1764
|
-
])
|
|
1765
|
-
AS_IF([test "${TEA_WINDOWINGSYSTEM}" = aqua], [
|
|
1766
|
-
AC_CACHE_CHECK([for 64-bit Tk], tcl_cv_lib_tk_64, [
|
|
1767
|
-
for v in CFLAGS CPPFLAGS LDFLAGS; do
|
|
1768
|
-
eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
|
|
1769
|
-
done
|
|
1770
|
-
CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}"
|
|
1771
|
-
LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}"
|
|
1772
|
-
AC_TRY_LINK([#include <tk.h>], [Tk_InitStubs(NULL, "", 0);],
|
|
1773
|
-
tcl_cv_lib_tk_64=yes, tcl_cv_lib_tk_64=no)
|
|
1774
|
-
for v in CFLAGS CPPFLAGS LDFLAGS; do
|
|
1775
|
-
eval $v'="$hold_'$v'"'
|
|
1776
|
-
done])
|
|
1777
|
-
])
|
|
1778
|
-
# remove 64-bit arch flags from CFLAGS et al. if configuration
|
|
1779
|
-
# does not support 64-bit.
|
|
1780
|
-
AS_IF([test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no], [
|
|
1781
|
-
AC_MSG_NOTICE([Removing 64-bit architectures from compiler & linker flags])
|
|
1782
|
-
for v in CFLAGS CPPFLAGS LDFLAGS; do
|
|
1783
|
-
eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"'
|
|
1784
|
-
done])
|
|
1785
|
-
])
|
|
1786
|
-
;;
|
|
1787
|
-
OS/390-*)
|
|
1788
|
-
CFLAGS_OPTIMIZE="" # Optimizer is buggy
|
|
1789
|
-
AC_DEFINE(_OE_SOCKETS, 1, # needed in sys/socket.h
|
|
1790
|
-
[Should OS/390 do the right thing with sockets?])
|
|
1791
|
-
;;
|
|
1792
|
-
OSF1-V*)
|
|
1793
|
-
# Digital OSF/1
|
|
1794
|
-
SHLIB_CFLAGS=""
|
|
1795
|
-
AS_IF([test "$SHARED_BUILD" = 1], [
|
|
1796
|
-
SHLIB_LD='ld -shared -expect_unresolved "*"'
|
|
1797
|
-
], [
|
|
1798
|
-
SHLIB_LD='ld -non_shared -expect_unresolved "*"'
|
|
1799
|
-
])
|
|
1800
|
-
SHLIB_SUFFIX=".so"
|
|
1801
|
-
AS_IF([test $doRpath = yes], [
|
|
1802
|
-
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
|
|
1803
|
-
LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
|
|
1804
|
-
AS_IF([test "$GCC" = yes], [CFLAGS="$CFLAGS -mieee"], [
|
|
1805
|
-
CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"])
|
|
1806
|
-
# see pthread_intro(3) for pthread support on osf1, k.furukawa
|
|
1807
|
-
AS_IF([test "${TCL_THREADS}" = 1], [
|
|
1808
|
-
CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE"
|
|
1809
|
-
CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64"
|
|
1810
|
-
LIBS=`echo $LIBS | sed s/-lpthreads//`
|
|
1811
|
-
AS_IF([test "$GCC" = yes], [
|
|
1812
|
-
LIBS="$LIBS -lpthread -lmach -lexc"
|
|
1813
|
-
], [
|
|
1814
|
-
CFLAGS="$CFLAGS -pthread"
|
|
1815
|
-
LDFLAGS="$LDFLAGS -pthread"
|
|
1816
|
-
])
|
|
1817
|
-
])
|
|
1818
|
-
;;
|
|
1819
|
-
QNX-6*)
|
|
1820
|
-
# QNX RTP
|
|
1821
|
-
# This may work for all QNX, but it was only reported for v6.
|
|
1822
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1823
|
-
SHLIB_LD="ld -Bshareable -x"
|
|
1824
|
-
SHLIB_LD_LIBS=""
|
|
1825
|
-
SHLIB_SUFFIX=".so"
|
|
1826
|
-
CC_SEARCH_FLAGS=""
|
|
1827
|
-
LD_SEARCH_FLAGS=""
|
|
1828
|
-
;;
|
|
1829
|
-
SCO_SV-3.2*)
|
|
1830
|
-
AS_IF([test "$GCC" = yes], [
|
|
1831
|
-
SHLIB_CFLAGS="-fPIC -melf"
|
|
1832
|
-
LDFLAGS="$LDFLAGS -melf -Wl,-Bexport"
|
|
1833
|
-
], [
|
|
1834
|
-
SHLIB_CFLAGS="-Kpic -belf"
|
|
1835
|
-
LDFLAGS="$LDFLAGS -belf -Wl,-Bexport"
|
|
1836
|
-
])
|
|
1837
|
-
SHLIB_LD="ld -G"
|
|
1838
|
-
SHLIB_LD_LIBS=""
|
|
1839
|
-
SHLIB_SUFFIX=".so"
|
|
1840
|
-
CC_SEARCH_FLAGS=""
|
|
1841
|
-
LD_SEARCH_FLAGS=""
|
|
1842
|
-
;;
|
|
1843
|
-
SunOS-5.[[0-6]])
|
|
1844
|
-
# Careful to not let 5.10+ fall into this case
|
|
1845
|
-
|
|
1846
|
-
# Note: If _REENTRANT isn't defined, then Solaris
|
|
1847
|
-
# won't define thread-safe library routines.
|
|
1848
|
-
|
|
1849
|
-
AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?])
|
|
1850
|
-
AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1,
|
|
1851
|
-
[Do we really want to follow the standard? Yes we do!])
|
|
1852
|
-
|
|
1853
|
-
SHLIB_CFLAGS="-KPIC"
|
|
1854
|
-
SHLIB_SUFFIX=".so"
|
|
1855
|
-
AS_IF([test "$GCC" = yes], [
|
|
1856
|
-
SHLIB_LD='${CC} -shared'
|
|
1857
|
-
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
|
|
1858
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1859
|
-
], [
|
|
1860
|
-
SHLIB_LD="/usr/ccs/bin/ld -G -z text"
|
|
1861
|
-
CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
|
|
1862
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1863
|
-
])
|
|
1864
|
-
;;
|
|
1865
|
-
SunOS-5*)
|
|
1866
|
-
# Note: If _REENTRANT isn't defined, then Solaris
|
|
1867
|
-
# won't define thread-safe library routines.
|
|
1868
|
-
|
|
1869
|
-
AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?])
|
|
1870
|
-
AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1,
|
|
1871
|
-
[Do we really want to follow the standard? Yes we do!])
|
|
1872
|
-
|
|
1873
|
-
SHLIB_CFLAGS="-KPIC"
|
|
1874
|
-
|
|
1875
|
-
# Check to enable 64-bit flags for compiler/linker
|
|
1876
|
-
AS_IF([test "$do64bit" = yes], [
|
|
1877
|
-
arch=`isainfo`
|
|
1878
|
-
AS_IF([test "$arch" = "sparcv9 sparc"], [
|
|
1879
|
-
AS_IF([test "$GCC" = yes], [
|
|
1880
|
-
AS_IF([test "`${CC} -dumpversion | awk -F. '{print [$]1}'`" -lt 3], [
|
|
1881
|
-
AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system])
|
|
1882
|
-
], [
|
|
1883
|
-
do64bit_ok=yes
|
|
1884
|
-
CFLAGS="$CFLAGS -m64 -mcpu=v9"
|
|
1885
|
-
LDFLAGS="$LDFLAGS -m64 -mcpu=v9"
|
|
1886
|
-
SHLIB_CFLAGS="-fPIC"
|
|
1887
|
-
])
|
|
1888
|
-
], [
|
|
1889
|
-
do64bit_ok=yes
|
|
1890
|
-
AS_IF([test "$do64bitVIS" = yes], [
|
|
1891
|
-
CFLAGS="$CFLAGS -xarch=v9a"
|
|
1892
|
-
LDFLAGS_ARCH="-xarch=v9a"
|
|
1893
|
-
], [
|
|
1894
|
-
CFLAGS="$CFLAGS -xarch=v9"
|
|
1895
|
-
LDFLAGS_ARCH="-xarch=v9"
|
|
1896
|
-
])
|
|
1897
|
-
# Solaris 64 uses this as well
|
|
1898
|
-
#LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
|
|
1899
|
-
])
|
|
1900
|
-
], [AS_IF([test "$arch" = "amd64 i386"], [
|
|
1901
|
-
AS_IF([test "$GCC" = yes], [
|
|
1902
|
-
case $system in
|
|
1903
|
-
SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*)
|
|
1904
|
-
do64bit_ok=yes
|
|
1905
|
-
CFLAGS="$CFLAGS -m64"
|
|
1906
|
-
LDFLAGS="$LDFLAGS -m64";;
|
|
1907
|
-
*)
|
|
1908
|
-
AC_MSG_WARN([64bit mode not supported with GCC on $system]);;
|
|
1909
|
-
esac
|
|
1910
|
-
], [
|
|
1911
|
-
do64bit_ok=yes
|
|
1912
|
-
case $system in
|
|
1913
|
-
SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*)
|
|
1914
|
-
CFLAGS="$CFLAGS -m64"
|
|
1915
|
-
LDFLAGS="$LDFLAGS -m64";;
|
|
1916
|
-
*)
|
|
1917
|
-
CFLAGS="$CFLAGS -xarch=amd64"
|
|
1918
|
-
LDFLAGS="$LDFLAGS -xarch=amd64";;
|
|
1919
|
-
esac
|
|
1920
|
-
])
|
|
1921
|
-
], [AC_MSG_WARN([64bit mode not supported for $arch])])])
|
|
1922
|
-
])
|
|
1923
|
-
|
|
1924
|
-
SHLIB_SUFFIX=".so"
|
|
1925
|
-
AS_IF([test "$GCC" = yes], [
|
|
1926
|
-
SHLIB_LD='${CC} -shared'
|
|
1927
|
-
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
|
|
1928
|
-
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
|
|
1929
|
-
AS_IF([test "$do64bit_ok" = yes], [
|
|
1930
|
-
AS_IF([test "$arch" = "sparcv9 sparc"], [
|
|
1931
|
-
# We need to specify -static-libgcc or we need to
|
|
1932
|
-
# add the path to the sparv9 libgcc.
|
|
1933
|
-
# JH: static-libgcc is necessary for core Tcl, but may
|
|
1934
|
-
# not be necessary for extensions.
|
|
1935
|
-
SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc"
|
|
1936
|
-
# for finding sparcv9 libgcc, get the regular libgcc
|
|
1937
|
-
# path, remove so name and append 'sparcv9'
|
|
1938
|
-
#v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
|
|
1939
|
-
#CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
|
|
1940
|
-
], [AS_IF([test "$arch" = "amd64 i386"], [
|
|
1941
|
-
# JH: static-libgcc is necessary for core Tcl, but may
|
|
1942
|
-
# not be necessary for extensions.
|
|
1943
|
-
SHLIB_LD="$SHLIB_LD -m64 -static-libgcc"
|
|
1944
|
-
])])
|
|
1945
|
-
])
|
|
1946
|
-
], [
|
|
1947
|
-
case $system in
|
|
1948
|
-
SunOS-5.[[1-9]][[0-9]]*)
|
|
1949
|
-
# TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS
|
|
1950
|
-
SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';;
|
|
1951
|
-
*)
|
|
1952
|
-
SHLIB_LD='/usr/ccs/bin/ld -G -z text';;
|
|
1953
|
-
esac
|
|
1954
|
-
CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
|
|
1955
|
-
LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
|
|
1956
|
-
])
|
|
1957
|
-
;;
|
|
1958
|
-
UNIX_SV* | UnixWare-5*)
|
|
1959
|
-
SHLIB_CFLAGS="-KPIC"
|
|
1960
|
-
SHLIB_LD='${CC} -G'
|
|
1961
|
-
SHLIB_LD_LIBS=""
|
|
1962
|
-
SHLIB_SUFFIX=".so"
|
|
1963
|
-
# Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
|
|
1964
|
-
# that don't grok the -Bexport option. Test that it does.
|
|
1965
|
-
AC_CACHE_CHECK([for ld accepts -Bexport flag], tcl_cv_ld_Bexport, [
|
|
1966
|
-
hold_ldflags=$LDFLAGS
|
|
1967
|
-
LDFLAGS="$LDFLAGS -Wl,-Bexport"
|
|
1968
|
-
AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no)
|
|
1969
|
-
LDFLAGS=$hold_ldflags])
|
|
1970
|
-
AS_IF([test $tcl_cv_ld_Bexport = yes], [
|
|
1971
|
-
LDFLAGS="$LDFLAGS -Wl,-Bexport"
|
|
1972
|
-
])
|
|
1973
|
-
CC_SEARCH_FLAGS=""
|
|
1974
|
-
LD_SEARCH_FLAGS=""
|
|
1975
|
-
;;
|
|
1976
|
-
esac
|
|
1977
|
-
|
|
1978
|
-
AS_IF([test "$do64bit" = yes -a "$do64bit_ok" = no], [
|
|
1979
|
-
AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform])
|
|
1980
|
-
])
|
|
1981
|
-
|
|
1982
|
-
dnl # Add any CPPFLAGS set in the environment to our CFLAGS, but delay doing so
|
|
1983
|
-
dnl # until the end of configure, as configure's compile and link tests use
|
|
1984
|
-
dnl # both CPPFLAGS and CFLAGS (unlike our compile and link) but configure's
|
|
1985
|
-
dnl # preprocessing tests use only CPPFLAGS.
|
|
1986
|
-
AC_CONFIG_COMMANDS_PRE([CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""])
|
|
1987
|
-
|
|
1988
|
-
# Add in the arch flags late to ensure it wasn't removed.
|
|
1989
|
-
# Not necessary in TEA, but this is aligned with core
|
|
1990
|
-
LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"
|
|
1991
|
-
|
|
1992
|
-
# If we're running gcc, then change the C flags for compiling shared
|
|
1993
|
-
# libraries to the right flags for gcc, instead of those for the
|
|
1994
|
-
# standard manufacturer compiler.
|
|
1995
|
-
|
|
1996
|
-
AS_IF([test "$GCC" = yes], [
|
|
1997
|
-
case $system in
|
|
1998
|
-
AIX-*) ;;
|
|
1999
|
-
BSD/OS*) ;;
|
|
2000
|
-
CYGWIN_*|MINGW32_*) ;;
|
|
2001
|
-
IRIX*) ;;
|
|
2002
|
-
NetBSD-*|FreeBSD-*|OpenBSD-*) ;;
|
|
2003
|
-
Darwin-*) ;;
|
|
2004
|
-
SCO_SV-3.2*) ;;
|
|
2005
|
-
windows) ;;
|
|
2006
|
-
*) SHLIB_CFLAGS="-fPIC" ;;
|
|
2007
|
-
esac])
|
|
2008
|
-
|
|
2009
|
-
AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [
|
|
2010
|
-
AC_DEFINE(MODULE_SCOPE, [extern],
|
|
2011
|
-
[No Compiler support for module scope symbols])
|
|
2012
|
-
])
|
|
2013
|
-
|
|
2014
|
-
AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [
|
|
2015
|
-
# TEA specific: use PACKAGE_VERSION instead of VERSION
|
|
2016
|
-
SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}'])
|
|
2017
|
-
AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [
|
|
2018
|
-
# TEA specific: use PACKAGE_VERSION instead of VERSION
|
|
2019
|
-
UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'])
|
|
2020
|
-
|
|
2021
|
-
if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then
|
|
2022
|
-
AC_CACHE_CHECK(for SEH support in compiler,
|
|
2023
|
-
tcl_cv_seh,
|
|
2024
|
-
AC_TRY_RUN([
|
|
2025
|
-
#define WIN32_LEAN_AND_MEAN
|
|
2026
|
-
#include <windows.h>
|
|
2027
|
-
#undef WIN32_LEAN_AND_MEAN
|
|
2028
|
-
|
|
2029
|
-
int main(int argc, char** argv) {
|
|
2030
|
-
int a, b = 0;
|
|
2031
|
-
__try {
|
|
2032
|
-
a = 666 / b;
|
|
2033
|
-
}
|
|
2034
|
-
__except (EXCEPTION_EXECUTE_HANDLER) {
|
|
2035
|
-
return 0;
|
|
2036
|
-
}
|
|
2037
|
-
return 1;
|
|
2038
|
-
}
|
|
2039
|
-
],
|
|
2040
|
-
tcl_cv_seh=yes,
|
|
2041
|
-
tcl_cv_seh=no,
|
|
2042
|
-
tcl_cv_seh=no)
|
|
2043
|
-
)
|
|
2044
|
-
if test "$tcl_cv_seh" = "no" ; then
|
|
2045
|
-
AC_DEFINE(HAVE_NO_SEH, 1,
|
|
2046
|
-
[Defined when mingw does not support SEH])
|
|
2047
|
-
fi
|
|
2048
|
-
|
|
2049
|
-
#
|
|
2050
|
-
# Check to see if the excpt.h include file provided contains the
|
|
2051
|
-
# definition for EXCEPTION_DISPOSITION; if not, which is the case
|
|
2052
|
-
# with Cygwin's version as of 2002-04-10, define it to be int,
|
|
2053
|
-
# sufficient for getting the current code to work.
|
|
2054
|
-
#
|
|
2055
|
-
AC_CACHE_CHECK(for EXCEPTION_DISPOSITION support in include files,
|
|
2056
|
-
tcl_cv_eh_disposition,
|
|
2057
|
-
AC_TRY_COMPILE([
|
|
2058
|
-
# define WIN32_LEAN_AND_MEAN
|
|
2059
|
-
# include <windows.h>
|
|
2060
|
-
# undef WIN32_LEAN_AND_MEAN
|
|
2061
|
-
],[
|
|
2062
|
-
EXCEPTION_DISPOSITION x;
|
|
2063
|
-
],
|
|
2064
|
-
tcl_cv_eh_disposition=yes,
|
|
2065
|
-
tcl_cv_eh_disposition=no)
|
|
2066
|
-
)
|
|
2067
|
-
if test "$tcl_cv_eh_disposition" = "no" ; then
|
|
2068
|
-
AC_DEFINE(EXCEPTION_DISPOSITION, int,
|
|
2069
|
-
[Defined when cygwin/mingw does not support EXCEPTION DISPOSITION])
|
|
2070
|
-
fi
|
|
2071
|
-
|
|
2072
|
-
# Check to see if winnt.h defines CHAR, SHORT, and LONG
|
|
2073
|
-
# even if VOID has already been #defined. The win32api
|
|
2074
|
-
# used by mingw and cygwin is known to do this.
|
|
2075
|
-
|
|
2076
|
-
AC_CACHE_CHECK(for winnt.h that ignores VOID define,
|
|
2077
|
-
tcl_cv_winnt_ignore_void,
|
|
2078
|
-
AC_TRY_COMPILE([
|
|
2079
|
-
#define VOID void
|
|
2080
|
-
#define WIN32_LEAN_AND_MEAN
|
|
2081
|
-
#include <windows.h>
|
|
2082
|
-
#undef WIN32_LEAN_AND_MEAN
|
|
2083
|
-
], [
|
|
2084
|
-
CHAR c;
|
|
2085
|
-
SHORT s;
|
|
2086
|
-
LONG l;
|
|
2087
|
-
],
|
|
2088
|
-
tcl_cv_winnt_ignore_void=yes,
|
|
2089
|
-
tcl_cv_winnt_ignore_void=no)
|
|
2090
|
-
)
|
|
2091
|
-
if test "$tcl_cv_winnt_ignore_void" = "yes" ; then
|
|
2092
|
-
AC_DEFINE(HAVE_WINNT_IGNORE_VOID, 1,
|
|
2093
|
-
[Defined when cygwin/mingw ignores VOID define in winnt.h])
|
|
2094
|
-
fi
|
|
2095
|
-
fi
|
|
2096
|
-
|
|
2097
|
-
# See if the compiler supports casting to a union type.
|
|
2098
|
-
# This is used to stop gcc from printing a compiler
|
|
2099
|
-
# warning when initializing a union member.
|
|
2100
|
-
|
|
2101
|
-
AC_CACHE_CHECK(for cast to union support,
|
|
2102
|
-
tcl_cv_cast_to_union,
|
|
2103
|
-
AC_TRY_COMPILE([],
|
|
2104
|
-
[
|
|
2105
|
-
union foo { int i; double d; };
|
|
2106
|
-
union foo f = (union foo) (int) 0;
|
|
2107
|
-
],
|
|
2108
|
-
tcl_cv_cast_to_union=yes,
|
|
2109
|
-
tcl_cv_cast_to_union=no)
|
|
2110
|
-
)
|
|
2111
|
-
if test "$tcl_cv_cast_to_union" = "yes"; then
|
|
2112
|
-
AC_DEFINE(HAVE_CAST_TO_UNION, 1,
|
|
2113
|
-
[Defined when compiler supports casting to union type.])
|
|
2114
|
-
fi
|
|
2115
|
-
|
|
2116
|
-
AC_SUBST(CFLAGS_DEBUG)
|
|
2117
|
-
AC_SUBST(CFLAGS_OPTIMIZE)
|
|
2118
|
-
AC_SUBST(CFLAGS_WARNING)
|
|
2119
|
-
|
|
2120
|
-
AC_SUBST(STLIB_LD)
|
|
2121
|
-
AC_SUBST(SHLIB_LD)
|
|
2122
|
-
|
|
2123
|
-
AC_SUBST(SHLIB_LD_LIBS)
|
|
2124
|
-
AC_SUBST(SHLIB_CFLAGS)
|
|
2125
|
-
|
|
2126
|
-
AC_SUBST(LD_LIBRARY_PATH_VAR)
|
|
2127
|
-
|
|
2128
|
-
# These must be called after we do the basic CFLAGS checks and
|
|
2129
|
-
# verify any possible 64-bit or similar switches are necessary
|
|
2130
|
-
TEA_TCL_EARLY_FLAGS
|
|
2131
|
-
TEA_TCL_64BIT_FLAGS
|
|
2132
|
-
])
|
|
2133
|
-
|
|
2134
|
-
#--------------------------------------------------------------------
|
|
2135
|
-
# TEA_SERIAL_PORT
|
|
2136
|
-
#
|
|
2137
|
-
# Determine which interface to use to talk to the serial port.
|
|
2138
|
-
# Note that #include lines must begin in leftmost column for
|
|
2139
|
-
# some compilers to recognize them as preprocessor directives,
|
|
2140
|
-
# and some build environments have stdin not pointing at a
|
|
2141
|
-
# pseudo-terminal (usually /dev/null instead.)
|
|
2142
|
-
#
|
|
2143
|
-
# Arguments:
|
|
2144
|
-
# none
|
|
2145
|
-
#
|
|
2146
|
-
# Results:
|
|
2147
|
-
#
|
|
2148
|
-
# Defines only one of the following vars:
|
|
2149
|
-
# HAVE_SYS_MODEM_H
|
|
2150
|
-
# USE_TERMIOS
|
|
2151
|
-
# USE_TERMIO
|
|
2152
|
-
# USE_SGTTY
|
|
2153
|
-
#--------------------------------------------------------------------
|
|
2154
|
-
|
|
2155
|
-
AC_DEFUN([TEA_SERIAL_PORT], [
|
|
2156
|
-
AC_CHECK_HEADERS(sys/modem.h)
|
|
2157
|
-
AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [
|
|
2158
|
-
AC_TRY_RUN([
|
|
2159
|
-
#include <termios.h>
|
|
2160
|
-
|
|
2161
|
-
int main() {
|
|
2162
|
-
struct termios t;
|
|
2163
|
-
if (tcgetattr(0, &t) == 0) {
|
|
2164
|
-
cfsetospeed(&t, 0);
|
|
2165
|
-
t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
|
|
2166
|
-
return 0;
|
|
2167
|
-
}
|
|
2168
|
-
return 1;
|
|
2169
|
-
}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
|
|
2170
|
-
if test $tcl_cv_api_serial = no ; then
|
|
2171
|
-
AC_TRY_RUN([
|
|
2172
|
-
#include <termio.h>
|
|
2173
|
-
|
|
2174
|
-
int main() {
|
|
2175
|
-
struct termio t;
|
|
2176
|
-
if (ioctl(0, TCGETA, &t) == 0) {
|
|
2177
|
-
t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
|
|
2178
|
-
return 0;
|
|
2179
|
-
}
|
|
2180
|
-
return 1;
|
|
2181
|
-
}], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
|
|
2182
|
-
fi
|
|
2183
|
-
if test $tcl_cv_api_serial = no ; then
|
|
2184
|
-
AC_TRY_RUN([
|
|
2185
|
-
#include <sgtty.h>
|
|
2186
|
-
|
|
2187
|
-
int main() {
|
|
2188
|
-
struct sgttyb t;
|
|
2189
|
-
if (ioctl(0, TIOCGETP, &t) == 0) {
|
|
2190
|
-
t.sg_ospeed = 0;
|
|
2191
|
-
t.sg_flags |= ODDP | EVENP | RAW;
|
|
2192
|
-
return 0;
|
|
2193
|
-
}
|
|
2194
|
-
return 1;
|
|
2195
|
-
}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
|
|
2196
|
-
fi
|
|
2197
|
-
if test $tcl_cv_api_serial = no ; then
|
|
2198
|
-
AC_TRY_RUN([
|
|
2199
|
-
#include <termios.h>
|
|
2200
|
-
#include <errno.h>
|
|
2201
|
-
|
|
2202
|
-
int main() {
|
|
2203
|
-
struct termios t;
|
|
2204
|
-
if (tcgetattr(0, &t) == 0
|
|
2205
|
-
|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
|
|
2206
|
-
cfsetospeed(&t, 0);
|
|
2207
|
-
t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
|
|
2208
|
-
return 0;
|
|
2209
|
-
}
|
|
2210
|
-
return 1;
|
|
2211
|
-
}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
|
|
2212
|
-
fi
|
|
2213
|
-
if test $tcl_cv_api_serial = no; then
|
|
2214
|
-
AC_TRY_RUN([
|
|
2215
|
-
#include <termio.h>
|
|
2216
|
-
#include <errno.h>
|
|
2217
|
-
|
|
2218
|
-
int main() {
|
|
2219
|
-
struct termio t;
|
|
2220
|
-
if (ioctl(0, TCGETA, &t) == 0
|
|
2221
|
-
|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
|
|
2222
|
-
t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
|
|
2223
|
-
return 0;
|
|
2224
|
-
}
|
|
2225
|
-
return 1;
|
|
2226
|
-
}], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
|
|
2227
|
-
fi
|
|
2228
|
-
if test $tcl_cv_api_serial = no; then
|
|
2229
|
-
AC_TRY_RUN([
|
|
2230
|
-
#include <sgtty.h>
|
|
2231
|
-
#include <errno.h>
|
|
2232
|
-
|
|
2233
|
-
int main() {
|
|
2234
|
-
struct sgttyb t;
|
|
2235
|
-
if (ioctl(0, TIOCGETP, &t) == 0
|
|
2236
|
-
|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
|
|
2237
|
-
t.sg_ospeed = 0;
|
|
2238
|
-
t.sg_flags |= ODDP | EVENP | RAW;
|
|
2239
|
-
return 0;
|
|
2240
|
-
}
|
|
2241
|
-
return 1;
|
|
2242
|
-
}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none)
|
|
2243
|
-
fi])
|
|
2244
|
-
case $tcl_cv_api_serial in
|
|
2245
|
-
termios) AC_DEFINE(USE_TERMIOS, 1, [Use the termios API for serial lines]);;
|
|
2246
|
-
termio) AC_DEFINE(USE_TERMIO, 1, [Use the termio API for serial lines]);;
|
|
2247
|
-
sgtty) AC_DEFINE(USE_SGTTY, 1, [Use the sgtty API for serial lines]);;
|
|
2248
|
-
esac
|
|
2249
|
-
])
|
|
2250
|
-
|
|
2251
|
-
#--------------------------------------------------------------------
|
|
2252
|
-
# TEA_MISSING_POSIX_HEADERS
|
|
2253
|
-
#
|
|
2254
|
-
# Supply substitutes for missing POSIX header files. Special
|
|
2255
|
-
# notes:
|
|
2256
|
-
# - stdlib.h doesn't define strtol, strtoul, or
|
|
2257
|
-
# strtod in some versions of SunOS
|
|
2258
|
-
# - some versions of string.h don't declare procedures such
|
|
2259
|
-
# as strstr
|
|
2260
|
-
#
|
|
2261
|
-
# Arguments:
|
|
2262
|
-
# none
|
|
2263
|
-
#
|
|
2264
|
-
# Results:
|
|
2265
|
-
#
|
|
2266
|
-
# Defines some of the following vars:
|
|
2267
|
-
# NO_DIRENT_H
|
|
2268
|
-
# NO_ERRNO_H
|
|
2269
|
-
# NO_VALUES_H
|
|
2270
|
-
# HAVE_LIMITS_H or NO_LIMITS_H
|
|
2271
|
-
# NO_STDLIB_H
|
|
2272
|
-
# NO_STRING_H
|
|
2273
|
-
# NO_SYS_WAIT_H
|
|
2274
|
-
# NO_DLFCN_H
|
|
2275
|
-
# HAVE_SYS_PARAM_H
|
|
2276
|
-
#
|
|
2277
|
-
# HAVE_STRING_H ?
|
|
2278
|
-
#
|
|
2279
|
-
# tkUnixPort.h checks for HAVE_LIMITS_H, so do both HAVE and
|
|
2280
|
-
# CHECK on limits.h
|
|
2281
|
-
#--------------------------------------------------------------------
|
|
2282
|
-
|
|
2283
|
-
AC_DEFUN([TEA_MISSING_POSIX_HEADERS], [
|
|
2284
|
-
AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [
|
|
2285
|
-
AC_TRY_LINK([#include <sys/types.h>
|
|
2286
|
-
#include <dirent.h>], [
|
|
2287
|
-
#ifndef _POSIX_SOURCE
|
|
2288
|
-
# ifdef __Lynx__
|
|
2289
|
-
/*
|
|
2290
|
-
* Generate compilation error to make the test fail: Lynx headers
|
|
2291
|
-
* are only valid if really in the POSIX environment.
|
|
2292
|
-
*/
|
|
2293
|
-
|
|
2294
|
-
missing_procedure();
|
|
2295
|
-
# endif
|
|
2296
|
-
#endif
|
|
2297
|
-
DIR *d;
|
|
2298
|
-
struct dirent *entryPtr;
|
|
2299
|
-
char *p;
|
|
2300
|
-
d = opendir("foobar");
|
|
2301
|
-
entryPtr = readdir(d);
|
|
2302
|
-
p = entryPtr->d_name;
|
|
2303
|
-
closedir(d);
|
|
2304
|
-
], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)])
|
|
2305
|
-
|
|
2306
|
-
if test $tcl_cv_dirent_h = no; then
|
|
2307
|
-
AC_DEFINE(NO_DIRENT_H, 1, [Do we have <dirent.h>?])
|
|
2308
|
-
fi
|
|
2309
|
-
|
|
2310
|
-
# TEA specific:
|
|
2311
|
-
AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H, 1, [Do we have <errno.h>?])])
|
|
2312
|
-
AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H, 1, [Do we have <float.h>?])])
|
|
2313
|
-
AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H, 1, [Do we have <values.h>?])])
|
|
2314
|
-
AC_CHECK_HEADER(limits.h,
|
|
2315
|
-
[AC_DEFINE(HAVE_LIMITS_H, 1, [Do we have <limits.h>?])],
|
|
2316
|
-
[AC_DEFINE(NO_LIMITS_H, 1, [Do we have <limits.h>?])])
|
|
2317
|
-
AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0)
|
|
2318
|
-
AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0)
|
|
2319
|
-
AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0)
|
|
2320
|
-
AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0)
|
|
2321
|
-
if test $tcl_ok = 0; then
|
|
2322
|
-
AC_DEFINE(NO_STDLIB_H, 1, [Do we have <stdlib.h>?])
|
|
2323
|
-
fi
|
|
2324
|
-
AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0)
|
|
2325
|
-
AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0)
|
|
2326
|
-
AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0)
|
|
2327
|
-
|
|
2328
|
-
# See also memmove check below for a place where NO_STRING_H can be
|
|
2329
|
-
# set and why.
|
|
2330
|
-
|
|
2331
|
-
if test $tcl_ok = 0; then
|
|
2332
|
-
AC_DEFINE(NO_STRING_H, 1, [Do we have <string.h>?])
|
|
2333
|
-
fi
|
|
2334
|
-
|
|
2335
|
-
AC_CHECK_HEADER(sys/wait.h, , [AC_DEFINE(NO_SYS_WAIT_H, 1, [Do we have <sys/wait.h>?])])
|
|
2336
|
-
AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H, 1, [Do we have <dlfcn.h>?])])
|
|
2337
|
-
|
|
2338
|
-
# OS/390 lacks sys/param.h (and doesn't need it, by chance).
|
|
2339
|
-
AC_HAVE_HEADERS(sys/param.h)
|
|
2340
|
-
])
|
|
2341
|
-
|
|
2342
|
-
#--------------------------------------------------------------------
|
|
2343
|
-
# TEA_PATH_X
|
|
2344
|
-
#
|
|
2345
|
-
# Locate the X11 header files and the X11 library archive. Try
|
|
2346
|
-
# the ac_path_x macro first, but if it doesn't find the X stuff
|
|
2347
|
-
# (e.g. because there's no xmkmf program) then check through
|
|
2348
|
-
# a list of possible directories. Under some conditions the
|
|
2349
|
-
# autoconf macro will return an include directory that contains
|
|
2350
|
-
# no include files, so double-check its result just to be safe.
|
|
2351
|
-
#
|
|
2352
|
-
# This should be called after TEA_CONFIG_CFLAGS as setting the
|
|
2353
|
-
# LIBS line can confuse some configure macro magic.
|
|
2354
|
-
#
|
|
2355
|
-
# Arguments:
|
|
2356
|
-
# none
|
|
2357
|
-
#
|
|
2358
|
-
# Results:
|
|
2359
|
-
#
|
|
2360
|
-
# Sets the following vars:
|
|
2361
|
-
# XINCLUDES
|
|
2362
|
-
# XLIBSW
|
|
2363
|
-
# PKG_LIBS (appends to)
|
|
2364
|
-
#--------------------------------------------------------------------
|
|
2365
|
-
|
|
2366
|
-
AC_DEFUN([TEA_PATH_X], [
|
|
2367
|
-
if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then
|
|
2368
|
-
TEA_PATH_UNIX_X
|
|
2369
|
-
fi
|
|
2370
|
-
])
|
|
2371
|
-
|
|
2372
|
-
AC_DEFUN([TEA_PATH_UNIX_X], [
|
|
2373
|
-
AC_PATH_X
|
|
2374
|
-
not_really_there=""
|
|
2375
|
-
if test "$no_x" = ""; then
|
|
2376
|
-
if test "$x_includes" = ""; then
|
|
2377
|
-
AC_TRY_CPP([#include <X11/Xlib.h>], , not_really_there="yes")
|
|
2378
|
-
else
|
|
2379
|
-
if test ! -r $x_includes/X11/Xlib.h; then
|
|
2380
|
-
not_really_there="yes"
|
|
2381
|
-
fi
|
|
2382
|
-
fi
|
|
2383
|
-
fi
|
|
2384
|
-
if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
|
|
2385
|
-
AC_MSG_CHECKING([for X11 header files])
|
|
2386
|
-
found_xincludes="no"
|
|
2387
|
-
AC_TRY_CPP([#include <X11/Xlib.h>], found_xincludes="yes", found_xincludes="no")
|
|
2388
|
-
if test "$found_xincludes" = "no"; then
|
|
2389
|
-
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"
|
|
2390
|
-
for i in $dirs ; do
|
|
2391
|
-
if test -r $i/X11/Xlib.h; then
|
|
2392
|
-
AC_MSG_RESULT([$i])
|
|
2393
|
-
XINCLUDES=" -I$i"
|
|
2394
|
-
found_xincludes="yes"
|
|
2395
|
-
break
|
|
2396
|
-
fi
|
|
2397
|
-
done
|
|
2398
|
-
fi
|
|
2399
|
-
else
|
|
2400
|
-
if test "$x_includes" != ""; then
|
|
2401
|
-
XINCLUDES="-I$x_includes"
|
|
2402
|
-
found_xincludes="yes"
|
|
2403
|
-
fi
|
|
2404
|
-
fi
|
|
2405
|
-
if test "$found_xincludes" = "no"; then
|
|
2406
|
-
AC_MSG_RESULT([couldn't find any!])
|
|
2407
|
-
fi
|
|
2408
|
-
|
|
2409
|
-
if test "$no_x" = yes; then
|
|
2410
|
-
AC_MSG_CHECKING([for X11 libraries])
|
|
2411
|
-
XLIBSW=nope
|
|
2412
|
-
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"
|
|
2413
|
-
for i in $dirs ; do
|
|
2414
|
-
if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl -o -r $i/libX11.dylib; then
|
|
2415
|
-
AC_MSG_RESULT([$i])
|
|
2416
|
-
XLIBSW="-L$i -lX11"
|
|
2417
|
-
x_libraries="$i"
|
|
2418
|
-
break
|
|
2419
|
-
fi
|
|
2420
|
-
done
|
|
2421
|
-
else
|
|
2422
|
-
if test "$x_libraries" = ""; then
|
|
2423
|
-
XLIBSW=-lX11
|
|
2424
|
-
else
|
|
2425
|
-
XLIBSW="-L$x_libraries -lX11"
|
|
2426
|
-
fi
|
|
2427
|
-
fi
|
|
2428
|
-
if test "$XLIBSW" = nope ; then
|
|
2429
|
-
AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)
|
|
2430
|
-
fi
|
|
2431
|
-
if test "$XLIBSW" = nope ; then
|
|
2432
|
-
AC_MSG_RESULT([could not find any! Using -lX11.])
|
|
2433
|
-
XLIBSW=-lX11
|
|
2434
|
-
fi
|
|
2435
|
-
# TEA specific:
|
|
2436
|
-
if test x"${XLIBSW}" != x ; then
|
|
2437
|
-
PKG_LIBS="${PKG_LIBS} ${XLIBSW}"
|
|
2438
|
-
fi
|
|
2439
|
-
])
|
|
2440
|
-
|
|
2441
|
-
#--------------------------------------------------------------------
|
|
2442
|
-
# TEA_BLOCKING_STYLE
|
|
2443
|
-
#
|
|
2444
|
-
# The statements below check for systems where POSIX-style
|
|
2445
|
-
# non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented.
|
|
2446
|
-
# On these systems (mostly older ones), use the old BSD-style
|
|
2447
|
-
# FIONBIO approach instead.
|
|
2448
|
-
#
|
|
2449
|
-
# Arguments:
|
|
2450
|
-
# none
|
|
2451
|
-
#
|
|
2452
|
-
# Results:
|
|
2453
|
-
#
|
|
2454
|
-
# Defines some of the following vars:
|
|
2455
|
-
# HAVE_SYS_IOCTL_H
|
|
2456
|
-
# HAVE_SYS_FILIO_H
|
|
2457
|
-
# USE_FIONBIO
|
|
2458
|
-
# O_NONBLOCK
|
|
2459
|
-
#--------------------------------------------------------------------
|
|
2460
|
-
|
|
2461
|
-
AC_DEFUN([TEA_BLOCKING_STYLE], [
|
|
2462
|
-
AC_CHECK_HEADERS(sys/ioctl.h)
|
|
2463
|
-
AC_CHECK_HEADERS(sys/filio.h)
|
|
2464
|
-
TEA_CONFIG_SYSTEM
|
|
2465
|
-
AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])
|
|
2466
|
-
case $system in
|
|
2467
|
-
OSF*)
|
|
2468
|
-
AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?])
|
|
2469
|
-
AC_MSG_RESULT([FIONBIO])
|
|
2470
|
-
;;
|
|
2471
|
-
*)
|
|
2472
|
-
AC_MSG_RESULT([O_NONBLOCK])
|
|
2473
|
-
;;
|
|
2474
|
-
esac
|
|
2475
|
-
])
|
|
2476
|
-
|
|
2477
|
-
#--------------------------------------------------------------------
|
|
2478
|
-
# TEA_TIME_HANDLER
|
|
2479
|
-
#
|
|
2480
|
-
# Checks how the system deals with time.h, what time structures
|
|
2481
|
-
# are used on the system, and what fields the structures have.
|
|
2482
|
-
#
|
|
2483
|
-
# Arguments:
|
|
2484
|
-
# none
|
|
2485
|
-
#
|
|
2486
|
-
# Results:
|
|
2487
|
-
#
|
|
2488
|
-
# Defines some of the following vars:
|
|
2489
|
-
# USE_DELTA_FOR_TZ
|
|
2490
|
-
# HAVE_TM_GMTOFF
|
|
2491
|
-
# HAVE_TM_TZADJ
|
|
2492
|
-
# HAVE_TIMEZONE_VAR
|
|
2493
|
-
#--------------------------------------------------------------------
|
|
2494
|
-
|
|
2495
|
-
AC_DEFUN([TEA_TIME_HANDLER], [
|
|
2496
|
-
AC_CHECK_HEADERS(sys/time.h)
|
|
2497
|
-
AC_HEADER_TIME
|
|
2498
|
-
AC_STRUCT_TIMEZONE
|
|
2499
|
-
|
|
2500
|
-
AC_CHECK_FUNCS(gmtime_r localtime_r)
|
|
2501
|
-
|
|
2502
|
-
AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [
|
|
2503
|
-
AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;],
|
|
2504
|
-
tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)])
|
|
2505
|
-
if test $tcl_cv_member_tm_tzadj = yes ; then
|
|
2506
|
-
AC_DEFINE(HAVE_TM_TZADJ, 1, [Should we use the tm_tzadj field of struct tm?])
|
|
2507
|
-
fi
|
|
2508
|
-
|
|
2509
|
-
AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [
|
|
2510
|
-
AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
|
|
2511
|
-
tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)])
|
|
2512
|
-
if test $tcl_cv_member_tm_gmtoff = yes ; then
|
|
2513
|
-
AC_DEFINE(HAVE_TM_GMTOFF, 1, [Should we use the tm_gmtoff field of struct tm?])
|
|
2514
|
-
fi
|
|
2515
|
-
|
|
2516
|
-
#
|
|
2517
|
-
# Its important to include time.h in this check, as some systems
|
|
2518
|
-
# (like convex) have timezone functions, etc.
|
|
2519
|
-
#
|
|
2520
|
-
AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [
|
|
2521
|
-
AC_TRY_COMPILE([#include <time.h>],
|
|
2522
|
-
[extern long timezone;
|
|
2523
|
-
timezone += 1;
|
|
2524
|
-
exit (0);],
|
|
2525
|
-
tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)])
|
|
2526
|
-
if test $tcl_cv_timezone_long = yes ; then
|
|
2527
|
-
AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
|
|
2528
|
-
else
|
|
2529
|
-
#
|
|
2530
|
-
# On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
|
|
2531
|
-
#
|
|
2532
|
-
AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [
|
|
2533
|
-
AC_TRY_COMPILE([#include <time.h>],
|
|
2534
|
-
[extern time_t timezone;
|
|
2535
|
-
timezone += 1;
|
|
2536
|
-
exit (0);],
|
|
2537
|
-
tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)])
|
|
2538
|
-
if test $tcl_cv_timezone_time = yes ; then
|
|
2539
|
-
AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
|
|
2540
|
-
fi
|
|
2541
|
-
fi
|
|
2542
|
-
])
|
|
2543
|
-
|
|
2544
|
-
#--------------------------------------------------------------------
|
|
2545
|
-
# TEA_BUGGY_STRTOD
|
|
2546
|
-
#
|
|
2547
|
-
# Under Solaris 2.4, strtod returns the wrong value for the
|
|
2548
|
-
# terminating character under some conditions. Check for this
|
|
2549
|
-
# and if the problem exists use a substitute procedure
|
|
2550
|
-
# "fixstrtod" (provided by Tcl) that corrects the error.
|
|
2551
|
-
# Also, on Compaq's Tru64 Unix 5.0,
|
|
2552
|
-
# strtod(" ") returns 0.0 instead of a failure to convert.
|
|
2553
|
-
#
|
|
2554
|
-
# Arguments:
|
|
2555
|
-
# none
|
|
2556
|
-
#
|
|
2557
|
-
# Results:
|
|
2558
|
-
#
|
|
2559
|
-
# Might defines some of the following vars:
|
|
2560
|
-
# strtod (=fixstrtod)
|
|
2561
|
-
#--------------------------------------------------------------------
|
|
2562
|
-
|
|
2563
|
-
AC_DEFUN([TEA_BUGGY_STRTOD], [
|
|
2564
|
-
AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0)
|
|
2565
|
-
if test "$tcl_strtod" = 1; then
|
|
2566
|
-
AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[
|
|
2567
|
-
AC_TRY_RUN([
|
|
2568
|
-
extern double strtod();
|
|
2569
|
-
int main() {
|
|
2570
|
-
char *infString="Inf", *nanString="NaN", *spaceString=" ";
|
|
2571
|
-
char *term;
|
|
2572
|
-
double value;
|
|
2573
|
-
value = strtod(infString, &term);
|
|
2574
|
-
if ((term != infString) && (term[-1] == 0)) {
|
|
2575
|
-
exit(1);
|
|
2576
|
-
}
|
|
2577
|
-
value = strtod(nanString, &term);
|
|
2578
|
-
if ((term != nanString) && (term[-1] == 0)) {
|
|
2579
|
-
exit(1);
|
|
2580
|
-
}
|
|
2581
|
-
value = strtod(spaceString, &term);
|
|
2582
|
-
if (term == (spaceString+1)) {
|
|
2583
|
-
exit(1);
|
|
2584
|
-
}
|
|
2585
|
-
exit(0);
|
|
2586
|
-
}], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy,
|
|
2587
|
-
tcl_cv_strtod_buggy=buggy)])
|
|
2588
|
-
if test "$tcl_cv_strtod_buggy" = buggy; then
|
|
2589
|
-
AC_LIBOBJ([fixstrtod])
|
|
2590
|
-
USE_COMPAT=1
|
|
2591
|
-
AC_DEFINE(strtod, fixstrtod, [Do we want to use the strtod() in compat?])
|
|
2592
|
-
fi
|
|
2593
|
-
fi
|
|
2594
|
-
])
|
|
2595
|
-
|
|
2596
|
-
#--------------------------------------------------------------------
|
|
2597
|
-
# TEA_TCL_LINK_LIBS
|
|
2598
|
-
#
|
|
2599
|
-
# Search for the libraries needed to link the Tcl shell.
|
|
2600
|
-
# Things like the math library (-lm) and socket stuff (-lsocket vs.
|
|
2601
|
-
# -lnsl) are dealt with here.
|
|
2602
|
-
#
|
|
2603
|
-
# Arguments:
|
|
2604
|
-
# Requires the following vars to be set in the Makefile:
|
|
2605
|
-
# DL_LIBS (not in TEA, only needed in core)
|
|
2606
|
-
# LIBS
|
|
2607
|
-
# MATH_LIBS
|
|
2608
|
-
#
|
|
2609
|
-
# Results:
|
|
2610
|
-
#
|
|
2611
|
-
# Substitutes the following vars:
|
|
2612
|
-
# TCL_LIBS
|
|
2613
|
-
# MATH_LIBS
|
|
2614
|
-
#
|
|
2615
|
-
# Might append to the following vars:
|
|
2616
|
-
# LIBS
|
|
2617
|
-
#
|
|
2618
|
-
# Might define the following vars:
|
|
2619
|
-
# HAVE_NET_ERRNO_H
|
|
2620
|
-
#--------------------------------------------------------------------
|
|
2621
|
-
|
|
2622
|
-
AC_DEFUN([TEA_TCL_LINK_LIBS], [
|
|
2623
|
-
#--------------------------------------------------------------------
|
|
2624
|
-
# On a few very rare systems, all of the libm.a stuff is
|
|
2625
|
-
# already in libc.a. Set compiler flags accordingly.
|
|
2626
|
-
# Also, Linux requires the "ieee" library for math to work
|
|
2627
|
-
# right (and it must appear before "-lm").
|
|
2628
|
-
#--------------------------------------------------------------------
|
|
2629
|
-
|
|
2630
|
-
AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
|
|
2631
|
-
AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
|
|
2632
|
-
|
|
2633
|
-
#--------------------------------------------------------------------
|
|
2634
|
-
# Interactive UNIX requires -linet instead of -lsocket, plus it
|
|
2635
|
-
# needs net/errno.h to define the socket-related error codes.
|
|
2636
|
-
#--------------------------------------------------------------------
|
|
2637
|
-
|
|
2638
|
-
AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"])
|
|
2639
|
-
AC_CHECK_HEADER(net/errno.h, [
|
|
2640
|
-
AC_DEFINE(HAVE_NET_ERRNO_H, 1, [Do we have <net/errno.h>?])])
|
|
2641
|
-
|
|
2642
|
-
#--------------------------------------------------------------------
|
|
2643
|
-
# Check for the existence of the -lsocket and -lnsl libraries.
|
|
2644
|
-
# The order here is important, so that they end up in the right
|
|
2645
|
-
# order in the command line generated by make. Here are some
|
|
2646
|
-
# special considerations:
|
|
2647
|
-
# 1. Use "connect" and "accept" to check for -lsocket, and
|
|
2648
|
-
# "gethostbyname" to check for -lnsl.
|
|
2649
|
-
# 2. Use each function name only once: can't redo a check because
|
|
2650
|
-
# autoconf caches the results of the last check and won't redo it.
|
|
2651
|
-
# 3. Use -lnsl and -lsocket only if they supply procedures that
|
|
2652
|
-
# aren't already present in the normal libraries. This is because
|
|
2653
|
-
# IRIX 5.2 has libraries, but they aren't needed and they're
|
|
2654
|
-
# bogus: they goof up name resolution if used.
|
|
2655
|
-
# 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
|
|
2656
|
-
# To get around this problem, check for both libraries together
|
|
2657
|
-
# if -lsocket doesn't work by itself.
|
|
2658
|
-
#--------------------------------------------------------------------
|
|
2659
|
-
|
|
2660
|
-
tcl_checkBoth=0
|
|
2661
|
-
AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1)
|
|
2662
|
-
if test "$tcl_checkSocket" = 1; then
|
|
2663
|
-
AC_CHECK_FUNC(setsockopt, , [AC_CHECK_LIB(socket, setsockopt,
|
|
2664
|
-
LIBS="$LIBS -lsocket", tcl_checkBoth=1)])
|
|
2665
|
-
fi
|
|
2666
|
-
if test "$tcl_checkBoth" = 1; then
|
|
2667
|
-
tk_oldLibs=$LIBS
|
|
2668
|
-
LIBS="$LIBS -lsocket -lnsl"
|
|
2669
|
-
AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs])
|
|
2670
|
-
fi
|
|
2671
|
-
AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, gethostbyname,
|
|
2672
|
-
[LIBS="$LIBS -lnsl"])])
|
|
2673
|
-
|
|
2674
|
-
# TEA specific: Don't perform the eval of the libraries here because
|
|
2675
|
-
# DL_LIBS won't be set until we call TEA_CONFIG_CFLAGS
|
|
2676
|
-
|
|
2677
|
-
TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}'
|
|
2678
|
-
AC_SUBST(TCL_LIBS)
|
|
2679
|
-
AC_SUBST(MATH_LIBS)
|
|
2680
|
-
])
|
|
2681
|
-
|
|
2682
|
-
#--------------------------------------------------------------------
|
|
2683
|
-
# TEA_TCL_EARLY_FLAGS
|
|
2684
|
-
#
|
|
2685
|
-
# Check for what flags are needed to be passed so the correct OS
|
|
2686
|
-
# features are available.
|
|
2687
|
-
#
|
|
2688
|
-
# Arguments:
|
|
2689
|
-
# None
|
|
2690
|
-
#
|
|
2691
|
-
# Results:
|
|
2692
|
-
#
|
|
2693
|
-
# Might define the following vars:
|
|
2694
|
-
# _ISOC99_SOURCE
|
|
2695
|
-
# _LARGEFILE64_SOURCE
|
|
2696
|
-
# _LARGEFILE_SOURCE64
|
|
2697
|
-
#--------------------------------------------------------------------
|
|
2698
|
-
|
|
2699
|
-
AC_DEFUN([TEA_TCL_EARLY_FLAG],[
|
|
2700
|
-
AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]),
|
|
2701
|
-
AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,
|
|
2702
|
-
AC_TRY_COMPILE([[#define ]$1[ 1
|
|
2703
|
-
]$2], $3,
|
|
2704
|
-
[tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes,
|
|
2705
|
-
[tcl_cv_flag_]translit($1,[A-Z],[a-z])=no)))
|
|
2706
|
-
if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then
|
|
2707
|
-
AC_DEFINE($1, 1, [Add the ]$1[ flag when building])
|
|
2708
|
-
tcl_flags="$tcl_flags $1"
|
|
2709
|
-
fi
|
|
2710
|
-
])
|
|
2711
|
-
|
|
2712
|
-
AC_DEFUN([TEA_TCL_EARLY_FLAGS],[
|
|
2713
|
-
AC_MSG_CHECKING([for required early compiler flags])
|
|
2714
|
-
tcl_flags=""
|
|
2715
|
-
TEA_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include <stdlib.h>],
|
|
2716
|
-
[char *p = (char *)strtoll; char *q = (char *)strtoull;])
|
|
2717
|
-
TEA_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include <sys/stat.h>],
|
|
2718
|
-
[struct stat64 buf; int i = stat64("/", &buf);])
|
|
2719
|
-
TEA_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include <sys/stat.h>],
|
|
2720
|
-
[char *p = (char *)open64;])
|
|
2721
|
-
if test "x${tcl_flags}" = "x" ; then
|
|
2722
|
-
AC_MSG_RESULT([none])
|
|
2723
|
-
else
|
|
2724
|
-
AC_MSG_RESULT([${tcl_flags}])
|
|
2725
|
-
fi
|
|
2726
|
-
])
|
|
2727
|
-
|
|
2728
|
-
#--------------------------------------------------------------------
|
|
2729
|
-
# TEA_TCL_64BIT_FLAGS
|
|
2730
|
-
#
|
|
2731
|
-
# Check for what is defined in the way of 64-bit features.
|
|
2732
|
-
#
|
|
2733
|
-
# Arguments:
|
|
2734
|
-
# None
|
|
2735
|
-
#
|
|
2736
|
-
# Results:
|
|
2737
|
-
#
|
|
2738
|
-
# Might define the following vars:
|
|
2739
|
-
# TCL_WIDE_INT_IS_LONG
|
|
2740
|
-
# TCL_WIDE_INT_TYPE
|
|
2741
|
-
# HAVE_STRUCT_DIRENT64
|
|
2742
|
-
# HAVE_STRUCT_STAT64
|
|
2743
|
-
# HAVE_TYPE_OFF64_T
|
|
2744
|
-
#--------------------------------------------------------------------
|
|
2745
|
-
|
|
2746
|
-
AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
|
|
2747
|
-
AC_MSG_CHECKING([for 64-bit integer type])
|
|
2748
|
-
AC_CACHE_VAL(tcl_cv_type_64bit,[
|
|
2749
|
-
tcl_cv_type_64bit=none
|
|
2750
|
-
# See if the compiler knows natively about __int64
|
|
2751
|
-
AC_TRY_COMPILE(,[__int64 value = (__int64) 0;],
|
|
2752
|
-
tcl_type_64bit=__int64, tcl_type_64bit="long long")
|
|
2753
|
-
# See if we should use long anyway Note that we substitute in the
|
|
2754
|
-
# type that is our current guess for a 64-bit type inside this check
|
|
2755
|
-
# program, so it should be modified only carefully...
|
|
2756
|
-
AC_TRY_COMPILE(,[switch (0) {
|
|
2757
|
-
case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ;
|
|
2758
|
-
}],tcl_cv_type_64bit=${tcl_type_64bit})])
|
|
2759
|
-
if test "${tcl_cv_type_64bit}" = none ; then
|
|
2760
|
-
AC_DEFINE(TCL_WIDE_INT_IS_LONG, 1, [Are wide integers to be implemented with C 'long's?])
|
|
2761
|
-
AC_MSG_RESULT([using long])
|
|
2762
|
-
elif test "${tcl_cv_type_64bit}" = "__int64" \
|
|
2763
|
-
-a "${TEA_PLATFORM}" = "windows" ; then
|
|
2764
|
-
# TEA specific: We actually want to use the default tcl.h checks in
|
|
2765
|
-
# this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER*
|
|
2766
|
-
AC_MSG_RESULT([using Tcl header defaults])
|
|
2767
|
-
else
|
|
2768
|
-
AC_DEFINE_UNQUOTED(TCL_WIDE_INT_TYPE,${tcl_cv_type_64bit},
|
|
2769
|
-
[What type should be used to define wide integers?])
|
|
2770
|
-
AC_MSG_RESULT([${tcl_cv_type_64bit}])
|
|
2771
|
-
|
|
2772
|
-
# Now check for auxiliary declarations
|
|
2773
|
-
AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[
|
|
2774
|
-
AC_TRY_COMPILE([#include <sys/types.h>
|
|
2775
|
-
#include <dirent.h>],[struct dirent64 p;],
|
|
2776
|
-
tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)])
|
|
2777
|
-
if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
|
|
2778
|
-
AC_DEFINE(HAVE_STRUCT_DIRENT64, 1, [Is 'struct dirent64' in <sys/types.h>?])
|
|
2779
|
-
fi
|
|
2780
|
-
|
|
2781
|
-
AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[
|
|
2782
|
-
AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat64 p;
|
|
2783
|
-
],
|
|
2784
|
-
tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)])
|
|
2785
|
-
if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
|
|
2786
|
-
AC_DEFINE(HAVE_STRUCT_STAT64, 1, [Is 'struct stat64' in <sys/stat.h>?])
|
|
2787
|
-
fi
|
|
2788
|
-
|
|
2789
|
-
AC_CHECK_FUNCS(open64 lseek64)
|
|
2790
|
-
AC_MSG_CHECKING([for off64_t])
|
|
2791
|
-
AC_CACHE_VAL(tcl_cv_type_off64_t,[
|
|
2792
|
-
AC_TRY_COMPILE([#include <sys/types.h>],[off64_t offset;
|
|
2793
|
-
],
|
|
2794
|
-
tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)])
|
|
2795
|
-
dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the
|
|
2796
|
-
dnl functions lseek64 and open64 are defined.
|
|
2797
|
-
if test "x${tcl_cv_type_off64_t}" = "xyes" && \
|
|
2798
|
-
test "x${ac_cv_func_lseek64}" = "xyes" && \
|
|
2799
|
-
test "x${ac_cv_func_open64}" = "xyes" ; then
|
|
2800
|
-
AC_DEFINE(HAVE_TYPE_OFF64_T, 1, [Is off64_t in <sys/types.h>?])
|
|
2801
|
-
AC_MSG_RESULT([yes])
|
|
2802
|
-
else
|
|
2803
|
-
AC_MSG_RESULT([no])
|
|
2804
|
-
fi
|
|
2805
|
-
fi
|
|
2806
|
-
])
|
|
2807
|
-
|
|
2808
|
-
##
|
|
2809
|
-
## Here ends the standard Tcl configuration bits and starts the
|
|
2810
|
-
## TEA specific functions
|
|
2811
|
-
##
|
|
2812
|
-
|
|
2813
|
-
#------------------------------------------------------------------------
|
|
2814
|
-
# TEA_INIT --
|
|
2815
|
-
#
|
|
2816
|
-
# Init various Tcl Extension Architecture (TEA) variables.
|
|
2817
|
-
# This should be the first called TEA_* macro.
|
|
2818
|
-
#
|
|
2819
|
-
# Arguments:
|
|
2820
|
-
# none
|
|
2821
|
-
#
|
|
2822
|
-
# Results:
|
|
2823
|
-
#
|
|
2824
|
-
# Defines and substs the following vars:
|
|
2825
|
-
# CYGPATH
|
|
2826
|
-
# EXEEXT
|
|
2827
|
-
# Defines only:
|
|
2828
|
-
# TEA_VERSION
|
|
2829
|
-
# TEA_INITED
|
|
2830
|
-
# TEA_PLATFORM (windows or unix)
|
|
2831
|
-
#
|
|
2832
|
-
# "cygpath" is used on windows to generate native path names for include
|
|
2833
|
-
# files. These variables should only be used with the compiler and linker
|
|
2834
|
-
# since they generate native path names.
|
|
2835
|
-
#
|
|
2836
|
-
# EXEEXT
|
|
2837
|
-
# Select the executable extension based on the host type. This
|
|
2838
|
-
# is a lightweight replacement for AC_EXEEXT that doesn't require
|
|
2839
|
-
# a compiler.
|
|
2840
|
-
#------------------------------------------------------------------------
|
|
2841
|
-
|
|
2842
|
-
AC_DEFUN([TEA_INIT], [
|
|
2843
|
-
# TEA extensions pass this us the version of TEA they think they
|
|
2844
|
-
# are compatible with.
|
|
2845
|
-
TEA_VERSION="3.9"
|
|
2846
|
-
|
|
2847
|
-
AC_MSG_CHECKING([for correct TEA configuration])
|
|
2848
|
-
if test x"${PACKAGE_NAME}" = x ; then
|
|
2849
|
-
AC_MSG_ERROR([
|
|
2850
|
-
The PACKAGE_NAME variable must be defined by your TEA configure.in])
|
|
2851
|
-
fi
|
|
2852
|
-
if test x"$1" = x ; then
|
|
2853
|
-
AC_MSG_ERROR([
|
|
2854
|
-
TEA version not specified.])
|
|
2855
|
-
elif test "$1" != "${TEA_VERSION}" ; then
|
|
2856
|
-
AC_MSG_RESULT([warning: requested TEA version "$1", have "${TEA_VERSION}"])
|
|
2857
|
-
else
|
|
2858
|
-
AC_MSG_RESULT([ok (TEA ${TEA_VERSION})])
|
|
2859
|
-
fi
|
|
2860
|
-
|
|
2861
|
-
# If the user did not set CFLAGS, set it now to keep macros
|
|
2862
|
-
# like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2".
|
|
2863
|
-
if test "${CFLAGS+set}" != "set" ; then
|
|
2864
|
-
CFLAGS=""
|
|
2865
|
-
fi
|
|
2866
|
-
|
|
2867
|
-
case "`uname -s`" in
|
|
2868
|
-
*win32*|*WIN32*|*MINGW32_*)
|
|
2869
|
-
AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo)
|
|
2870
|
-
EXEEXT=".exe"
|
|
2871
|
-
TEA_PLATFORM="windows"
|
|
2872
|
-
;;
|
|
2873
|
-
*CYGWIN_*)
|
|
2874
|
-
CYGPATH=echo
|
|
2875
|
-
EXEEXT=".exe"
|
|
2876
|
-
# TEA_PLATFORM is determined later in LOAD_TCLCONFIG
|
|
2877
|
-
;;
|
|
2878
|
-
*)
|
|
2879
|
-
CYGPATH=echo
|
|
2880
|
-
# Maybe we are cross-compiling....
|
|
2881
|
-
case ${host_alias} in
|
|
2882
|
-
*mingw32*)
|
|
2883
|
-
EXEEXT=".exe"
|
|
2884
|
-
TEA_PLATFORM="windows"
|
|
2885
|
-
;;
|
|
2886
|
-
*)
|
|
2887
|
-
EXEEXT=""
|
|
2888
|
-
TEA_PLATFORM="unix"
|
|
2889
|
-
;;
|
|
2890
|
-
esac
|
|
2891
|
-
;;
|
|
2892
|
-
esac
|
|
2893
|
-
|
|
2894
|
-
# Check if exec_prefix is set. If not use fall back to prefix.
|
|
2895
|
-
# Note when adjusted, so that TEA_PREFIX can correct for this.
|
|
2896
|
-
# This is needed for recursive configures, since autoconf propagates
|
|
2897
|
-
# $prefix, but not $exec_prefix (doh!).
|
|
2898
|
-
if test x$exec_prefix = xNONE ; then
|
|
2899
|
-
exec_prefix_default=yes
|
|
2900
|
-
exec_prefix=$prefix
|
|
2901
|
-
fi
|
|
2902
|
-
|
|
2903
|
-
AC_MSG_NOTICE([configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}])
|
|
2904
|
-
|
|
2905
|
-
AC_SUBST(EXEEXT)
|
|
2906
|
-
AC_SUBST(CYGPATH)
|
|
2907
|
-
|
|
2908
|
-
# This package name must be replaced statically for AC_SUBST to work
|
|
2909
|
-
AC_SUBST(PKG_LIB_FILE)
|
|
2910
|
-
# Substitute STUB_LIB_FILE in case package creates a stub library too.
|
|
2911
|
-
AC_SUBST(PKG_STUB_LIB_FILE)
|
|
2912
|
-
|
|
2913
|
-
# We AC_SUBST these here to ensure they are subst'ed,
|
|
2914
|
-
# in case the user doesn't call TEA_ADD_...
|
|
2915
|
-
AC_SUBST(PKG_STUB_SOURCES)
|
|
2916
|
-
AC_SUBST(PKG_STUB_OBJECTS)
|
|
2917
|
-
AC_SUBST(PKG_TCL_SOURCES)
|
|
2918
|
-
AC_SUBST(PKG_HEADERS)
|
|
2919
|
-
AC_SUBST(PKG_INCLUDES)
|
|
2920
|
-
AC_SUBST(PKG_LIBS)
|
|
2921
|
-
AC_SUBST(PKG_CFLAGS)
|
|
2922
|
-
])
|
|
2923
|
-
|
|
2924
|
-
#------------------------------------------------------------------------
|
|
2925
|
-
# TEA_ADD_SOURCES --
|
|
2926
|
-
#
|
|
2927
|
-
# Specify one or more source files. Users should check for
|
|
2928
|
-
# the right platform before adding to their list.
|
|
2929
|
-
# It is not important to specify the directory, as long as it is
|
|
2930
|
-
# in the generic, win or unix subdirectory of $(srcdir).
|
|
2931
|
-
#
|
|
2932
|
-
# Arguments:
|
|
2933
|
-
# one or more file names
|
|
2934
|
-
#
|
|
2935
|
-
# Results:
|
|
2936
|
-
#
|
|
2937
|
-
# Defines and substs the following vars:
|
|
2938
|
-
# PKG_SOURCES
|
|
2939
|
-
# PKG_OBJECTS
|
|
2940
|
-
#------------------------------------------------------------------------
|
|
2941
|
-
AC_DEFUN([TEA_ADD_SOURCES], [
|
|
2942
|
-
vars="$@"
|
|
2943
|
-
for i in $vars; do
|
|
2944
|
-
case $i in
|
|
2945
|
-
[\$]*)
|
|
2946
|
-
# allow $-var names
|
|
2947
|
-
PKG_SOURCES="$PKG_SOURCES $i"
|
|
2948
|
-
PKG_OBJECTS="$PKG_OBJECTS $i"
|
|
2949
|
-
;;
|
|
2950
|
-
*)
|
|
2951
|
-
# check for existence - allows for generic/win/unix VPATH
|
|
2952
|
-
# To add more dirs here (like 'src'), you have to update VPATH
|
|
2953
|
-
# in Makefile.in as well
|
|
2954
|
-
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
|
|
2955
|
-
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
|
|
2956
|
-
-a ! -f "${srcdir}/macosx/$i" \
|
|
2957
|
-
; then
|
|
2958
|
-
AC_MSG_ERROR([could not find source file '$i'])
|
|
2959
|
-
fi
|
|
2960
|
-
PKG_SOURCES="$PKG_SOURCES $i"
|
|
2961
|
-
# this assumes it is in a VPATH dir
|
|
2962
|
-
i=`basename $i`
|
|
2963
|
-
# handle user calling this before or after TEA_SETUP_COMPILER
|
|
2964
|
-
if test x"${OBJEXT}" != x ; then
|
|
2965
|
-
j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
|
|
2966
|
-
else
|
|
2967
|
-
j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
|
|
2968
|
-
fi
|
|
2969
|
-
PKG_OBJECTS="$PKG_OBJECTS $j"
|
|
2970
|
-
;;
|
|
2971
|
-
esac
|
|
2972
|
-
done
|
|
2973
|
-
AC_SUBST(PKG_SOURCES)
|
|
2974
|
-
AC_SUBST(PKG_OBJECTS)
|
|
2975
|
-
])
|
|
2976
|
-
|
|
2977
|
-
#------------------------------------------------------------------------
|
|
2978
|
-
# TEA_ADD_STUB_SOURCES --
|
|
2979
|
-
#
|
|
2980
|
-
# Specify one or more source files. Users should check for
|
|
2981
|
-
# the right platform before adding to their list.
|
|
2982
|
-
# It is not important to specify the directory, as long as it is
|
|
2983
|
-
# in the generic, win or unix subdirectory of $(srcdir).
|
|
2984
|
-
#
|
|
2985
|
-
# Arguments:
|
|
2986
|
-
# one or more file names
|
|
2987
|
-
#
|
|
2988
|
-
# Results:
|
|
2989
|
-
#
|
|
2990
|
-
# Defines and substs the following vars:
|
|
2991
|
-
# PKG_STUB_SOURCES
|
|
2992
|
-
# PKG_STUB_OBJECTS
|
|
2993
|
-
#------------------------------------------------------------------------
|
|
2994
|
-
AC_DEFUN([TEA_ADD_STUB_SOURCES], [
|
|
2995
|
-
vars="$@"
|
|
2996
|
-
for i in $vars; do
|
|
2997
|
-
# check for existence - allows for generic/win/unix VPATH
|
|
2998
|
-
if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \
|
|
2999
|
-
-a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \
|
|
3000
|
-
-a ! -f "${srcdir}/macosx/$i" \
|
|
3001
|
-
; then
|
|
3002
|
-
AC_MSG_ERROR([could not find stub source file '$i'])
|
|
3003
|
-
fi
|
|
3004
|
-
PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i"
|
|
3005
|
-
# this assumes it is in a VPATH dir
|
|
3006
|
-
i=`basename $i`
|
|
3007
|
-
# handle user calling this before or after TEA_SETUP_COMPILER
|
|
3008
|
-
if test x"${OBJEXT}" != x ; then
|
|
3009
|
-
j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
|
|
3010
|
-
else
|
|
3011
|
-
j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
|
|
3012
|
-
fi
|
|
3013
|
-
PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j"
|
|
3014
|
-
done
|
|
3015
|
-
AC_SUBST(PKG_STUB_SOURCES)
|
|
3016
|
-
AC_SUBST(PKG_STUB_OBJECTS)
|
|
3017
|
-
])
|
|
3018
|
-
|
|
3019
|
-
#------------------------------------------------------------------------
|
|
3020
|
-
# TEA_ADD_TCL_SOURCES --
|
|
3021
|
-
#
|
|
3022
|
-
# Specify one or more Tcl source files. These should be platform
|
|
3023
|
-
# independent runtime files.
|
|
3024
|
-
#
|
|
3025
|
-
# Arguments:
|
|
3026
|
-
# one or more file names
|
|
3027
|
-
#
|
|
3028
|
-
# Results:
|
|
3029
|
-
#
|
|
3030
|
-
# Defines and substs the following vars:
|
|
3031
|
-
# PKG_TCL_SOURCES
|
|
3032
|
-
#------------------------------------------------------------------------
|
|
3033
|
-
AC_DEFUN([TEA_ADD_TCL_SOURCES], [
|
|
3034
|
-
vars="$@"
|
|
3035
|
-
for i in $vars; do
|
|
3036
|
-
# check for existence, be strict because it is installed
|
|
3037
|
-
if test ! -f "${srcdir}/$i" ; then
|
|
3038
|
-
AC_MSG_ERROR([could not find tcl source file '${srcdir}/$i'])
|
|
3039
|
-
fi
|
|
3040
|
-
PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i"
|
|
3041
|
-
done
|
|
3042
|
-
AC_SUBST(PKG_TCL_SOURCES)
|
|
3043
|
-
])
|
|
3044
|
-
|
|
3045
|
-
#------------------------------------------------------------------------
|
|
3046
|
-
# TEA_ADD_HEADERS --
|
|
3047
|
-
#
|
|
3048
|
-
# Specify one or more source headers. Users should check for
|
|
3049
|
-
# the right platform before adding to their list.
|
|
3050
|
-
#
|
|
3051
|
-
# Arguments:
|
|
3052
|
-
# one or more file names
|
|
3053
|
-
#
|
|
3054
|
-
# Results:
|
|
3055
|
-
#
|
|
3056
|
-
# Defines and substs the following vars:
|
|
3057
|
-
# PKG_HEADERS
|
|
3058
|
-
#------------------------------------------------------------------------
|
|
3059
|
-
AC_DEFUN([TEA_ADD_HEADERS], [
|
|
3060
|
-
vars="$@"
|
|
3061
|
-
for i in $vars; do
|
|
3062
|
-
# check for existence, be strict because it is installed
|
|
3063
|
-
if test ! -f "${srcdir}/$i" ; then
|
|
3064
|
-
AC_MSG_ERROR([could not find header file '${srcdir}/$i'])
|
|
3065
|
-
fi
|
|
3066
|
-
PKG_HEADERS="$PKG_HEADERS $i"
|
|
3067
|
-
done
|
|
3068
|
-
AC_SUBST(PKG_HEADERS)
|
|
3069
|
-
])
|
|
3070
|
-
|
|
3071
|
-
#------------------------------------------------------------------------
|
|
3072
|
-
# TEA_ADD_INCLUDES --
|
|
3073
|
-
#
|
|
3074
|
-
# Specify one or more include dirs. Users should check for
|
|
3075
|
-
# the right platform before adding to their list.
|
|
3076
|
-
#
|
|
3077
|
-
# Arguments:
|
|
3078
|
-
# one or more file names
|
|
3079
|
-
#
|
|
3080
|
-
# Results:
|
|
3081
|
-
#
|
|
3082
|
-
# Defines and substs the following vars:
|
|
3083
|
-
# PKG_INCLUDES
|
|
3084
|
-
#------------------------------------------------------------------------
|
|
3085
|
-
AC_DEFUN([TEA_ADD_INCLUDES], [
|
|
3086
|
-
vars="$@"
|
|
3087
|
-
for i in $vars; do
|
|
3088
|
-
PKG_INCLUDES="$PKG_INCLUDES $i"
|
|
3089
|
-
done
|
|
3090
|
-
AC_SUBST(PKG_INCLUDES)
|
|
3091
|
-
])
|
|
3092
|
-
|
|
3093
|
-
#------------------------------------------------------------------------
|
|
3094
|
-
# TEA_ADD_LIBS --
|
|
3095
|
-
#
|
|
3096
|
-
# Specify one or more libraries. Users should check for
|
|
3097
|
-
# the right platform before adding to their list. For Windows,
|
|
3098
|
-
# libraries provided in "foo.lib" format will be converted to
|
|
3099
|
-
# "-lfoo" when using GCC (mingw).
|
|
3100
|
-
#
|
|
3101
|
-
# Arguments:
|
|
3102
|
-
# one or more file names
|
|
3103
|
-
#
|
|
3104
|
-
# Results:
|
|
3105
|
-
#
|
|
3106
|
-
# Defines and substs the following vars:
|
|
3107
|
-
# PKG_LIBS
|
|
3108
|
-
#------------------------------------------------------------------------
|
|
3109
|
-
AC_DEFUN([TEA_ADD_LIBS], [
|
|
3110
|
-
vars="$@"
|
|
3111
|
-
for i in $vars; do
|
|
3112
|
-
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
|
|
3113
|
-
# Convert foo.lib to -lfoo for GCC. No-op if not *.lib
|
|
3114
|
-
i=`echo "$i" | sed -e 's/^\([[^-]].*\)\.lib[$]/-l\1/i'`
|
|
3115
|
-
fi
|
|
3116
|
-
PKG_LIBS="$PKG_LIBS $i"
|
|
3117
|
-
done
|
|
3118
|
-
AC_SUBST(PKG_LIBS)
|
|
3119
|
-
])
|
|
3120
|
-
|
|
3121
|
-
#------------------------------------------------------------------------
|
|
3122
|
-
# TEA_ADD_CFLAGS --
|
|
3123
|
-
#
|
|
3124
|
-
# Specify one or more CFLAGS. Users should check for
|
|
3125
|
-
# the right platform before adding to their list.
|
|
3126
|
-
#
|
|
3127
|
-
# Arguments:
|
|
3128
|
-
# one or more file names
|
|
3129
|
-
#
|
|
3130
|
-
# Results:
|
|
3131
|
-
#
|
|
3132
|
-
# Defines and substs the following vars:
|
|
3133
|
-
# PKG_CFLAGS
|
|
3134
|
-
#------------------------------------------------------------------------
|
|
3135
|
-
AC_DEFUN([TEA_ADD_CFLAGS], [
|
|
3136
|
-
PKG_CFLAGS="$PKG_CFLAGS $@"
|
|
3137
|
-
AC_SUBST(PKG_CFLAGS)
|
|
3138
|
-
])
|
|
3139
|
-
|
|
3140
|
-
#------------------------------------------------------------------------
|
|
3141
|
-
# TEA_ADD_CLEANFILES --
|
|
3142
|
-
#
|
|
3143
|
-
# Specify one or more CLEANFILES.
|
|
3144
|
-
#
|
|
3145
|
-
# Arguments:
|
|
3146
|
-
# one or more file names to clean target
|
|
3147
|
-
#
|
|
3148
|
-
# Results:
|
|
3149
|
-
#
|
|
3150
|
-
# Appends to CLEANFILES, already defined for subst in LOAD_TCLCONFIG
|
|
3151
|
-
#------------------------------------------------------------------------
|
|
3152
|
-
AC_DEFUN([TEA_ADD_CLEANFILES], [
|
|
3153
|
-
CLEANFILES="$CLEANFILES $@"
|
|
3154
|
-
])
|
|
3155
|
-
|
|
3156
|
-
#------------------------------------------------------------------------
|
|
3157
|
-
# TEA_PREFIX --
|
|
3158
|
-
#
|
|
3159
|
-
# Handle the --prefix=... option by defaulting to what Tcl gave
|
|
3160
|
-
#
|
|
3161
|
-
# Arguments:
|
|
3162
|
-
# none
|
|
3163
|
-
#
|
|
3164
|
-
# Results:
|
|
3165
|
-
#
|
|
3166
|
-
# If --prefix or --exec-prefix was not specified, $prefix and
|
|
3167
|
-
# $exec_prefix will be set to the values given to Tcl when it was
|
|
3168
|
-
# configured.
|
|
3169
|
-
#------------------------------------------------------------------------
|
|
3170
|
-
AC_DEFUN([TEA_PREFIX], [
|
|
3171
|
-
if test "${prefix}" = "NONE"; then
|
|
3172
|
-
prefix_default=yes
|
|
3173
|
-
if test x"${TCL_PREFIX}" != x; then
|
|
3174
|
-
AC_MSG_NOTICE([--prefix defaulting to TCL_PREFIX ${TCL_PREFIX}])
|
|
3175
|
-
prefix=${TCL_PREFIX}
|
|
3176
|
-
else
|
|
3177
|
-
AC_MSG_NOTICE([--prefix defaulting to /usr/local])
|
|
3178
|
-
prefix=/usr/local
|
|
3179
|
-
fi
|
|
3180
|
-
fi
|
|
3181
|
-
if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \
|
|
3182
|
-
-o x"${exec_prefix_default}" = x"yes" ; then
|
|
3183
|
-
if test x"${TCL_EXEC_PREFIX}" != x; then
|
|
3184
|
-
AC_MSG_NOTICE([--exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}])
|
|
3185
|
-
exec_prefix=${TCL_EXEC_PREFIX}
|
|
3186
|
-
else
|
|
3187
|
-
AC_MSG_NOTICE([--exec-prefix defaulting to ${prefix}])
|
|
3188
|
-
exec_prefix=$prefix
|
|
3189
|
-
fi
|
|
3190
|
-
fi
|
|
3191
|
-
])
|
|
3192
|
-
|
|
3193
|
-
#------------------------------------------------------------------------
|
|
3194
|
-
# TEA_SETUP_COMPILER_CC --
|
|
3195
|
-
#
|
|
3196
|
-
# Do compiler checks the way we want. This is just a replacement
|
|
3197
|
-
# for AC_PROG_CC in TEA configure.in files to make them cleaner.
|
|
3198
|
-
#
|
|
3199
|
-
# Arguments:
|
|
3200
|
-
# none
|
|
3201
|
-
#
|
|
3202
|
-
# Results:
|
|
3203
|
-
#
|
|
3204
|
-
# Sets up CC var and other standard bits we need to make executables.
|
|
3205
|
-
#------------------------------------------------------------------------
|
|
3206
|
-
AC_DEFUN([TEA_SETUP_COMPILER_CC], [
|
|
3207
|
-
# Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE)
|
|
3208
|
-
# in this macro, they need to go into TEA_SETUP_COMPILER instead.
|
|
3209
|
-
|
|
3210
|
-
AC_PROG_CC
|
|
3211
|
-
AC_PROG_CPP
|
|
3212
|
-
|
|
3213
|
-
INSTALL="\$(SHELL) \$(srcdir)/tclconfig/install-sh -c"
|
|
3214
|
-
AC_SUBST(INSTALL)
|
|
3215
|
-
INSTALL_DATA="\${INSTALL} -m 644"
|
|
3216
|
-
AC_SUBST(INSTALL_DATA)
|
|
3217
|
-
INSTALL_PROGRAM="\${INSTALL}"
|
|
3218
|
-
AC_SUBST(INSTALL_PROGRAM)
|
|
3219
|
-
INSTALL_SCRIPT="\${INSTALL}"
|
|
3220
|
-
AC_SUBST(INSTALL_SCRIPT)
|
|
3221
|
-
|
|
3222
|
-
#--------------------------------------------------------------------
|
|
3223
|
-
# Checks to see if the make program sets the $MAKE variable.
|
|
3224
|
-
#--------------------------------------------------------------------
|
|
3225
|
-
|
|
3226
|
-
AC_PROG_MAKE_SET
|
|
3227
|
-
|
|
3228
|
-
#--------------------------------------------------------------------
|
|
3229
|
-
# Find ranlib
|
|
3230
|
-
#--------------------------------------------------------------------
|
|
3231
|
-
|
|
3232
|
-
AC_CHECK_TOOL(RANLIB, ranlib)
|
|
3233
|
-
|
|
3234
|
-
#--------------------------------------------------------------------
|
|
3235
|
-
# Determines the correct binary file extension (.o, .obj, .exe etc.)
|
|
3236
|
-
#--------------------------------------------------------------------
|
|
3237
|
-
|
|
3238
|
-
AC_OBJEXT
|
|
3239
|
-
AC_EXEEXT
|
|
3240
|
-
])
|
|
3241
|
-
|
|
3242
|
-
#------------------------------------------------------------------------
|
|
3243
|
-
# TEA_SETUP_COMPILER --
|
|
3244
|
-
#
|
|
3245
|
-
# Do compiler checks that use the compiler. This must go after
|
|
3246
|
-
# TEA_SETUP_COMPILER_CC, which does the actual compiler check.
|
|
3247
|
-
#
|
|
3248
|
-
# Arguments:
|
|
3249
|
-
# none
|
|
3250
|
-
#
|
|
3251
|
-
# Results:
|
|
3252
|
-
#
|
|
3253
|
-
# Sets up CC var and other standard bits we need to make executables.
|
|
3254
|
-
#------------------------------------------------------------------------
|
|
3255
|
-
AC_DEFUN([TEA_SETUP_COMPILER], [
|
|
3256
|
-
# Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here.
|
|
3257
|
-
AC_REQUIRE([TEA_SETUP_COMPILER_CC])
|
|
3258
|
-
|
|
3259
|
-
#------------------------------------------------------------------------
|
|
3260
|
-
# If we're using GCC, see if the compiler understands -pipe. If so, use it.
|
|
3261
|
-
# It makes compiling go faster. (This is only a performance feature.)
|
|
3262
|
-
#------------------------------------------------------------------------
|
|
3263
|
-
|
|
3264
|
-
if test -z "$no_pipe" -a -n "$GCC"; then
|
|
3265
|
-
AC_CACHE_CHECK([if the compiler understands -pipe],
|
|
3266
|
-
tcl_cv_cc_pipe, [
|
|
3267
|
-
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe"
|
|
3268
|
-
AC_TRY_COMPILE(,, tcl_cv_cc_pipe=yes, tcl_cv_cc_pipe=no)
|
|
3269
|
-
CFLAGS=$hold_cflags])
|
|
3270
|
-
if test $tcl_cv_cc_pipe = yes; then
|
|
3271
|
-
CFLAGS="$CFLAGS -pipe"
|
|
3272
|
-
fi
|
|
3273
|
-
fi
|
|
3274
|
-
|
|
3275
|
-
#--------------------------------------------------------------------
|
|
3276
|
-
# Common compiler flag setup
|
|
3277
|
-
#--------------------------------------------------------------------
|
|
3278
|
-
|
|
3279
|
-
AC_C_BIGENDIAN
|
|
3280
|
-
if test "${TEA_PLATFORM}" = "unix" ; then
|
|
3281
|
-
TEA_TCL_LINK_LIBS
|
|
3282
|
-
TEA_MISSING_POSIX_HEADERS
|
|
3283
|
-
# Let the user call this, because if it triggers, they will
|
|
3284
|
-
# need a compat/strtod.c that is correct. Users can also
|
|
3285
|
-
# use Tcl_GetDouble(FromObj) instead.
|
|
3286
|
-
#TEA_BUGGY_STRTOD
|
|
3287
|
-
fi
|
|
3288
|
-
])
|
|
3289
|
-
|
|
3290
|
-
#------------------------------------------------------------------------
|
|
3291
|
-
# TEA_MAKE_LIB --
|
|
3292
|
-
#
|
|
3293
|
-
# Generate a line that can be used to build a shared/unshared library
|
|
3294
|
-
# in a platform independent manner.
|
|
3295
|
-
#
|
|
3296
|
-
# Arguments:
|
|
3297
|
-
# none
|
|
3298
|
-
#
|
|
3299
|
-
# Requires:
|
|
3300
|
-
#
|
|
3301
|
-
# Results:
|
|
3302
|
-
#
|
|
3303
|
-
# Defines the following vars:
|
|
3304
|
-
# CFLAGS - Done late here to note disturb other AC macros
|
|
3305
|
-
# MAKE_LIB - Command to execute to build the Tcl library;
|
|
3306
|
-
# differs depending on whether or not Tcl is being
|
|
3307
|
-
# compiled as a shared library.
|
|
3308
|
-
# MAKE_SHARED_LIB Makefile rule for building a shared library
|
|
3309
|
-
# MAKE_STATIC_LIB Makefile rule for building a static library
|
|
3310
|
-
# MAKE_STUB_LIB Makefile rule for building a stub library
|
|
3311
|
-
# VC_MANIFEST_EMBED_DLL Makefile rule for embedded VC manifest in DLL
|
|
3312
|
-
# VC_MANIFEST_EMBED_EXE Makefile rule for embedded VC manifest in EXE
|
|
3313
|
-
#------------------------------------------------------------------------
|
|
3314
|
-
|
|
3315
|
-
AC_DEFUN([TEA_MAKE_LIB], [
|
|
3316
|
-
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
|
|
3317
|
-
MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)"
|
|
3318
|
-
MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)"
|
|
3319
|
-
AC_EGREP_CPP([manifest needed], [
|
|
3320
|
-
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
|
3321
|
-
print("manifest needed")
|
|
3322
|
-
#endif
|
|
3323
|
-
], [
|
|
3324
|
-
# Could do a CHECK_PROG for mt, but should always be with MSVC8+
|
|
3325
|
-
VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;2 ; fi"
|
|
3326
|
-
VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;1 ; fi"
|
|
3327
|
-
MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}"
|
|
3328
|
-
TEA_ADD_CLEANFILES([*.manifest])
|
|
3329
|
-
])
|
|
3330
|
-
MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\[$]@ \$(PKG_STUB_OBJECTS)"
|
|
3331
|
-
else
|
|
3332
|
-
MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)"
|
|
3333
|
-
MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}"
|
|
3334
|
-
MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)"
|
|
3335
|
-
fi
|
|
3336
|
-
|
|
3337
|
-
if test "${SHARED_BUILD}" = "1" ; then
|
|
3338
|
-
MAKE_LIB="${MAKE_SHARED_LIB} "
|
|
3339
|
-
else
|
|
3340
|
-
MAKE_LIB="${MAKE_STATIC_LIB} "
|
|
3341
|
-
fi
|
|
3342
|
-
|
|
3343
|
-
#--------------------------------------------------------------------
|
|
3344
|
-
# Shared libraries and static libraries have different names.
|
|
3345
|
-
# Use the double eval to make sure any variables in the suffix is
|
|
3346
|
-
# substituted. (@@@ Might not be necessary anymore)
|
|
3347
|
-
#--------------------------------------------------------------------
|
|
3348
|
-
|
|
3349
|
-
if test "${TEA_PLATFORM}" = "windows" ; then
|
|
3350
|
-
if test "${SHARED_BUILD}" = "1" ; then
|
|
3351
|
-
# We force the unresolved linking of symbols that are really in
|
|
3352
|
-
# the private libraries of Tcl and Tk.
|
|
3353
|
-
if test x"${TK_BIN_DIR}" != x ; then
|
|
3354
|
-
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
|
|
3355
|
-
fi
|
|
3356
|
-
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
|
|
3357
|
-
if test "$GCC" = "yes"; then
|
|
3358
|
-
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc"
|
|
3359
|
-
fi
|
|
3360
|
-
eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
|
|
3361
|
-
else
|
|
3362
|
-
eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
|
|
3363
|
-
if test "$GCC" = "yes"; then
|
|
3364
|
-
PKG_LIB_FILE=lib${PKG_LIB_FILE}
|
|
3365
|
-
fi
|
|
3366
|
-
fi
|
|
3367
|
-
# Some packages build their own stubs libraries
|
|
3368
|
-
eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
|
|
3369
|
-
if test "$GCC" = "yes"; then
|
|
3370
|
-
PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
|
|
3371
|
-
fi
|
|
3372
|
-
# These aren't needed on Windows (either MSVC or gcc)
|
|
3373
|
-
RANLIB=:
|
|
3374
|
-
RANLIB_STUB=:
|
|
3375
|
-
else
|
|
3376
|
-
RANLIB_STUB="${RANLIB}"
|
|
3377
|
-
if test "${SHARED_BUILD}" = "1" ; then
|
|
3378
|
-
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
|
|
3379
|
-
if test x"${TK_BIN_DIR}" != x ; then
|
|
3380
|
-
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
|
|
3381
|
-
fi
|
|
3382
|
-
eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
|
|
3383
|
-
RANLIB=:
|
|
3384
|
-
else
|
|
3385
|
-
eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
|
|
3386
|
-
fi
|
|
3387
|
-
# Some packages build their own stubs libraries
|
|
3388
|
-
eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
|
|
3389
|
-
fi
|
|
3390
|
-
|
|
3391
|
-
# These are escaped so that only CFLAGS is picked up at configure time.
|
|
3392
|
-
# The other values will be substituted at make time.
|
|
3393
|
-
CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}"
|
|
3394
|
-
if test "${SHARED_BUILD}" = "1" ; then
|
|
3395
|
-
CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}"
|
|
3396
|
-
fi
|
|
3397
|
-
|
|
3398
|
-
AC_SUBST(MAKE_LIB)
|
|
3399
|
-
AC_SUBST(MAKE_SHARED_LIB)
|
|
3400
|
-
AC_SUBST(MAKE_STATIC_LIB)
|
|
3401
|
-
AC_SUBST(MAKE_STUB_LIB)
|
|
3402
|
-
AC_SUBST(RANLIB_STUB)
|
|
3403
|
-
AC_SUBST(VC_MANIFEST_EMBED_DLL)
|
|
3404
|
-
AC_SUBST(VC_MANIFEST_EMBED_EXE)
|
|
3405
|
-
])
|
|
3406
|
-
|
|
3407
|
-
#------------------------------------------------------------------------
|
|
3408
|
-
# TEA_LIB_SPEC --
|
|
3409
|
-
#
|
|
3410
|
-
# Compute the name of an existing object library located in libdir
|
|
3411
|
-
# from the given base name and produce the appropriate linker flags.
|
|
3412
|
-
#
|
|
3413
|
-
# Arguments:
|
|
3414
|
-
# basename The base name of the library without version
|
|
3415
|
-
# numbers, extensions, or "lib" prefixes.
|
|
3416
|
-
# extra_dir Extra directory in which to search for the
|
|
3417
|
-
# library. This location is used first, then
|
|
3418
|
-
# $prefix/$exec-prefix, then some defaults.
|
|
3419
|
-
#
|
|
3420
|
-
# Requires:
|
|
3421
|
-
# TEA_INIT and TEA_PREFIX must be called first.
|
|
3422
|
-
#
|
|
3423
|
-
# Results:
|
|
3424
|
-
#
|
|
3425
|
-
# Defines the following vars:
|
|
3426
|
-
# ${basename}_LIB_NAME The computed library name.
|
|
3427
|
-
# ${basename}_LIB_SPEC The computed linker flags.
|
|
3428
|
-
#------------------------------------------------------------------------
|
|
3429
|
-
|
|
3430
|
-
AC_DEFUN([TEA_LIB_SPEC], [
|
|
3431
|
-
AC_MSG_CHECKING([for $1 library])
|
|
3432
|
-
|
|
3433
|
-
# Look in exec-prefix for the library (defined by TEA_PREFIX).
|
|
3434
|
-
|
|
3435
|
-
tea_lib_name_dir="${exec_prefix}/lib"
|
|
3436
|
-
|
|
3437
|
-
# Or in a user-specified location.
|
|
3438
|
-
|
|
3439
|
-
if test x"$2" != x ; then
|
|
3440
|
-
tea_extra_lib_dir=$2
|
|
3441
|
-
else
|
|
3442
|
-
tea_extra_lib_dir=NONE
|
|
3443
|
-
fi
|
|
3444
|
-
|
|
3445
|
-
for i in \
|
|
3446
|
-
`ls -dr ${tea_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
|
|
3447
|
-
`ls -dr ${tea_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \
|
|
3448
|
-
`ls -dr ${tea_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
|
|
3449
|
-
`ls -dr ${tea_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \
|
|
3450
|
-
`ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \
|
|
3451
|
-
`ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \
|
|
3452
|
-
`ls -dr /usr/lib64/$1[[0-9]]*.lib 2>/dev/null ` \
|
|
3453
|
-
`ls -dr /usr/lib64/lib$1[[0-9]]* 2>/dev/null ` \
|
|
3454
|
-
`ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \
|
|
3455
|
-
`ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` ; do
|
|
3456
|
-
if test -f "$i" ; then
|
|
3457
|
-
tea_lib_name_dir=`dirname $i`
|
|
3458
|
-
$1_LIB_NAME=`basename $i`
|
|
3459
|
-
$1_LIB_PATH_NAME=$i
|
|
3460
|
-
break
|
|
3461
|
-
fi
|
|
3462
|
-
done
|
|
3463
|
-
|
|
3464
|
-
if test "${TEA_PLATFORM}" = "windows"; then
|
|
3465
|
-
$1_LIB_SPEC=\"`${CYGPATH} ${$1_LIB_PATH_NAME} 2>/dev/null`\"
|
|
3466
|
-
else
|
|
3467
|
-
# Strip off the leading "lib" and trailing ".a" or ".so"
|
|
3468
|
-
|
|
3469
|
-
tea_lib_name_lib=`echo ${$1_LIB_NAME}|sed -e 's/^lib//' -e 's/\.[[^.]]*$//' -e 's/\.so.*//'`
|
|
3470
|
-
$1_LIB_SPEC="-L${tea_lib_name_dir} -l${tea_lib_name_lib}"
|
|
3471
|
-
fi
|
|
3472
|
-
|
|
3473
|
-
if test "x${$1_LIB_NAME}" = x ; then
|
|
3474
|
-
AC_MSG_ERROR([not found])
|
|
3475
|
-
else
|
|
3476
|
-
AC_MSG_RESULT([${$1_LIB_SPEC}])
|
|
3477
|
-
fi
|
|
3478
|
-
])
|
|
3479
|
-
|
|
3480
|
-
#------------------------------------------------------------------------
|
|
3481
|
-
# TEA_PRIVATE_TCL_HEADERS --
|
|
3482
|
-
#
|
|
3483
|
-
# Locate the private Tcl include files
|
|
3484
|
-
#
|
|
3485
|
-
# Arguments:
|
|
3486
|
-
#
|
|
3487
|
-
# Requires:
|
|
3488
|
-
# TCL_SRC_DIR Assumes that TEA_LOAD_TCLCONFIG has
|
|
3489
|
-
# already been called.
|
|
3490
|
-
#
|
|
3491
|
-
# Results:
|
|
3492
|
-
#
|
|
3493
|
-
# Substitutes the following vars:
|
|
3494
|
-
# TCL_TOP_DIR_NATIVE
|
|
3495
|
-
# TCL_INCLUDES
|
|
3496
|
-
#------------------------------------------------------------------------
|
|
3497
|
-
|
|
3498
|
-
AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [
|
|
3499
|
-
# Allow for --with-tclinclude to take effect and define ${ac_cv_c_tclh}
|
|
3500
|
-
AC_REQUIRE([TEA_PUBLIC_TCL_HEADERS])
|
|
3501
|
-
AC_MSG_CHECKING([for Tcl private include files])
|
|
3502
|
-
|
|
3503
|
-
TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}`
|
|
3504
|
-
TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\"
|
|
3505
|
-
|
|
3506
|
-
# Check to see if tcl<Plat>Port.h isn't already with the public headers
|
|
3507
|
-
# Don't look for tclInt.h because that resides with tcl.h in the core
|
|
3508
|
-
# sources, but the <plat>Port headers are in a different directory
|
|
3509
|
-
if test "${TEA_PLATFORM}" = "windows" -a \
|
|
3510
|
-
-f "${ac_cv_c_tclh}/tclWinPort.h"; then
|
|
3511
|
-
result="private headers found with public headers"
|
|
3512
|
-
elif test "${TEA_PLATFORM}" = "unix" -a \
|
|
3513
|
-
-f "${ac_cv_c_tclh}/tclUnixPort.h"; then
|
|
3514
|
-
result="private headers found with public headers"
|
|
3515
|
-
else
|
|
3516
|
-
TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\"
|
|
3517
|
-
if test "${TEA_PLATFORM}" = "windows"; then
|
|
3518
|
-
TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\"
|
|
3519
|
-
else
|
|
3520
|
-
TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\"
|
|
3521
|
-
fi
|
|
3522
|
-
# Overwrite the previous TCL_INCLUDES as this should capture both
|
|
3523
|
-
# public and private headers in the same set.
|
|
3524
|
-
# We want to ensure these are substituted so as not to require
|
|
3525
|
-
# any *_NATIVE vars be defined in the Makefile
|
|
3526
|
-
TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
|
|
3527
|
-
if test "`uname -s`" = "Darwin"; then
|
|
3528
|
-
# If Tcl was built as a framework, attempt to use
|
|
3529
|
-
# the framework's Headers and PrivateHeaders directories
|
|
3530
|
-
case ${TCL_DEFS} in
|
|
3531
|
-
*TCL_FRAMEWORK*)
|
|
3532
|
-
if test -d "${TCL_BIN_DIR}/Headers" -a \
|
|
3533
|
-
-d "${TCL_BIN_DIR}/PrivateHeaders"; then
|
|
3534
|
-
TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"
|
|
3535
|
-
else
|
|
3536
|
-
TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
|
|
3537
|
-
fi
|
|
3538
|
-
;;
|
|
3539
|
-
esac
|
|
3540
|
-
result="Using ${TCL_INCLUDES}"
|
|
3541
|
-
else
|
|
3542
|
-
if test ! -f "${TCL_SRC_DIR}/generic/tclInt.h" ; then
|
|
3543
|
-
AC_MSG_ERROR([Cannot find private header tclInt.h in ${TCL_SRC_DIR}])
|
|
3544
|
-
fi
|
|
3545
|
-
result="Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}"
|
|
3546
|
-
fi
|
|
3547
|
-
fi
|
|
3548
|
-
|
|
3549
|
-
AC_SUBST(TCL_TOP_DIR_NATIVE)
|
|
3550
|
-
|
|
3551
|
-
AC_SUBST(TCL_INCLUDES)
|
|
3552
|
-
AC_MSG_RESULT([${result}])
|
|
3553
|
-
])
|
|
3554
|
-
|
|
3555
|
-
#------------------------------------------------------------------------
|
|
3556
|
-
# TEA_PUBLIC_TCL_HEADERS --
|
|
3557
|
-
#
|
|
3558
|
-
# Locate the installed public Tcl header files
|
|
3559
|
-
#
|
|
3560
|
-
# Arguments:
|
|
3561
|
-
# None.
|
|
3562
|
-
#
|
|
3563
|
-
# Requires:
|
|
3564
|
-
# CYGPATH must be set
|
|
3565
|
-
#
|
|
3566
|
-
# Results:
|
|
3567
|
-
#
|
|
3568
|
-
# Adds a --with-tclinclude switch to configure.
|
|
3569
|
-
# Result is cached.
|
|
3570
|
-
#
|
|
3571
|
-
# Substitutes the following vars:
|
|
3572
|
-
# TCL_INCLUDES
|
|
3573
|
-
#------------------------------------------------------------------------
|
|
3574
|
-
|
|
3575
|
-
AC_DEFUN([TEA_PUBLIC_TCL_HEADERS], [
|
|
3576
|
-
AC_MSG_CHECKING([for Tcl public headers])
|
|
3577
|
-
|
|
3578
|
-
AC_ARG_WITH(tclinclude, [ --with-tclinclude directory containing the public Tcl header files], with_tclinclude=${withval})
|
|
3579
|
-
|
|
3580
|
-
AC_CACHE_VAL(ac_cv_c_tclh, [
|
|
3581
|
-
# Use the value from --with-tclinclude, if it was given
|
|
3582
|
-
|
|
3583
|
-
if test x"${with_tclinclude}" != x ; then
|
|
3584
|
-
if test -f "${with_tclinclude}/tcl.h" ; then
|
|
3585
|
-
ac_cv_c_tclh=${with_tclinclude}
|
|
3586
|
-
else
|
|
3587
|
-
AC_MSG_ERROR([${with_tclinclude} directory does not contain tcl.h])
|
|
3588
|
-
fi
|
|
3589
|
-
else
|
|
3590
|
-
list=""
|
|
3591
|
-
if test "`uname -s`" = "Darwin"; then
|
|
3592
|
-
# If Tcl was built as a framework, attempt to use
|
|
3593
|
-
# the framework's Headers directory
|
|
3594
|
-
case ${TCL_DEFS} in
|
|
3595
|
-
*TCL_FRAMEWORK*)
|
|
3596
|
-
list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`"
|
|
3597
|
-
;;
|
|
3598
|
-
esac
|
|
3599
|
-
fi
|
|
3600
|
-
|
|
3601
|
-
# Look in the source dir only if Tcl is not installed,
|
|
3602
|
-
# and in that situation, look there before installed locations.
|
|
3603
|
-
if test -f "${TCL_BIN_DIR}/Makefile" ; then
|
|
3604
|
-
list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`"
|
|
3605
|
-
fi
|
|
3606
|
-
|
|
3607
|
-
# Check order: pkg --prefix location, Tcl's --prefix location,
|
|
3608
|
-
# relative to directory of tclConfig.sh.
|
|
3609
|
-
|
|
3610
|
-
eval "temp_includedir=${includedir}"
|
|
3611
|
-
list="$list \
|
|
3612
|
-
`ls -d ${temp_includedir} 2>/dev/null` \
|
|
3613
|
-
`ls -d ${TCL_PREFIX}/include 2>/dev/null` \
|
|
3614
|
-
`ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
|
|
3615
|
-
if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
|
|
3616
|
-
list="$list /usr/local/include /usr/include"
|
|
3617
|
-
if test x"${TCL_INCLUDE_SPEC}" != x ; then
|
|
3618
|
-
d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'`
|
|
3619
|
-
list="$list `ls -d ${d} 2>/dev/null`"
|
|
3620
|
-
fi
|
|
3621
|
-
fi
|
|
3622
|
-
for i in $list ; do
|
|
3623
|
-
if test -f "$i/tcl.h" ; then
|
|
3624
|
-
ac_cv_c_tclh=$i
|
|
3625
|
-
break
|
|
3626
|
-
fi
|
|
3627
|
-
done
|
|
3628
|
-
fi
|
|
3629
|
-
])
|
|
3630
|
-
|
|
3631
|
-
# Print a message based on how we determined the include path
|
|
3632
|
-
|
|
3633
|
-
if test x"${ac_cv_c_tclh}" = x ; then
|
|
3634
|
-
AC_MSG_ERROR([tcl.h not found. Please specify its location with --with-tclinclude])
|
|
3635
|
-
else
|
|
3636
|
-
AC_MSG_RESULT([${ac_cv_c_tclh}])
|
|
3637
|
-
fi
|
|
3638
|
-
|
|
3639
|
-
# Convert to a native path and substitute into the output files.
|
|
3640
|
-
|
|
3641
|
-
INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}`
|
|
3642
|
-
|
|
3643
|
-
TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
|
|
3644
|
-
|
|
3645
|
-
AC_SUBST(TCL_INCLUDES)
|
|
3646
|
-
])
|
|
3647
|
-
|
|
3648
|
-
#------------------------------------------------------------------------
|
|
3649
|
-
# TEA_PRIVATE_TK_HEADERS --
|
|
3650
|
-
#
|
|
3651
|
-
# Locate the private Tk include files
|
|
3652
|
-
#
|
|
3653
|
-
# Arguments:
|
|
3654
|
-
#
|
|
3655
|
-
# Requires:
|
|
3656
|
-
# TK_SRC_DIR Assumes that TEA_LOAD_TKCONFIG has
|
|
3657
|
-
# already been called.
|
|
3658
|
-
#
|
|
3659
|
-
# Results:
|
|
3660
|
-
#
|
|
3661
|
-
# Substitutes the following vars:
|
|
3662
|
-
# TK_INCLUDES
|
|
3663
|
-
#------------------------------------------------------------------------
|
|
3664
|
-
|
|
3665
|
-
AC_DEFUN([TEA_PRIVATE_TK_HEADERS], [
|
|
3666
|
-
# Allow for --with-tkinclude to take effect and define ${ac_cv_c_tkh}
|
|
3667
|
-
AC_REQUIRE([TEA_PUBLIC_TK_HEADERS])
|
|
3668
|
-
AC_MSG_CHECKING([for Tk private include files])
|
|
3669
|
-
|
|
3670
|
-
TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}`
|
|
3671
|
-
TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\"
|
|
3672
|
-
|
|
3673
|
-
# Check to see if tk<Plat>Port.h isn't already with the public headers
|
|
3674
|
-
# Don't look for tkInt.h because that resides with tk.h in the core
|
|
3675
|
-
# sources, but the <plat>Port headers are in a different directory
|
|
3676
|
-
if test "${TEA_PLATFORM}" = "windows" -a \
|
|
3677
|
-
-f "${ac_cv_c_tkh}/tkWinPort.h"; then
|
|
3678
|
-
result="private headers found with public headers"
|
|
3679
|
-
elif test "${TEA_PLATFORM}" = "unix" -a \
|
|
3680
|
-
-f "${ac_cv_c_tkh}/tkUnixPort.h"; then
|
|
3681
|
-
result="private headers found with public headers"
|
|
3682
|
-
else
|
|
3683
|
-
TK_GENERIC_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/generic\"
|
|
3684
|
-
TK_XLIB_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/xlib\"
|
|
3685
|
-
if test "${TEA_PLATFORM}" = "windows"; then
|
|
3686
|
-
TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/win\"
|
|
3687
|
-
else
|
|
3688
|
-
TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/unix\"
|
|
3689
|
-
fi
|
|
3690
|
-
# Overwrite the previous TK_INCLUDES as this should capture both
|
|
3691
|
-
# public and private headers in the same set.
|
|
3692
|
-
# We want to ensure these are substituted so as not to require
|
|
3693
|
-
# any *_NATIVE vars be defined in the Makefile
|
|
3694
|
-
TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}"
|
|
3695
|
-
# Detect and add ttk subdir
|
|
3696
|
-
if test -d "${TK_SRC_DIR}/generic/ttk"; then
|
|
3697
|
-
TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/generic/ttk\""
|
|
3698
|
-
fi
|
|
3699
|
-
if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then
|
|
3700
|
-
TK_INCLUDES="${TK_INCLUDES} -I\"${TK_XLIB_DIR_NATIVE}\""
|
|
3701
|
-
fi
|
|
3702
|
-
if test "${TEA_WINDOWINGSYSTEM}" = "aqua"; then
|
|
3703
|
-
TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/macosx\""
|
|
3704
|
-
fi
|
|
3705
|
-
if test "`uname -s`" = "Darwin"; then
|
|
3706
|
-
# If Tk was built as a framework, attempt to use
|
|
3707
|
-
# the framework's Headers and PrivateHeaders directories
|
|
3708
|
-
case ${TK_DEFS} in
|
|
3709
|
-
*TK_FRAMEWORK*)
|
|
3710
|
-
if test -d "${TK_BIN_DIR}/Headers" -a \
|
|
3711
|
-
-d "${TK_BIN_DIR}/PrivateHeaders"; then
|
|
3712
|
-
TK_INCLUDES="-I\"${TK_BIN_DIR}/Headers\" -I\"${TK_BIN_DIR}/PrivateHeaders\" ${TK_INCLUDES}"
|
|
3713
|
-
else
|
|
3714
|
-
TK_INCLUDES="${TK_INCLUDES} ${TK_INCLUDE_SPEC} `echo "${TK_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
|
|
3715
|
-
fi
|
|
3716
|
-
;;
|
|
3717
|
-
esac
|
|
3718
|
-
result="Using ${TK_INCLUDES}"
|
|
3719
|
-
else
|
|
3720
|
-
if test ! -f "${TK_SRC_DIR}/generic/tkInt.h" ; then
|
|
3721
|
-
AC_MSG_ERROR([Cannot find private header tkInt.h in ${TK_SRC_DIR}])
|
|
3722
|
-
fi
|
|
3723
|
-
result="Using srcdir found in tkConfig.sh: ${TK_SRC_DIR}"
|
|
3724
|
-
fi
|
|
3725
|
-
fi
|
|
3726
|
-
|
|
3727
|
-
AC_SUBST(TK_TOP_DIR_NATIVE)
|
|
3728
|
-
AC_SUBST(TK_XLIB_DIR_NATIVE)
|
|
3729
|
-
|
|
3730
|
-
AC_SUBST(TK_INCLUDES)
|
|
3731
|
-
AC_MSG_RESULT([${result}])
|
|
3732
|
-
])
|
|
3733
|
-
|
|
3734
|
-
#------------------------------------------------------------------------
|
|
3735
|
-
# TEA_PUBLIC_TK_HEADERS --
|
|
3736
|
-
#
|
|
3737
|
-
# Locate the installed public Tk header files
|
|
3738
|
-
#
|
|
3739
|
-
# Arguments:
|
|
3740
|
-
# None.
|
|
3741
|
-
#
|
|
3742
|
-
# Requires:
|
|
3743
|
-
# CYGPATH must be set
|
|
3744
|
-
#
|
|
3745
|
-
# Results:
|
|
3746
|
-
#
|
|
3747
|
-
# Adds a --with-tkinclude switch to configure.
|
|
3748
|
-
# Result is cached.
|
|
3749
|
-
#
|
|
3750
|
-
# Substitutes the following vars:
|
|
3751
|
-
# TK_INCLUDES
|
|
3752
|
-
#------------------------------------------------------------------------
|
|
3753
|
-
|
|
3754
|
-
AC_DEFUN([TEA_PUBLIC_TK_HEADERS], [
|
|
3755
|
-
AC_MSG_CHECKING([for Tk public headers])
|
|
3756
|
-
|
|
3757
|
-
AC_ARG_WITH(tkinclude, [ --with-tkinclude directory containing the public Tk header files], with_tkinclude=${withval})
|
|
3758
|
-
|
|
3759
|
-
AC_CACHE_VAL(ac_cv_c_tkh, [
|
|
3760
|
-
# Use the value from --with-tkinclude, if it was given
|
|
3761
|
-
|
|
3762
|
-
if test x"${with_tkinclude}" != x ; then
|
|
3763
|
-
if test -f "${with_tkinclude}/tk.h" ; then
|
|
3764
|
-
ac_cv_c_tkh=${with_tkinclude}
|
|
3765
|
-
else
|
|
3766
|
-
AC_MSG_ERROR([${with_tkinclude} directory does not contain tk.h])
|
|
3767
|
-
fi
|
|
3768
|
-
else
|
|
3769
|
-
list=""
|
|
3770
|
-
if test "`uname -s`" = "Darwin"; then
|
|
3771
|
-
# If Tk was built as a framework, attempt to use
|
|
3772
|
-
# the framework's Headers directory.
|
|
3773
|
-
case ${TK_DEFS} in
|
|
3774
|
-
*TK_FRAMEWORK*)
|
|
3775
|
-
list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`"
|
|
3776
|
-
;;
|
|
3777
|
-
esac
|
|
3778
|
-
fi
|
|
3779
|
-
|
|
3780
|
-
# Look in the source dir only if Tk is not installed,
|
|
3781
|
-
# and in that situation, look there before installed locations.
|
|
3782
|
-
if test -f "${TK_BIN_DIR}/Makefile" ; then
|
|
3783
|
-
list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`"
|
|
3784
|
-
fi
|
|
3785
|
-
|
|
3786
|
-
# Check order: pkg --prefix location, Tk's --prefix location,
|
|
3787
|
-
# relative to directory of tkConfig.sh, Tcl's --prefix location,
|
|
3788
|
-
# relative to directory of tclConfig.sh.
|
|
3789
|
-
|
|
3790
|
-
eval "temp_includedir=${includedir}"
|
|
3791
|
-
list="$list \
|
|
3792
|
-
`ls -d ${temp_includedir} 2>/dev/null` \
|
|
3793
|
-
`ls -d ${TK_PREFIX}/include 2>/dev/null` \
|
|
3794
|
-
`ls -d ${TK_BIN_DIR}/../include 2>/dev/null` \
|
|
3795
|
-
`ls -d ${TCL_PREFIX}/include 2>/dev/null` \
|
|
3796
|
-
`ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
|
|
3797
|
-
if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
|
|
3798
|
-
list="$list /usr/local/include /usr/include"
|
|
3799
|
-
if test x"${TK_INCLUDE_SPEC}" != x ; then
|
|
3800
|
-
d=`echo "${TK_INCLUDE_SPEC}" | sed -e 's/^-I//'`
|
|
3801
|
-
list="$list `ls -d ${d} 2>/dev/null`"
|
|
3802
|
-
fi
|
|
3803
|
-
fi
|
|
3804
|
-
for i in $list ; do
|
|
3805
|
-
if test -f "$i/tk.h" ; then
|
|
3806
|
-
ac_cv_c_tkh=$i
|
|
3807
|
-
break
|
|
3808
|
-
fi
|
|
3809
|
-
done
|
|
3810
|
-
fi
|
|
3811
|
-
])
|
|
3812
|
-
|
|
3813
|
-
# Print a message based on how we determined the include path
|
|
3814
|
-
|
|
3815
|
-
if test x"${ac_cv_c_tkh}" = x ; then
|
|
3816
|
-
AC_MSG_ERROR([tk.h not found. Please specify its location with --with-tkinclude])
|
|
3817
|
-
else
|
|
3818
|
-
AC_MSG_RESULT([${ac_cv_c_tkh}])
|
|
3819
|
-
fi
|
|
3820
|
-
|
|
3821
|
-
# Convert to a native path and substitute into the output files.
|
|
3822
|
-
|
|
3823
|
-
INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}`
|
|
3824
|
-
|
|
3825
|
-
TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
|
|
3826
|
-
|
|
3827
|
-
AC_SUBST(TK_INCLUDES)
|
|
3828
|
-
|
|
3829
|
-
if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then
|
|
3830
|
-
# On Windows and Aqua, we need the X compat headers
|
|
3831
|
-
AC_MSG_CHECKING([for X11 header files])
|
|
3832
|
-
if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then
|
|
3833
|
-
INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`"
|
|
3834
|
-
TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
|
|
3835
|
-
AC_SUBST(TK_XINCLUDES)
|
|
3836
|
-
fi
|
|
3837
|
-
AC_MSG_RESULT([${INCLUDE_DIR_NATIVE}])
|
|
3838
|
-
fi
|
|
3839
|
-
])
|
|
3840
|
-
|
|
3841
|
-
#------------------------------------------------------------------------
|
|
3842
|
-
# TEA_PATH_CONFIG --
|
|
3843
|
-
#
|
|
3844
|
-
# Locate the ${1}Config.sh file and perform a sanity check on
|
|
3845
|
-
# the ${1} compile flags. These are used by packages like
|
|
3846
|
-
# [incr Tk] that load *Config.sh files from more than Tcl and Tk.
|
|
3847
|
-
#
|
|
3848
|
-
# Arguments:
|
|
3849
|
-
# none
|
|
3850
|
-
#
|
|
3851
|
-
# Results:
|
|
3852
|
-
#
|
|
3853
|
-
# Adds the following arguments to configure:
|
|
3854
|
-
# --with-$1=...
|
|
3855
|
-
#
|
|
3856
|
-
# Defines the following vars:
|
|
3857
|
-
# $1_BIN_DIR Full path to the directory containing
|
|
3858
|
-
# the $1Config.sh file
|
|
3859
|
-
#------------------------------------------------------------------------
|
|
3860
|
-
|
|
3861
|
-
AC_DEFUN([TEA_PATH_CONFIG], [
|
|
3862
|
-
#
|
|
3863
|
-
# Ok, lets find the $1 configuration
|
|
3864
|
-
# First, look for one uninstalled.
|
|
3865
|
-
# the alternative search directory is invoked by --with-$1
|
|
3866
|
-
#
|
|
3867
|
-
|
|
3868
|
-
if test x"${no_$1}" = x ; then
|
|
3869
|
-
# we reset no_$1 in case something fails here
|
|
3870
|
-
no_$1=true
|
|
3871
|
-
AC_ARG_WITH($1, [ --with-$1 directory containing $1 configuration ($1Config.sh)], with_$1config=${withval})
|
|
3872
|
-
AC_MSG_CHECKING([for $1 configuration])
|
|
3873
|
-
AC_CACHE_VAL(ac_cv_c_$1config,[
|
|
3874
|
-
|
|
3875
|
-
# First check to see if --with-$1 was specified.
|
|
3876
|
-
if test x"${with_$1config}" != x ; then
|
|
3877
|
-
case ${with_$1config} in
|
|
3878
|
-
*/$1Config.sh )
|
|
3879
|
-
if test -f ${with_$1config}; then
|
|
3880
|
-
AC_MSG_WARN([--with-$1 argument should refer to directory containing $1Config.sh, not to $1Config.sh itself])
|
|
3881
|
-
with_$1config=`echo ${with_$1config} | sed 's!/$1Config\.sh$!!'`
|
|
3882
|
-
fi;;
|
|
3883
|
-
esac
|
|
3884
|
-
if test -f "${with_$1config}/$1Config.sh" ; then
|
|
3885
|
-
ac_cv_c_$1config=`(cd ${with_$1config}; pwd)`
|
|
3886
|
-
else
|
|
3887
|
-
AC_MSG_ERROR([${with_$1config} directory doesn't contain $1Config.sh])
|
|
3888
|
-
fi
|
|
3889
|
-
fi
|
|
3890
|
-
|
|
3891
|
-
# then check for a private $1 installation
|
|
3892
|
-
if test x"${ac_cv_c_$1config}" = x ; then
|
|
3893
|
-
for i in \
|
|
3894
|
-
../$1 \
|
|
3895
|
-
`ls -dr ../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
|
|
3896
|
-
`ls -dr ../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
|
|
3897
|
-
`ls -dr ../$1*[[0-9]].[[0-9]] 2>/dev/null` \
|
|
3898
|
-
`ls -dr ../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
3899
|
-
../../$1 \
|
|
3900
|
-
`ls -dr ../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
|
|
3901
|
-
`ls -dr ../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
|
|
3902
|
-
`ls -dr ../../$1*[[0-9]].[[0-9]] 2>/dev/null` \
|
|
3903
|
-
`ls -dr ../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
3904
|
-
../../../$1 \
|
|
3905
|
-
`ls -dr ../../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
|
|
3906
|
-
`ls -dr ../../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
|
|
3907
|
-
`ls -dr ../../../$1*[[0-9]].[[0-9]] 2>/dev/null` \
|
|
3908
|
-
`ls -dr ../../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
3909
|
-
${srcdir}/../$1 \
|
|
3910
|
-
`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
|
|
3911
|
-
`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
|
|
3912
|
-
`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]] 2>/dev/null` \
|
|
3913
|
-
`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
|
|
3914
|
-
; do
|
|
3915
|
-
if test -f "$i/$1Config.sh" ; then
|
|
3916
|
-
ac_cv_c_$1config=`(cd $i; pwd)`
|
|
3917
|
-
break
|
|
3918
|
-
fi
|
|
3919
|
-
if test -f "$i/unix/$1Config.sh" ; then
|
|
3920
|
-
ac_cv_c_$1config=`(cd $i/unix; pwd)`
|
|
3921
|
-
break
|
|
3922
|
-
fi
|
|
3923
|
-
done
|
|
3924
|
-
fi
|
|
3925
|
-
|
|
3926
|
-
# check in a few common install locations
|
|
3927
|
-
if test x"${ac_cv_c_$1config}" = x ; then
|
|
3928
|
-
for i in `ls -d ${libdir} 2>/dev/null` \
|
|
3929
|
-
`ls -d ${exec_prefix}/lib 2>/dev/null` \
|
|
3930
|
-
`ls -d ${prefix}/lib 2>/dev/null` \
|
|
3931
|
-
`ls -d /usr/local/lib 2>/dev/null` \
|
|
3932
|
-
`ls -d /usr/contrib/lib 2>/dev/null` \
|
|
3933
|
-
`ls -d /usr/lib 2>/dev/null` \
|
|
3934
|
-
`ls -d /usr/lib64 2>/dev/null` \
|
|
3935
|
-
; do
|
|
3936
|
-
if test -f "$i/$1Config.sh" ; then
|
|
3937
|
-
ac_cv_c_$1config=`(cd $i; pwd)`
|
|
3938
|
-
break
|
|
3939
|
-
fi
|
|
3940
|
-
done
|
|
3941
|
-
fi
|
|
3942
|
-
])
|
|
3943
|
-
|
|
3944
|
-
if test x"${ac_cv_c_$1config}" = x ; then
|
|
3945
|
-
$1_BIN_DIR="# no $1 configs found"
|
|
3946
|
-
AC_MSG_WARN([Cannot find $1 configuration definitions])
|
|
3947
|
-
exit 0
|
|
3948
|
-
else
|
|
3949
|
-
no_$1=
|
|
3950
|
-
$1_BIN_DIR=${ac_cv_c_$1config}
|
|
3951
|
-
AC_MSG_RESULT([found $$1_BIN_DIR/$1Config.sh])
|
|
3952
|
-
fi
|
|
3953
|
-
fi
|
|
3954
|
-
])
|
|
3955
|
-
|
|
3956
|
-
#------------------------------------------------------------------------
|
|
3957
|
-
# TEA_LOAD_CONFIG --
|
|
3958
|
-
#
|
|
3959
|
-
# Load the $1Config.sh file
|
|
3960
|
-
#
|
|
3961
|
-
# Arguments:
|
|
3962
|
-
#
|
|
3963
|
-
# Requires the following vars to be set:
|
|
3964
|
-
# $1_BIN_DIR
|
|
3965
|
-
#
|
|
3966
|
-
# Results:
|
|
3967
|
-
#
|
|
3968
|
-
# Substitutes the following vars:
|
|
3969
|
-
# $1_SRC_DIR
|
|
3970
|
-
# $1_LIB_FILE
|
|
3971
|
-
# $1_LIB_SPEC
|
|
3972
|
-
#------------------------------------------------------------------------
|
|
3973
|
-
|
|
3974
|
-
AC_DEFUN([TEA_LOAD_CONFIG], [
|
|
3975
|
-
AC_MSG_CHECKING([for existence of ${$1_BIN_DIR}/$1Config.sh])
|
|
3976
|
-
|
|
3977
|
-
if test -f "${$1_BIN_DIR}/$1Config.sh" ; then
|
|
3978
|
-
AC_MSG_RESULT([loading])
|
|
3979
|
-
. "${$1_BIN_DIR}/$1Config.sh"
|
|
3980
|
-
else
|
|
3981
|
-
AC_MSG_RESULT([file not found])
|
|
3982
|
-
fi
|
|
3983
|
-
|
|
3984
|
-
#
|
|
3985
|
-
# If the $1_BIN_DIR is the build directory (not the install directory),
|
|
3986
|
-
# then set the common variable name to the value of the build variables.
|
|
3987
|
-
# For example, the variable $1_LIB_SPEC will be set to the value
|
|
3988
|
-
# of $1_BUILD_LIB_SPEC. An extension should make use of $1_LIB_SPEC
|
|
3989
|
-
# instead of $1_BUILD_LIB_SPEC since it will work with both an
|
|
3990
|
-
# installed and uninstalled version of Tcl.
|
|
3991
|
-
#
|
|
3992
|
-
|
|
3993
|
-
if test -f "${$1_BIN_DIR}/Makefile" ; then
|
|
3994
|
-
AC_MSG_WARN([Found Makefile - using build library specs for $1])
|
|
3995
|
-
$1_LIB_SPEC=${$1_BUILD_LIB_SPEC}
|
|
3996
|
-
$1_STUB_LIB_SPEC=${$1_BUILD_STUB_LIB_SPEC}
|
|
3997
|
-
$1_STUB_LIB_PATH=${$1_BUILD_STUB_LIB_PATH}
|
|
3998
|
-
$1_INCLUDE_SPEC=${$1_BUILD_INCLUDE_SPEC}
|
|
3999
|
-
$1_LIBRARY_PATH=${$1_LIBRARY_PATH}
|
|
4000
|
-
fi
|
|
4001
|
-
|
|
4002
|
-
AC_SUBST($1_VERSION)
|
|
4003
|
-
AC_SUBST($1_BIN_DIR)
|
|
4004
|
-
AC_SUBST($1_SRC_DIR)
|
|
4005
|
-
|
|
4006
|
-
AC_SUBST($1_LIB_FILE)
|
|
4007
|
-
AC_SUBST($1_LIB_SPEC)
|
|
4008
|
-
|
|
4009
|
-
AC_SUBST($1_STUB_LIB_FILE)
|
|
4010
|
-
AC_SUBST($1_STUB_LIB_SPEC)
|
|
4011
|
-
AC_SUBST($1_STUB_LIB_PATH)
|
|
4012
|
-
|
|
4013
|
-
# Allow the caller to prevent this auto-check by specifying any 2nd arg
|
|
4014
|
-
AS_IF([test "x$2" = x], [
|
|
4015
|
-
# Check both upper and lower-case variants
|
|
4016
|
-
# If a dev wanted non-stubs libs, this function could take an option
|
|
4017
|
-
# to not use _STUB in the paths below
|
|
4018
|
-
AS_IF([test "x${$1_STUB_LIB_SPEC}" = x],
|
|
4019
|
-
[TEA_LOAD_CONFIG_LIB(translit($1,[a-z],[A-Z])_STUB)],
|
|
4020
|
-
[TEA_LOAD_CONFIG_LIB($1_STUB)])
|
|
4021
|
-
])
|
|
4022
|
-
])
|
|
4023
|
-
|
|
4024
|
-
#------------------------------------------------------------------------
|
|
4025
|
-
# TEA_LOAD_CONFIG_LIB --
|
|
4026
|
-
#
|
|
4027
|
-
# Helper function to load correct library from another extension's
|
|
4028
|
-
# ${PACKAGE}Config.sh.
|
|
4029
|
-
#
|
|
4030
|
-
# Results:
|
|
4031
|
-
# Adds to LIBS the appropriate extension library
|
|
4032
|
-
#------------------------------------------------------------------------
|
|
4033
|
-
AC_DEFUN([TEA_LOAD_CONFIG_LIB], [
|
|
4034
|
-
AC_MSG_CHECKING([For $1 library for LIBS])
|
|
4035
|
-
# This simplifies the use of stub libraries by automatically adding
|
|
4036
|
-
# the stub lib to your path. Normally this would add to SHLIB_LD_LIBS,
|
|
4037
|
-
# but this is called before CONFIG_CFLAGS. More importantly, this adds
|
|
4038
|
-
# to PKG_LIBS, which becomes LIBS, and that is only used by SHLIB_LD.
|
|
4039
|
-
if test "x${$1_LIB_SPEC}" != "x" ; then
|
|
4040
|
-
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes" ; then
|
|
4041
|
-
TEA_ADD_LIBS([\"`${CYGPATH} ${$1_LIB_PATH}`\"])
|
|
4042
|
-
AC_MSG_RESULT([using $1_LIB_PATH ${$1_LIB_PATH}])
|
|
4043
|
-
else
|
|
4044
|
-
TEA_ADD_LIBS([${$1_LIB_SPEC}])
|
|
4045
|
-
AC_MSG_RESULT([using $1_LIB_SPEC ${$1_LIB_SPEC}])
|
|
4046
|
-
fi
|
|
4047
|
-
else
|
|
4048
|
-
AC_MSG_RESULT([file not found])
|
|
4049
|
-
fi
|
|
4050
|
-
])
|
|
4051
|
-
|
|
4052
|
-
#------------------------------------------------------------------------
|
|
4053
|
-
# TEA_EXPORT_CONFIG --
|
|
4054
|
-
#
|
|
4055
|
-
# Define the data to insert into the ${PACKAGE}Config.sh file
|
|
4056
|
-
#
|
|
4057
|
-
# Arguments:
|
|
4058
|
-
#
|
|
4059
|
-
# Requires the following vars to be set:
|
|
4060
|
-
# $1
|
|
4061
|
-
#
|
|
4062
|
-
# Results:
|
|
4063
|
-
# Substitutes the following vars:
|
|
4064
|
-
#------------------------------------------------------------------------
|
|
4065
|
-
|
|
4066
|
-
AC_DEFUN([TEA_EXPORT_CONFIG], [
|
|
4067
|
-
#--------------------------------------------------------------------
|
|
4068
|
-
# These are for $1Config.sh
|
|
4069
|
-
#--------------------------------------------------------------------
|
|
4070
|
-
|
|
4071
|
-
# pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib)
|
|
4072
|
-
eval pkglibdir="[$]{libdir}/$1${PACKAGE_VERSION}"
|
|
4073
|
-
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
|
|
4074
|
-
eval $1_LIB_FLAG="-l$1${PACKAGE_VERSION}${DBGX}"
|
|
4075
|
-
eval $1_STUB_LIB_FLAG="-l$1stub${PACKAGE_VERSION}${DBGX}"
|
|
4076
|
-
else
|
|
4077
|
-
eval $1_LIB_FLAG="-l$1`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
|
|
4078
|
-
eval $1_STUB_LIB_FLAG="-l$1stub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
|
|
4079
|
-
fi
|
|
4080
|
-
$1_BUILD_LIB_SPEC="-L`pwd` ${$1_LIB_FLAG}"
|
|
4081
|
-
$1_LIB_SPEC="-L${pkglibdir} ${$1_LIB_FLAG}"
|
|
4082
|
-
$1_BUILD_STUB_LIB_SPEC="-L`pwd` [$]{$1_STUB_LIB_FLAG}"
|
|
4083
|
-
$1_STUB_LIB_SPEC="-L${pkglibdir} [$]{$1_STUB_LIB_FLAG}"
|
|
4084
|
-
$1_BUILD_STUB_LIB_PATH="`pwd`/[$]{PKG_STUB_LIB_FILE}"
|
|
4085
|
-
$1_STUB_LIB_PATH="${pkglibdir}/[$]{PKG_STUB_LIB_FILE}"
|
|
4086
|
-
|
|
4087
|
-
AC_SUBST($1_BUILD_LIB_SPEC)
|
|
4088
|
-
AC_SUBST($1_LIB_SPEC)
|
|
4089
|
-
AC_SUBST($1_BUILD_STUB_LIB_SPEC)
|
|
4090
|
-
AC_SUBST($1_STUB_LIB_SPEC)
|
|
4091
|
-
AC_SUBST($1_BUILD_STUB_LIB_PATH)
|
|
4092
|
-
AC_SUBST($1_STUB_LIB_PATH)
|
|
4093
|
-
|
|
4094
|
-
AC_SUBST(MAJOR_VERSION)
|
|
4095
|
-
AC_SUBST(MINOR_VERSION)
|
|
4096
|
-
AC_SUBST(PATCHLEVEL)
|
|
4097
|
-
])
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
#------------------------------------------------------------------------
|
|
4101
|
-
# TEA_PATH_CELIB --
|
|
4102
|
-
#
|
|
4103
|
-
# Locate Keuchel's celib emulation layer for targeting Win/CE
|
|
4104
|
-
#
|
|
4105
|
-
# Arguments:
|
|
4106
|
-
# none
|
|
4107
|
-
#
|
|
4108
|
-
# Results:
|
|
4109
|
-
#
|
|
4110
|
-
# Adds the following arguments to configure:
|
|
4111
|
-
# --with-celib=...
|
|
4112
|
-
#
|
|
4113
|
-
# Defines the following vars:
|
|
4114
|
-
# CELIB_DIR Full path to the directory containing
|
|
4115
|
-
# the include and platform lib files
|
|
4116
|
-
#------------------------------------------------------------------------
|
|
4117
|
-
|
|
4118
|
-
AC_DEFUN([TEA_PATH_CELIB], [
|
|
4119
|
-
# First, look for one uninstalled.
|
|
4120
|
-
# the alternative search directory is invoked by --with-celib
|
|
4121
|
-
|
|
4122
|
-
if test x"${no_celib}" = x ; then
|
|
4123
|
-
# we reset no_celib in case something fails here
|
|
4124
|
-
no_celib=true
|
|
4125
|
-
AC_ARG_WITH(celib,[ --with-celib=DIR use Windows/CE support library from DIR], with_celibconfig=${withval})
|
|
4126
|
-
AC_MSG_CHECKING([for Windows/CE celib directory])
|
|
4127
|
-
AC_CACHE_VAL(ac_cv_c_celibconfig,[
|
|
4128
|
-
# First check to see if --with-celibconfig was specified.
|
|
4129
|
-
if test x"${with_celibconfig}" != x ; then
|
|
4130
|
-
if test -d "${with_celibconfig}/inc" ; then
|
|
4131
|
-
ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)`
|
|
4132
|
-
else
|
|
4133
|
-
AC_MSG_ERROR([${with_celibconfig} directory doesn't contain inc directory])
|
|
4134
|
-
fi
|
|
4135
|
-
fi
|
|
4136
|
-
|
|
4137
|
-
# then check for a celib library
|
|
4138
|
-
if test x"${ac_cv_c_celibconfig}" = x ; then
|
|
4139
|
-
for i in \
|
|
4140
|
-
../celib-palm-3.0 \
|
|
4141
|
-
../celib \
|
|
4142
|
-
../../celib-palm-3.0 \
|
|
4143
|
-
../../celib \
|
|
4144
|
-
`ls -dr ../celib-*3.[[0-9]]* 2>/dev/null` \
|
|
4145
|
-
${srcdir}/../celib-palm-3.0 \
|
|
4146
|
-
${srcdir}/../celib \
|
|
4147
|
-
`ls -dr ${srcdir}/../celib-*3.[[0-9]]* 2>/dev/null` \
|
|
4148
|
-
; do
|
|
4149
|
-
if test -d "$i/inc" ; then
|
|
4150
|
-
ac_cv_c_celibconfig=`(cd $i; pwd)`
|
|
4151
|
-
break
|
|
4152
|
-
fi
|
|
4153
|
-
done
|
|
4154
|
-
fi
|
|
4155
|
-
])
|
|
4156
|
-
if test x"${ac_cv_c_celibconfig}" = x ; then
|
|
4157
|
-
AC_MSG_ERROR([Cannot find celib support library directory])
|
|
4158
|
-
else
|
|
4159
|
-
no_celib=
|
|
4160
|
-
CELIB_DIR=${ac_cv_c_celibconfig}
|
|
4161
|
-
CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
|
|
4162
|
-
AC_MSG_RESULT([found $CELIB_DIR])
|
|
4163
|
-
fi
|
|
4164
|
-
fi
|
|
4165
|
-
])
|
|
4166
|
-
# Local Variables:
|
|
4167
|
-
# mode: autoconf
|
|
4168
|
-
# End:
|