Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/tcl8.5.2/unix/Makefile.in @ 47

Last change on this file since 47 was 25, checked in by landauf, 17 years ago

added tcl to libs

File size: 64.4 KB
Line 
1#
2# This file is a Makefile for Tcl. If it has the name "Makefile.in" then it is
3# a template for a Makefile; to generate the actual Makefile, run
4# "./configure", which is a configuration script generated by the "autoconf"
5# program (constructs like "@foo@" will get replaced in the actual Makefile.
6#
7# RCS: @(#) $Id: Makefile.in,v 1.229 2008/03/12 09:51:39 hobbs Exp $
8
9VERSION                 = @TCL_VERSION@
10MAJOR_VERSION           = @TCL_MAJOR_VERSION@
11MINOR_VERSION           = @TCL_MINOR_VERSION@
12PATCH_LEVEL             = @TCL_PATCH_LEVEL@
13
14#--------------------------------------------------------------------------
15# Things you can change to personalize the Makefile for your own site (you can
16# make these changes in either Makefile.in or Makefile, but changes to
17# Makefile will get lost if you re-run the configuration script).
18#--------------------------------------------------------------------------
19
20# Default top-level directories in which to install architecture-specific
21# files (exec_prefix) and machine-independent files such as scripts (prefix).
22# The values specified here may be overridden at configure-time with the
23# --exec-prefix and --prefix options to the "configure" script. The *dir vars
24# are standard configure substitutions that are based off prefix and
25# exec_prefix.
26
27prefix                  = @prefix@
28exec_prefix             = @exec_prefix@
29bindir                  = @bindir@
30libdir                  = @libdir@
31includedir              = @includedir@
32datarootdir             = @datarootdir@
33mandir                  = @mandir@
34
35# The following definition can be set to non-null for special systems like AFS
36# with replication. It allows the pathnames used for installation to be
37# different than those used for actually reference files at run-time.
38# INSTALL_ROOT is prepended to $prefix and $exec_prefix when installing files.
39INSTALL_ROOT            = $(DESTDIR)
40
41# Path for the platform independent Tcl scripting libraries:
42TCL_LIBRARY             = @TCL_LIBRARY@
43
44# Path to use at runtime to refer to LIB_INSTALL_DIR:
45LIB_RUNTIME_DIR         = $(libdir)
46
47# Directory in which to install the program tclsh:
48BIN_INSTALL_DIR         = $(INSTALL_ROOT)$(bindir)
49
50# Directory in which to install libtcl.so or libtcl.a:
51LIB_INSTALL_DIR         = $(INSTALL_ROOT)$(libdir)
52
53# Path name to use when installing library scripts.
54SCRIPT_INSTALL_DIR      = $(INSTALL_ROOT)$(TCL_LIBRARY)
55
56# Directory in which to install the include file tcl.h:
57INCLUDE_INSTALL_DIR     = $(INSTALL_ROOT)$(includedir)
58
59# Path to the private tcl header dir:
60PRIVATE_INCLUDE_DIR     = @PRIVATE_INCLUDE_DIR@
61
62# Directory in which to (optionally) install the private tcl headers:
63PRIVATE_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(PRIVATE_INCLUDE_DIR)
64
65# Top-level directory in which to install manual entries:
66MAN_INSTALL_DIR         = $(INSTALL_ROOT)$(mandir)
67
68# Directory in which to install manual entry for tclsh:
69MAN1_INSTALL_DIR        = $(MAN_INSTALL_DIR)/man1
70
71# Directory in which to install manual entries for Tcl's C library procedures:
72MAN3_INSTALL_DIR        = $(MAN_INSTALL_DIR)/man3
73
74# Directory in which to install manual entries for the built-in Tcl commands:
75MANN_INSTALL_DIR        = $(MAN_INSTALL_DIR)/mann
76
77# Path to the html documentation dir:
78HTML_DIR                = @HTML_DIR@
79
80# Directory in which to install html documentation:
81HTML_INSTALL_DIR        = $(INSTALL_ROOT)$(HTML_DIR)
82
83# Package search path.
84TCL_PACKAGE_PATH        = @TCL_PACKAGE_PATH@
85
86# Tcl Module default path roots (TIP189).
87TCL_MODULE_PATH         = @TCL_MODULE_PATH@
88
89# warning flags
90CFLAGS_WARNING          = @CFLAGS_WARNING@
91
92# The default switches for optimization or debugging
93CFLAGS_DEBUG            = @CFLAGS_DEBUG@
94CFLAGS_OPTIMIZE         = @CFLAGS_OPTIMIZE@
95
96# To change the compiler switches, for example to change from optimization to
97# debugging symbols, change the following line:
98#CFLAGS                 = $(CFLAGS_DEBUG)
99#CFLAGS                 = $(CFLAGS_OPTIMIZE)
100#CFLAGS                 = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE)
101CFLAGS                  = @CFLAGS_DEFAULT@ @CFLAGS@
102
103# Flags to pass to the linker
104LDFLAGS_DEBUG           = @LDFLAGS_DEBUG@
105LDFLAGS_OPTIMIZE        = @LDFLAGS_OPTIMIZE@
106LDFLAGS                 = @LDFLAGS_DEFAULT@ @LDFLAGS@
107
108# To disable ANSI-C procedure prototypes reverse the comment characters on the
109# following lines:
110PROTO_FLAGS             =
111#PROTO_FLAGS            = -DNO_PROTOTYPE
112
113# If you use the setenv, putenv, or unsetenv procedures to modify environment
114# variables in your application and you'd like those modifications to appear
115# in the "env" Tcl variable, switch the comments on the two lines below so
116# that Tcl provides these procedures instead of your standard C library.
117
118ENV_FLAGS =
119#ENV_FLAGS = -DTclSetEnv=setenv -DTcl_PutEnv=putenv -DTclUnsetEnv=unsetenv
120
121# To enable memory debugging, call configure with --enable-symbols=mem
122# Warning: if you enable memory debugging, you must do it *everywhere*,
123# including all the code that calls Tcl, and you must use ckalloc and ckfree
124# everywhere instead of malloc and free.
125
126TCL_STUB_LIB_FILE       = @TCL_STUB_LIB_FILE@
127#TCL_STUB_LIB_FILE      = libtclstub.a
128
129# Generic stub lib name used in rules that apply to tcl and tk
130STUB_LIB_FILE           = ${TCL_STUB_LIB_FILE}
131
132TCL_STUB_LIB_FLAG       = @TCL_STUB_LIB_FLAG@
133#TCL_STUB_LIB_FLAG      = -ltclstub
134
135# To compile without backward compatibility and deprecated code uncomment the
136# following
137NO_DEPRECATED_FLAGS     =
138#NO_DEPRECATED_FLAGS    = -DTCL_NO_DEPRECATED
139
140# Some versions of make, like SGI's, use the following variable to determine
141# which shell to use for executing commands:
142SHELL                   = /bin/sh
143
144# Tcl used to let the configure script choose which program to use for
145# installing, but there are just too many different versions of "install"
146# around; better to use the install-sh script that comes with the
147# distribution, which is slower but guaranteed to work.
148
149INSTALL_STRIP_PROGRAM   = -s
150INSTALL_STRIP_LIBRARY   = -S -x
151
152INSTALL                 = @srcdir@/../unix/install-sh -c
153INSTALL_PROGRAM         = ${INSTALL}
154INSTALL_LIBRARY         = ${INSTALL}
155INSTALL_DATA            = ${INSTALL} -m 644
156
157# TCL_EXE is the name of a tclsh executable that is available *BEFORE* running
158# make for the first time. Certain build targets (make genstubs) need it to be
159# available on the PATH. This executable should *NOT* be required just to do a
160# normal build although it can be required to run make dist.
161TCL_EXE                 = tclsh
162
163# The symbols below provide support for dynamic loading and shared libraries.
164# See configure.in for a description of what the symbols mean. The values of
165# the symbols are normally set by the configure script. You shouldn't normally
166# need to modify any of these definitions by hand.
167
168STLIB_LD                = @STLIB_LD@
169SHLIB_LD                = @SHLIB_LD@
170SHLIB_CFLAGS            = @SHLIB_CFLAGS@
171SHLIB_LD_LIBS           = @SHLIB_LD_LIBS@
172TCL_SHLIB_LD_EXTRAS     = @TCL_SHLIB_LD_EXTRAS@
173
174SHLIB_SUFFIX            = @SHLIB_SUFFIX@
175#SHLIB_SUFFIX           =
176
177DLTEST_TARGETS          = dltest.marker
178
179# Additional search flags needed to find the various shared libraries at
180# run-time. The first symbol is for use when creating a binary with cc, and
181# the second is for use when running ld directly.
182CC_SEARCH_FLAGS = @CC_SEARCH_FLAGS@
183LD_SEARCH_FLAGS = @LD_SEARCH_FLAGS@
184
185# The following symbol is defined to "$(DLTEST_TARGETS)" if dynamic loading is
186# available; this causes everything in the "dltest" subdirectory to be built
187# when making "tcltest. If dynamic loading isn't available, configure defines
188# this symbol to an empty string, in which case the shared libraries aren't
189# built.
190BUILD_DLTEST            = @BUILD_DLTEST@
191#BUILD_DLTEST           =
192
193TCL_LIB_FILE            = @TCL_LIB_FILE@
194#TCL_LIB_FILE           = libtcl.a
195
196# Generic lib name used in rules that apply to tcl and tk
197LIB_FILE                = ${TCL_LIB_FILE}
198
199TCL_LIB_FLAG            = @TCL_LIB_FLAG@
200#TCL_LIB_FLAG           = -ltcl
201
202TCL_EXP_FILE            = @TCL_EXP_FILE@
203TCL_BUILD_EXP_FILE      = @TCL_BUILD_EXP_FILE@
204
205# support for embedded libraries on Darwin / Mac OS X
206DYLIB_INSTALL_DIR       = ${LIB_RUNTIME_DIR}
207
208#--------------------------------------------------------------------------
209# The information below is modified by the configure script when Makefile is
210# generated from Makefile.in. You shouldn't normally modify any of this stuff
211# by hand.
212#--------------------------------------------------------------------------
213
214COMPAT_OBJS             = @LIBOBJS@
215
216AC_FLAGS                = @DEFS@
217AR                      = @AR@
218RANLIB                  = @RANLIB@
219DTRACE                  = @DTRACE@
220SRC_DIR                 = @srcdir@
221TOP_DIR                 = $(SRC_DIR)/..
222BUILD_DIR               = @builddir@
223GENERIC_DIR             = $(TOP_DIR)/generic
224TOMMATH_DIR             = $(TOP_DIR)/libtommath
225COMPAT_DIR              = $(TOP_DIR)/compat
226TOOL_DIR                = $(TOP_DIR)/tools
227UNIX_DIR                = $(TOP_DIR)/unix
228MAC_OSX_DIR             = $(TOP_DIR)/macosx
229# Must be absolute because of the cd dltest $(DLTEST_DIR)/configure below.
230DLTEST_DIR              = @TCL_SRC_DIR@/unix/dltest
231# Must be absolute to so the corresponding tcltest's tcl_library is absolute.
232TCL_BUILDTIME_LIBRARY   = @TCL_SRC_DIR@/library
233
234CC                      = @CC@
235#CC                     = purify -best-effort @CC@ -DPURIFY
236
237# Flags to be passed to installManPage to control how the manpages should be
238# installed (symlinks, compression, package name suffix).
239MAN_FLAGS               = @MAN_FLAGS@
240
241# If non-empty, install the timezone files that are included with Tcl,
242# otherwise use the ones that ship with the OS.
243INSTALL_TZDATA          = @INSTALL_TZDATA@
244
245#--------------------------------------------------------------------------
246# The information below is usually usable as is. The configure script won't
247# modify it and it only exists to make working around selected rare system
248# configurations easier.
249#--------------------------------------------------------------------------
250
251GDB                     = gdb
252DDD                     = ddd
253
254#--------------------------------------------------------------------------
255# The information below should be usable as is. The configure script won't
256# modify it and you shouldn't need to modify it either.
257#--------------------------------------------------------------------------
258
259STUB_CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
260-I"${BUILD_DIR}" -I${UNIX_DIR} -I${GENERIC_DIR} -I${TOMMATH_DIR} \
261${AC_FLAGS} ${PROTO_FLAGS} ${ENV_FLAGS} ${EXTRA_CFLAGS} @EXTRA_CC_SWITCHES@
262
263CC_SWITCHES = $(STUB_CC_SWITCHES) ${NO_DEPRECATED_FLAGS}
264
265APP_CC_SWITCHES = $(CC_SWITCHES) @EXTRA_APP_CC_SWITCHES@
266
267LIBS            = @TCL_LIBS@
268
269DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
270${AC_FLAGS} ${PROTO_FLAGS} ${EXTRA_CFLAGS} @EXTRA_CC_SWITCHES@
271
272TCLSH_OBJS = tclAppInit.o
273
274TCLTEST_OBJS = tclTestInit.o tclTest.o tclTestObj.o tclTestProcBodyObj.o \
275        tclThreadTest.o tclUnixTest.o
276
277XTTEST_OBJS = xtTestInit.o tclTest.o tclTestObj.o tclTestProcBodyObj.o \
278        tclThreadTest.o tclUnixTest.o tclXtNotify.o tclXtTest.o
279
280GENERIC_OBJS = regcomp.o regexec.o regfree.o regerror.o tclAlloc.o \
281        tclAsync.o tclBasic.o tclBinary.o tclCkalloc.o tclClock.o \
282        tclCmdAH.o tclCmdIL.o tclCmdMZ.o tclCompCmds.o tclCompExpr.o \
283        tclCompile.o tclConfig.o tclDate.o tclDictObj.o tclEncoding.o \
284        tclEnv.o tclEvent.o tclExecute.o tclFCmd.o tclFileName.o tclGet.o \
285        tclHash.o tclHistory.o tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o \
286        tclIORChan.o tclIOGT.o tclIOSock.o tclIOUtil.o tclLink.o tclListObj.o \
287        tclLiteral.o tclLoad.o tclMain.o tclNamesp.o tclNotify.o \
288        tclObj.o tclPanic.o tclParse.o tclPathObj.o tclPipe.o \
289        tclPkg.o tclPkgConfig.o tclPosixStr.o \
290        tclPreserve.o tclProc.o tclRegexp.o \
291        tclResolve.o tclResult.o tclScan.o tclStringObj.o \
292        tclStrToD.o tclThread.o \
293        tclThreadAlloc.o tclThreadJoin.o tclThreadStorage.o tclStubInit.o \
294        tclStubLib.o tclTimer.o tclTrace.o tclUtf.o tclUtil.o tclVar.o \
295        tclTomMathInterface.o
296
297TOMMATH_OBJS = bncore.o bn_reverse.o bn_fast_s_mp_mul_digs.o \
298        bn_fast_s_mp_sqr.o bn_mp_add.o bn_mp_and.o \
299        bn_mp_add_d.o bn_mp_clamp.o bn_mp_clear.o bn_mp_clear_multi.o \
300        bn_mp_cmp.o bn_mp_cmp_d.o bn_mp_cmp_mag.o bn_mp_copy.o \
301        bn_mp_count_bits.o bn_mp_div.o bn_mp_div_d.o bn_mp_div_2.o \
302        bn_mp_div_2d.o bn_mp_div_3.o \
303        bn_mp_exch.o bn_mp_expt_d.o bn_mp_grow.o bn_mp_init.o \
304        bn_mp_init_copy.o bn_mp_init_multi.o bn_mp_init_set.o \
305        bn_mp_init_size.o bn_mp_karatsuba_mul.o \
306        bn_mp_karatsuba_sqr.o \
307        bn_mp_lshd.o bn_mp_mod.o bn_mp_mod_2d.o bn_mp_mul.o bn_mp_mul_2.o \
308        bn_mp_mul_2d.o bn_mp_mul_d.o bn_mp_neg.o bn_mp_or.o \
309        bn_mp_radix_size.o bn_mp_radix_smap.o \
310        bn_mp_read_radix.o bn_mp_rshd.o bn_mp_set.o bn_mp_shrink.o \
311        bn_mp_sqr.o bn_mp_sqrt.o bn_mp_sub.o bn_mp_sub_d.o \
312        bn_mp_to_unsigned_bin.o bn_mp_to_unsigned_bin_n.o \
313        bn_mp_toom_mul.o bn_mp_toom_sqr.o bn_mp_toradix_n.o \
314        bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_s_mp_add.o \
315        bn_s_mp_mul_digs.o bn_s_mp_sqr.o bn_s_mp_sub.o
316
317STUB_LIB_OBJS = tclStubLib.o ${COMPAT_OBJS}
318
319UNIX_OBJS = tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o \
320        tclUnixFile.o tclUnixPipe.o tclUnixSock.o \
321        tclUnixTime.o tclUnixInit.o tclUnixThrd.o \
322        tclUnixCompat.o
323
324NOTIFY_OBJS = tclUnixNotfy.o
325
326MAC_OSX_OBJS = tclMacOSXBundle.o tclMacOSXFCmd.o tclMacOSXNotify.o
327
328DTRACE_OBJ = tclDTrace.o
329
330TCL_OBJS = ${GENERIC_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} ${COMPAT_OBJS} \
331        @DL_OBJS@ @PLAT_OBJS@
332
333OBJS = ${TCL_OBJS} ${TOMMATH_OBJS} @DTRACE_OBJ@
334
335TCL_DECLS = \
336        $(GENERIC_DIR)/tcl.decls \
337        $(GENERIC_DIR)/tclInt.decls \
338        $(GENERIC_DIR)/tclTomMath.decls
339
340GENERIC_HDRS = \
341        $(GENERIC_DIR)/tcl.h \
342        $(GENERIC_DIR)/tclDecls.h \
343        $(GENERIC_DIR)/tclInt.h \
344        $(GENERIC_DIR)/tclIntDecls.h \
345        $(GENERIC_DIR)/tclIntPlatDecls.h \
346        $(GENERIC_DIR)/tclTomMath.h \
347        $(GENERIC_DIR)/tclTomMathDecls.h \
348        $(GENERIC_DIR)/tclPatch.h \
349        $(GENERIC_DIR)/tclPlatDecls.h \
350        $(GENERIC_DIR)/tclPort.h \
351        $(GENERIC_DIR)/tclRegexp.h
352
353GENERIC_SRCS = \
354        $(GENERIC_DIR)/regcomp.c \
355        $(GENERIC_DIR)/regexec.c \
356        $(GENERIC_DIR)/regfree.c \
357        $(GENERIC_DIR)/regerror.c \
358        $(GENERIC_DIR)/tclAlloc.c \
359        $(GENERIC_DIR)/tclAsync.c \
360        $(GENERIC_DIR)/tclBasic.c \
361        $(GENERIC_DIR)/tclBinary.c \
362        $(GENERIC_DIR)/tclCkalloc.c \
363        $(GENERIC_DIR)/tclClock.c \
364        $(GENERIC_DIR)/tclCmdAH.c \
365        $(GENERIC_DIR)/tclCmdIL.c \
366        $(GENERIC_DIR)/tclCmdMZ.c \
367        $(GENERIC_DIR)/tclCompCmds.c \
368        $(GENERIC_DIR)/tclCompExpr.c \
369        $(GENERIC_DIR)/tclCompile.c \
370        $(GENERIC_DIR)/tclConfig.c \
371        $(GENERIC_DIR)/tclDate.c \
372        $(GENERIC_DIR)/tclDictObj.c \
373        $(GENERIC_DIR)/tclEncoding.c \
374        $(GENERIC_DIR)/tclEnv.c \
375        $(GENERIC_DIR)/tclEvent.c \
376        $(GENERIC_DIR)/tclExecute.c \
377        $(GENERIC_DIR)/tclFCmd.c \
378        $(GENERIC_DIR)/tclFileName.c \
379        $(GENERIC_DIR)/tclGet.c \
380        $(GENERIC_DIR)/tclHash.c \
381        $(GENERIC_DIR)/tclHistory.c \
382        $(GENERIC_DIR)/tclIndexObj.c \
383        $(GENERIC_DIR)/tclInterp.c \
384        $(GENERIC_DIR)/tclIO.c \
385        $(GENERIC_DIR)/tclIOCmd.c \
386        $(GENERIC_DIR)/tclIOGT.c \
387        $(GENERIC_DIR)/tclIOSock.c \
388        $(GENERIC_DIR)/tclIOUtil.c \
389        $(GENERIC_DIR)/tclIORChan.c \
390        $(GENERIC_DIR)/tclLink.c \
391        $(GENERIC_DIR)/tclListObj.c \
392        $(GENERIC_DIR)/tclLiteral.c \
393        $(GENERIC_DIR)/tclLoad.c \
394        $(GENERIC_DIR)/tclMain.c \
395        $(GENERIC_DIR)/tclNamesp.c \
396        $(GENERIC_DIR)/tclNotify.c \
397        $(GENERIC_DIR)/tclObj.c \
398        $(GENERIC_DIR)/tclParse.c \
399        $(GENERIC_DIR)/tclPathObj.c \
400        $(GENERIC_DIR)/tclPipe.c \
401        $(GENERIC_DIR)/tclPkg.c \
402        $(GENERIC_DIR)/tclPkgConfig.c \
403        $(GENERIC_DIR)/tclPosixStr.c \
404        $(GENERIC_DIR)/tclPreserve.c \
405        $(GENERIC_DIR)/tclProc.c \
406        $(GENERIC_DIR)/tclRegexp.c \
407        $(GENERIC_DIR)/tclResolve.c \
408        $(GENERIC_DIR)/tclResult.c \
409        $(GENERIC_DIR)/tclScan.c \
410        $(GENERIC_DIR)/tclStubInit.c \
411        $(GENERIC_DIR)/tclStubLib.c \
412        $(GENERIC_DIR)/tclStringObj.c \
413        $(GENERIC_DIR)/tclStrToD.c \
414        $(GENERIC_DIR)/tclTest.c \
415        $(GENERIC_DIR)/tclTestObj.c \
416        $(GENERIC_DIR)/tclTestProcBodyObj.c \
417        $(GENERIC_DIR)/tclThread.c \
418        $(GENERIC_DIR)/tclThreadAlloc.c \
419        $(GENERIC_DIR)/tclThreadJoin.c \
420        $(GENERIC_DIR)/tclThreadStorage.c \
421        $(GENERIC_DIR)/tclTimer.c \
422        $(GENERIC_DIR)/tclTrace.c \
423        $(GENERIC_DIR)/tclUtil.c \
424        $(GENERIC_DIR)/tclVar.c
425
426STUB_SRCS = \
427        $(GENERIC_DIR)/tclStubLib.c
428
429TOMMATH_SRCS = \
430        $(TOMMATH_DIR)/bncore.c \
431        $(TOMMATH_DIR)/bn_reverse.c \
432        $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c \
433        $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c \
434        $(TOMMATH_DIR)/bn_mp_add.c \
435        $(TOMMATH_DIR)/bn_mp_add_d.c \
436        $(TOMMATH_DIR)/bn_mp_and.c \
437        $(TOMMATH_DIR)/bn_mp_clamp.c \
438        $(TOMMATH_DIR)/bn_mp_clear.c \
439        $(TOMMATH_DIR)/bn_mp_clear_multi.c \
440        $(TOMMATH_DIR)/bn_mp_cmp.c \
441        $(TOMMATH_DIR)/bn_mp_cmp_d.c \
442        $(TOMMATH_DIR)/bn_mp_cmp_mag.c \
443        $(TOMMATH_DIR)/bn_mp_copy.c \
444        $(TOMMATH_DIR)/bn_mp_count_bits.c \
445        $(TOMMATH_DIR)/bn_mp_div.c \
446        $(TOMMATH_DIR)/bn_mp_div_d.c \
447        $(TOMMATH_DIR)/bn_mp_div_2.c \
448        $(TOMMATH_DIR)/bn_mp_div_2d.c \
449        $(TOMMATH_DIR)/bn_mp_div_3.c \
450        $(TOMMATH_DIR)/bn_mp_exch.c \
451        $(TOMMATH_DIR)/bn_mp_expt_d.c \
452        $(TOMMATH_DIR)/bn_mp_grow.c \
453        $(TOMMATH_DIR)/bn_mp_init.c \
454        $(TOMMATH_DIR)/bn_mp_init_copy.c \
455        $(TOMMATH_DIR)/bn_mp_init_multi.c \
456        $(TOMMATH_DIR)/bn_mp_init_set.c \
457        $(TOMMATH_DIR)/bn_mp_init_size.c \
458        $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c \
459        $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c \
460        $(TOMMATH_DIR)/bn_mp_lshd.c \
461        $(TOMMATH_DIR)/bn_mp_mod.c \
462        $(TOMMATH_DIR)/bn_mp_mod_2d.c \
463        $(TOMMATH_DIR)/bn_mp_mul.c \
464        $(TOMMATH_DIR)/bn_mp_mul_2.c \
465        $(TOMMATH_DIR)/bn_mp_mul_2d.c \
466        $(TOMMATH_DIR)/bn_mp_mul_d.c \
467        $(TOMMATH_DIR)/bn_mp_neg.c \
468        $(TOMMATH_DIR)/bn_mp_or.c \
469        $(TOMMATH_DIR)/bn_mp_radix_size.c \
470        $(TOMMATH_DIR)/bn_mp_radix_smap.c \
471        $(TOMMATH_DIR)/bn_mp_read_radix.c \
472        $(TOMMATH_DIR)/bn_mp_rshd.c \
473        $(TOMMATH_DIR)/bn_mp_set.c \
474        $(TOMMATH_DIR)/bn_mp_shrink.c \
475        $(TOMMATH_DIR)/bn_mp_sqr.c \
476        $(TOMMATH_DIR)/bn_mp_sqrt.c \
477        $(TOMMATH_DIR)/bn_mp_sub.c \
478        $(TOMMATH_DIR)/bn_mp_sub_d.c \
479        $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c \
480        $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c \
481        $(TOMMATH_DIR)/bn_mp_toom_mul.c \
482        $(TOMMATH_DIR)/bn_mp_toom_sqr.c \
483        $(TOMMATH_DIR)/bn_mp_toradix_n.c \
484        $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c \
485        $(TOMMATH_DIR)/bn_mp_xor.c \
486        $(TOMMATH_DIR)/bn_mp_zero.c \
487        $(TOMMATH_DIR)/bn_s_mp_add.c \
488        $(TOMMATH_DIR)/bn_s_mp_mul_digs.c \
489        $(TOMMATH_DIR)/bn_s_mp_sqr.c \
490        $(TOMMATH_DIR)/bn_s_mp_sub.c
491
492UNIX_HDRS = \
493        $(UNIX_DIR)/tclUnixPort.h
494#       $(UNIX_DIR)/tclConfig.h
495
496UNIX_SRCS = \
497        $(UNIX_DIR)/tclAppInit.c \
498        $(UNIX_DIR)/tclUnixChan.c \
499        $(UNIX_DIR)/tclUnixEvent.c \
500        $(UNIX_DIR)/tclUnixFCmd.c \
501        $(UNIX_DIR)/tclUnixFile.c \
502        $(UNIX_DIR)/tclUnixPipe.c \
503        $(UNIX_DIR)/tclUnixSock.c \
504        $(UNIX_DIR)/tclUnixTest.c \
505        $(UNIX_DIR)/tclUnixThrd.c \
506        $(UNIX_DIR)/tclUnixTime.c \
507        $(UNIX_DIR)/tclUnixInit.c \
508        $(UNIX_DIR)/tclUnixCompat.c
509
510NOTIFY_SRCS = \
511        $(UNIX_DIR)/tclUnixNotfy.c
512
513DL_SRCS = \
514        $(UNIX_DIR)/tclLoadAix.c \
515        $(UNIX_DIR)/tclLoadDl.c \
516        $(UNIX_DIR)/tclLoadDl2.c \
517        $(UNIX_DIR)/tclLoadDld.c \
518        $(UNIX_DIR)/tclLoadDyld.c \
519        $(GENERIC_DIR)/tclLoadNone.c \
520        $(UNIX_DIR)/tclLoadOSF.c \
521        $(UNIX_DIR)/tclLoadShl.c
522
523MAC_OSX_SRCS = \
524        $(MAC_OSX_DIR)/tclMacOSXBundle.c \
525        $(MAC_OSX_DIR)/tclMacOSXFCmd.c \
526        $(MAC_OSX_DIR)/tclMacOSXNotify.c
527
528DTRACE_HDR = tclDTrace.h
529
530DTRACE_SRC = $(GENERIC_DIR)/tclDTrace.d
531
532# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those files
533# won't compile on the current machine, and they will cause problems for
534# things like "make depend".
535
536SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
537        $(STUB_SRCS) @PLAT_SRCS@
538
539all: binaries libraries doc
540
541binaries: ${LIB_FILE} $(STUB_LIB_FILE) $(TCL_BUILD_EXP_FILE) tclsh
542
543libraries:
544
545doc:
546
547# The following target is configured by autoconf to generate either a shared
548# library or non-shared library for Tcl.
549${LIB_FILE}: ${OBJS} ${STUB_LIB_FILE}
550        rm -f $@
551        @MAKE_LIB@
552
553${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
554        rm -f $@
555        @MAKE_STUB_LIB@
556
557# Make target which outputs the list of the .o contained in the Tcl lib useful
558# to build a single big shared library containing Tcl and other extensions.
559# Used for the Tcl Plugin.  -- dl
560# The dependency on OBJS is not there because we just want the list of objects
561# here, not actually building them
562tclLibObjs:
563        @echo ${OBJS}
564# This targets actually build the objects needed for the lib in the above case
565objs: ${OBJS}
566
567
568tclsh: ${TCLSH_OBJS} ${TCL_LIB_FILE}
569        ${CC} ${CFLAGS} ${LDFLAGS} ${TCLSH_OBJS} @TCL_BUILD_LIB_SPEC@ ${LIBS} @EXTRA_TCLSH_LIBS@ \
570                ${CC_SEARCH_FLAGS} -o tclsh
571
572# Resetting the LIB_RUNTIME_DIR below is required so that the generated
573# tcltest executable gets the build directory burned into its ld search path.
574# This keeps tcltest from picking up an already installed version of the Tcl
575# library.
576
577tcltest: ${TCLTEST_OBJS} ${TCL_LIB_FILE} ${BUILD_DLTEST}
578        $(MAKE) tcltest-real LIB_RUNTIME_DIR="`pwd`"
579
580tcltest-real:
581        ${CC} ${CFLAGS} ${LDFLAGS} ${TCLTEST_OBJS} @TCL_BUILD_LIB_SPEC@ ${LIBS} @EXTRA_TCLSH_LIBS@ \
582                ${CC_SEARCH_FLAGS} -o tcltest
583
584# Note, in the targets below TCL_LIBRARY needs to be set or else "make test"
585# won't work in the case where the compilation directory isn't the same as the
586# source directory.
587#
588# Specifying TESTFLAGS on the command line is the standard way to pass args to
589# tcltest, ie:
590#       % make test TESTFLAGS="-verbose bps -file fileName.test"
591
592test: tcltest
593        @LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
594        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
595        ./tcltest $(TOP_DIR)/tests/all.tcl $(TESTFLAGS)
596
597gdb-test: tcltest
598        @echo "set env @LD_LIBRARY_PATH_VAR@=\"`pwd`:$${@LD_LIBRARY_PATH_VAR@}\"" > gdb.run
599        @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run
600        @echo "set args $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) -singleproc 1" >> gdb.run
601        $(GDB) ./tcltest --command=gdb.run
602        rm gdb.run
603
604# Useful target to launch a built tcltest with the proper path,...
605runtest: tcltest
606        @LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
607        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
608        ./tcltest
609
610# Useful target for running the test suite with an unwritable current
611# directory...
612ro-test: tcltest
613        @LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
614        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
615        echo 'exec chmod -w .;package require tcltest;tcltest::temporaryDirectory /tmp;source ../tests/all.tcl;exec chmod +w .' | ./tcltest
616
617# This target can be used to run tclsh from the build directory
618# via `make shell SCRIPT=/tmp/foo.tcl`
619shell: tclsh
620        @LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
621        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
622        ./tclsh $(SCRIPT)
623
624# This target can be used to run tclsh inside either gdb or insight
625gdb: tclsh
626        @echo "set env @LD_LIBRARY_PATH_VAR@=\"`pwd`:$${@LD_LIBRARY_PATH_VAR@}\"" > gdb.run
627        @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run
628        $(GDB) ./tclsh --command=gdb.run
629        rm gdb.run
630
631# This target can be used to run tclsh inside ddd
632ddd: tclsh
633        @echo "set env @LD_LIBRARY_PATH_VAR@=\"`pwd`:$${@LD_LIBRARY_PATH_VAR@}\"" > gdb.run
634        @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run
635        $(DDD) -command=gdb.run ./tclsh
636        rm gdb.run
637
638VALGRINDARGS=--tool=memcheck --num-callers=8 --leak-resolution=high --leak-check=yes --show-reachable=yes -v
639
640valgrind: tclsh tcltest
641        @LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
642        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
643        valgrind $(VALGRINDARGS) ./tcltest $(TOP_DIR)/tests/all.tcl -singleproc 1 $(TESTFLAGS)
644
645valgrindshell: tclsh
646        @LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
647        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
648        valgrind $(VALGRINDARGS) ./tclsh $(SCRIPT)
649
650# The following target outputs the name of the top-level source directory for
651# Tcl (it is used by Tk's configure script, for example). The .NO_PARALLEL
652# line is needed to avoid problems under Sun's "pmake". Note: this target is
653# now obsolete (use the autoconf variable TCL_SRC_DIR from tclConfig.sh
654# instead).
655
656.NO_PARALLEL: topDirName
657topDirName:
658        @cd $(TOP_DIR); pwd
659
660# The following target generates the file generic/tclDate.c from the yacc
661# grammar found in generic/tclGetDate.y. This is only run by hand as yacc is
662# not available in all environments. The name of the .c file is different than
663# the name of the .y file so that make doesn't try to automatically regenerate
664# the .c file.
665
666gendate:
667        bison --output-file=$(GENERIC_DIR)/tclDate.c \
668        --no-lines \
669        --name-prefix=TclDate \
670        $(GENERIC_DIR)/tclGetDate.y
671
672#       yacc -l $(GENERIC_DIR)/tclGetDate.y
673#       sed -e 's/yy/TclDate/g' -e '/^#include <values.h>/d' \
674#           -e 's?SCCSID?RCS: @(#) ?' \
675#           -e '/#ifdef __STDC__/,/#endif/d' -e '/TclDateerrlab:/d' \
676#           -e '/TclDatenewstate:/d' -e '/#pragma/d' \
677#           -e '/#include <inttypes.h>/d' -e 's/const /CONST /g' \
678#           -e '/#define YYNEW/s/malloc/TclDateAlloc/g' \
679#           -e '/#define YYENLARGE/,/realloc/s/realloc/TclDateRealloc/g' \
680#           <y.tab.c >$(GENERIC_DIR)/tclDate.c
681#       rm y.tab.c
682
683# The following target generates the file generic/tclTomMath.h. It needs to be
684# run (and the results checked) after updating to a new release of libtommath.
685
686gentommath_h:
687        $(TCL_EXE) "$(TOOL_DIR)/fix_tommath_h.tcl" \
688                "$(TOMMATH_DIR)/tommath.h" \
689                > "$(GENERIC_DIR)/tclTomMath.h"
690
691# The following target generates the shared libraries in dltest/ that are used
692# for testing; they are included as part of the "tcltest" target (via the
693# BUILD_DLTEST variable) if dynamic loading is supported on this platform. The
694# Makefile in the dltest subdirectory creates the dltest.marker file in this
695# directory after a successful build.
696
697dltest.marker: ${STUB_LIB_FILE}
698        cd dltest ; $(MAKE)
699
700INSTALL_TARGETS = install-binaries install-libraries install-doc @EXTRA_INSTALL@
701
702install: $(INSTALL_TARGETS)
703
704install-strip:
705        $(MAKE) $(INSTALL_TARGETS) \
706                INSTALL_PROGRAM="$(INSTALL_PROGRAM) ${INSTALL_STRIP_PROGRAM}" \
707                INSTALL_LIBRARY="$(INSTALL_LIBRARY) ${INSTALL_STRIP_LIBRARY}"
708
709# Note: before running ranlib below, must cd to target directory because some
710# ranlibs write to current directory, and this might not always be possible
711# (e.g. if installing as root).
712
713install-binaries: binaries
714        @for i in "$(LIB_INSTALL_DIR)" "$(BIN_INSTALL_DIR)" ; \
715            do \
716            if [ ! -d "$$i" ] ; then \
717                echo "Making directory $$i"; \
718                mkdir -p "$$i"; \
719                chmod 755 "$$i"; \
720                else true; \
721                fi; \
722            done;
723        @if test ! -x $(SRC_DIR)/../unix/install-sh; then \
724            chmod +x $(SRC_DIR)/../unix/install-sh; \
725            fi
726        @echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/"
727        @@INSTALL_LIB@
728        @chmod 555 "$(LIB_INSTALL_DIR)"/$(LIB_FILE)
729        @if test "$(TCL_BUILD_EXP_FILE)" != ""; then \
730            echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
731            $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \
732                        "$(LIB_INSTALL_DIR)"/$(TCL_EXP_FILE); \
733            fi
734        @echo "Installing tclsh as $(BIN_INSTALL_DIR)/tclsh$(VERSION)"
735        @$(INSTALL_PROGRAM) tclsh "$(BIN_INSTALL_DIR)"/tclsh$(VERSION)
736        @echo "Installing tclConfig.sh to $(LIB_INSTALL_DIR)/"
737        @$(INSTALL_DATA) tclConfig.sh "$(LIB_INSTALL_DIR)"/tclConfig.sh
738        @if test "$(STUB_LIB_FILE)" != "" ; then \
739            echo "Installing $(STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \
740            @INSTALL_STUB_LIB@ ; \
741        fi
742        @EXTRA_INSTALL_BINARIES@
743
744install-libraries: libraries $(INSTALL_TZDATA) install-msgs
745        @for i in "$(INCLUDE_INSTALL_DIR)" "$(SCRIPT_INSTALL_DIR)"; \
746            do \
747            if [ ! -d "$$i" ] ; then \
748                echo "Making directory $$i"; \
749                mkdir -p "$$i"; \
750                chmod 755 "$$i"; \
751                else true; \
752                fi; \
753            done;
754        @for i in opt0.4 http1.0 encoding ../tcl8 ../tcl8/8.3 ../tcl8/8.4  ../tcl8/8.4/platform ../tcl8/8.5; \
755            do \
756            if [ ! -d "$(SCRIPT_INSTALL_DIR)"/$$i ] ; then \
757                echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
758                mkdir -p "$(SCRIPT_INSTALL_DIR)"/$$i; \
759                chmod 755 "$(SCRIPT_INSTALL_DIR)"/$$i; \
760                else true; \
761                fi; \
762            done;
763        @if test ! -x $(SRC_DIR)/../unix/install-sh; then \
764            chmod +x $(SRC_DIR)/../unix/install-sh; \
765            fi
766        @echo "Installing header files";
767        @for i in $(GENERIC_DIR)/tcl.h $(GENERIC_DIR)/tclDecls.h \
768                $(GENERIC_DIR)/tclPlatDecls.h \
769                $(GENERIC_DIR)/tclTomMath.h \
770                $(GENERIC_DIR)/tclTomMathDecls.h ; \
771            do \
772            $(INSTALL_DATA) $$i "$(INCLUDE_INSTALL_DIR)"; \
773            done;
774        @echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
775        @for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex \
776                $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix @DTRACE_SRC@; \
777            do \
778            $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"; \
779            done;
780        @echo "Installing library http1.0 directory";
781        @for i in $(TOP_DIR)/library/http1.0/*.tcl ; \
782            do \
783            $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/http1.0; \
784            done;
785        @echo "Installing package http 2.7 as a Tcl Module";
786        @$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/http-2.7.tm;
787        @echo "Installing library opt0.4 directory";
788        @for i in $(TOP_DIR)/library/opt/*.tcl ; \
789            do \
790            $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/opt0.4; \
791            done;
792        @echo "Installing package msgcat 1.4.2 as a Tcl Module";
793        @$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/msgcat-1.4.2.tm;
794        @echo "Installing package tcltest 2.3.0 as a Tcl Module";
795        @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.0.tm;
796
797        @echo "Installing package platform 1.0.3 as a Tcl Module";
798        @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.3.tm;
799        @echo "Installing package platform::shell 1.1.3 as a Tcl Module";
800        @$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform/shell-1.1.3.tm;
801
802        @echo "Installing library encoding directory";
803        @for i in $(TOP_DIR)/library/encoding/*.enc ; do \
804                $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/encoding; \
805        done;
806        @if [ -n "$(TCL_MODULE_PATH)" -a -f $(TOP_DIR)/library/tm.tcl ]; then \
807            echo "Customizing tcl module path"; \
808            echo "::tcl::tm::roots {$(TCL_MODULE_PATH)}" >> \
809                "$(SCRIPT_INSTALL_DIR)"/tm.tcl; \
810        fi
811
812install-tzdata: tclsh
813        @echo "Installing time zone data"
814        @@LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
815        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
816        ./tclsh $(TOOL_DIR)/installData.tcl \
817            $(TOP_DIR)/library/tzdata "$(SCRIPT_INSTALL_DIR)"/tzdata
818
819install-msgs: tclsh
820        @echo "Installing message catalogs"
821        @@LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
822        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
823        ./tclsh $(TOOL_DIR)/installData.tcl \
824            $(TOP_DIR)/library/msgs "$(SCRIPT_INSTALL_DIR)"/msgs
825
826install-doc: doc
827        @if test ! -x $(UNIX_DIR)/installManPage; then \
828            chmod +x $(UNIX_DIR)/installManPage; \
829            fi
830        @for i in "$(MAN_INSTALL_DIR)" "$(MAN1_INSTALL_DIR)" "$(MAN3_INSTALL_DIR)" "$(MANN_INSTALL_DIR)" ; \
831            do \
832            if [ ! -d "$$i" ] ; then \
833                echo "Making directory $$i"; \
834                mkdir -p "$$i"; \
835                chmod 755 "$$i"; \
836                else true; \
837                fi; \
838            done;
839        @echo "Installing and cross-linking top-level (.1) docs";
840        @for i in $(TOP_DIR)/doc/*.1; do \
841            $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN1_INSTALL_DIR)"; \
842        done
843
844        @echo "Installing and cross-linking C API (.3) docs";
845        @for i in $(TOP_DIR)/doc/*.3; do \
846            $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MAN3_INSTALL_DIR)"; \
847        done
848
849        @echo "Installing and cross-linking command (.n) docs";
850        @for i in $(TOP_DIR)/doc/*.n; do \
851            $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i "$(MANN_INSTALL_DIR)"; \
852        done
853
854# Optional target to install private headers
855install-private-headers: libraries
856        @for i in "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \
857            do \
858            if [ ! -d "$$i" ] ; then \
859                echo "Making directory $$i"; \
860                mkdir -p "$$i"; \
861                chmod 755 "$$i"; \
862                else true; \
863                fi; \
864            done;
865        @if test ! -x $(SRC_DIR)/../unix/install-sh; then \
866            chmod +x $(SRC_DIR)/../unix/install-sh; \
867            fi
868        @echo "Installing private header files";
869        @for i in $(GENERIC_DIR)/tclInt.h $(GENERIC_DIR)/tclIntDecls.h \
870                $(GENERIC_DIR)/tclIntPlatDecls.h $(GENERIC_DIR)/tclPort.h \
871                $(UNIX_DIR)/tclUnixPort.h; \
872            do \
873            $(INSTALL_DATA) $$i "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \
874            done;
875        @if test -f tclConfig.h; then\
876            $(INSTALL_DATA) tclConfig.h "$(PRIVATE_INCLUDE_INSTALL_DIR)"; \
877            fi;
878
879Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
880        $(SHELL) config.status
881#tclConfig.h: $(UNIX_DIR)/tclConfig.h.in
882#       $(SHELL) config.status
883
884clean:
885        rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
886                errors tclsh tcltest lib.exp Tcl
887        cd dltest ; $(MAKE) clean
888
889distclean: clean
890        rm -rf Makefile config.status config.cache config.log tclConfig.sh \
891                $(PACKAGE).* prototype tclConfig.h *.plist Tcl.framework
892        cd dltest ; $(MAKE) distclean
893
894depend:
895        makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
896
897# Test binaries. The rules for tclTestInit.o and xtTestInit.o are complicated
898# because they are compiled from tclAppInit.c. Can't use the "-o" option
899# because this doesn't work on some strange compilers (e.g. UnixWare).
900#
901# To enable concurrent parallel make of tclsh and tcltest resp xttest, these
902# targets have to depend on tclsh, this ensures that linking of tclsh with
903# tclAppInit.o does not execute concurrently with the renaming and recompiling
904# of that same object file in the targets below.
905
906tclTestInit.o: $(UNIX_DIR)/tclAppInit.c tclsh
907        @if test -f tclAppInit.o ; then \
908            rm -f tclAppInit.sav; \
909            mv tclAppInit.o tclAppInit.sav; \
910        fi;
911        $(CC) -c $(APP_CC_SWITCHES) \
912                -DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \
913                -DTCL_TEST $(UNIX_DIR)/tclAppInit.c
914        rm -f tclTestInit.o
915        mv tclAppInit.o tclTestInit.o
916        @if test -f tclAppInit.sav ; then \
917            mv tclAppInit.sav tclAppInit.o; \
918        fi;
919
920xtTestInit.o: $(UNIX_DIR)/tclAppInit.c tclsh
921        @if test -f tclAppInit.o ; then \
922            rm -f tclAppInit.sav; \
923            mv tclAppInit.o tclAppInit.sav; \
924        fi;
925        $(CC) -c $(APP_CC_SWITCHES) \
926                -DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \
927                -DTCL_TEST -DTCL_XT_TEST $(UNIX_DIR)/tclAppInit.c
928        rm -f xtTestInit.o
929        mv tclAppInit.o xtTestInit.o
930        @if test -f tclAppInit.sav ; then \
931            mv tclAppInit.sav tclAppInit.o; \
932        fi;
933
934# Object files used on all Unix systems:
935
936REGHDRS=$(GENERIC_DIR)/regex.h $(GENERIC_DIR)/regguts.h \
937                $(GENERIC_DIR)/regcustom.h
938TCLREHDRS=$(GENERIC_DIR)/tclRegexp.h
939COMPILEHDR=$(GENERIC_DIR)/tclCompile.h
940FSHDR=$(GENERIC_DIR)/tclFileSystem.h
941IOHDR=$(GENERIC_DIR)/tclIO.h
942MATHHDRS=$(GENERIC_DIR)/tommath.h $(GENERIC_DIR)/tclTomMath.h
943
944regcomp.o: $(REGHDRS) $(GENERIC_DIR)/regcomp.c $(GENERIC_DIR)/regc_lex.c \
945                $(GENERIC_DIR)/regc_color.c $(GENERIC_DIR)/regc_locale.c \
946                $(GENERIC_DIR)/regc_nfa.c $(GENERIC_DIR)/regc_cvec.c
947        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regcomp.c
948
949regexec.o: $(REGHDRS) $(GENERIC_DIR)/regexec.c $(GENERIC_DIR)/rege_dfa.c
950        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regexec.c
951
952regfree.o: $(REGHDRS) $(GENERIC_DIR)/regfree.c
953        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regfree.c
954
955regerror.o: $(REGHDRS) $(GENERIC_DIR)/regerrs.h $(GENERIC_DIR)/regerror.c
956        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regerror.c
957
958tclAppInit.o: $(UNIX_DIR)/tclAppInit.c
959        $(CC) -c $(APP_CC_SWITCHES) $(UNIX_DIR)/tclAppInit.c
960
961# On Unix we want to use the normal malloc/free implementation, so we
962# specifically set the USE_TCLALLOC flag.
963
964tclAlloc.o: $(GENERIC_DIR)/tclAlloc.c
965        $(CC) -c $(CC_SWITCHES) -DUSE_TCLALLOC=0 $(GENERIC_DIR)/tclAlloc.c
966
967tclAsync.o: $(GENERIC_DIR)/tclAsync.c
968        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclAsync.c
969
970tclBasic.o: $(GENERIC_DIR)/tclBasic.c $(COMPILEHDR) $(MATHHDRS)
971        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBasic.c
972
973tclBinary.o: $(GENERIC_DIR)/tclBinary.c
974        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBinary.c
975
976tclCkalloc.o: $(GENERIC_DIR)/tclCkalloc.c
977        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCkalloc.c
978
979tclClock.o: $(GENERIC_DIR)/tclClock.c
980        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclClock.c
981
982tclCmdAH.o: $(GENERIC_DIR)/tclCmdAH.c
983        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdAH.c
984
985tclCmdIL.o: $(GENERIC_DIR)/tclCmdIL.c $(TCLREHDRS)
986        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdIL.c
987
988tclCmdMZ.o: $(GENERIC_DIR)/tclCmdMZ.c $(TCLREHDRS)
989        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdMZ.c
990
991tclDate.o: $(GENERIC_DIR)/tclDate.c
992        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclDate.c
993
994tclCompCmds.o: $(GENERIC_DIR)/tclCompCmds.c $(COMPILEHDR)
995        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompCmds.c
996
997tclCompExpr.o: $(GENERIC_DIR)/tclCompExpr.c $(COMPILEHDR)
998        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompExpr.c
999
1000tclCompile.o: $(GENERIC_DIR)/tclCompile.c $(COMPILEHDR)
1001        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompile.c
1002
1003tclConfig.o: $(GENERIC_DIR)/tclConfig.c
1004        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclConfig.c
1005
1006tclDictObj.o: $(GENERIC_DIR)/tclDictObj.c $(MATHHDRS)
1007        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclDictObj.c
1008
1009tclEncoding.o: $(GENERIC_DIR)/tclEncoding.c
1010        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEncoding.c
1011
1012tclEnv.o: $(GENERIC_DIR)/tclEnv.c
1013        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEnv.c
1014
1015tclEvent.o: $(GENERIC_DIR)/tclEvent.c
1016        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEvent.c
1017
1018tclExecute.o: $(GENERIC_DIR)/tclExecute.c $(COMPILEHDR) $(MATHHDRS)
1019        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclExecute.c
1020
1021tclFCmd.o: $(GENERIC_DIR)/tclFCmd.c
1022        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFCmd.c
1023
1024tclFileName.o: $(GENERIC_DIR)/tclFileName.c $(FSHDR) $(TCLREHDRS)
1025        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFileName.c
1026
1027tclGet.o: $(GENERIC_DIR)/tclGet.c
1028        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclGet.c
1029
1030tclHash.o: $(GENERIC_DIR)/tclHash.c
1031        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHash.c
1032
1033tclHistory.o: $(GENERIC_DIR)/tclHistory.c
1034        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHistory.c
1035
1036tclIndexObj.o: $(GENERIC_DIR)/tclIndexObj.c
1037        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIndexObj.c
1038
1039tclInterp.o: $(GENERIC_DIR)/tclInterp.c
1040        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclInterp.c
1041
1042tclIO.o: $(GENERIC_DIR)/tclIO.c $(IOHDR)
1043        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIO.c
1044
1045tclIOCmd.o: $(GENERIC_DIR)/tclIOCmd.c
1046        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOCmd.c
1047
1048tclIOGT.o: $(GENERIC_DIR)/tclIOGT.c $(IOHDR)
1049        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOGT.c
1050
1051tclIOSock.o: $(GENERIC_DIR)/tclIOSock.c
1052        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOSock.c
1053
1054tclIOUtil.o: $(GENERIC_DIR)/tclIOUtil.c $(FSHDR)
1055        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOUtil.c
1056
1057tclIORChan.o: $(GENERIC_DIR)/tclIORChan.c $(IOHDR)
1058        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIORChan.c
1059
1060tclLink.o: $(GENERIC_DIR)/tclLink.c
1061        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLink.c
1062
1063tclListObj.o: $(GENERIC_DIR)/tclListObj.c
1064        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclListObj.c
1065
1066tclLiteral.o: $(GENERIC_DIR)/tclLiteral.c $(COMPILEHDR)
1067        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLiteral.c
1068
1069tclObj.o: $(GENERIC_DIR)/tclObj.c $(COMPILEHDR) $(MATHHDRS)
1070        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclObj.c
1071
1072tclLoad.o: $(GENERIC_DIR)/tclLoad.c
1073        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoad.c
1074
1075tclLoadAix.o: $(UNIX_DIR)/tclLoadAix.c
1076        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadAix.c
1077
1078tclLoadDl.o: $(UNIX_DIR)/tclLoadDl.c
1079        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl.c
1080
1081tclLoadDl2.o: $(UNIX_DIR)/tclLoadDl2.c
1082        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl2.c
1083
1084tclLoadDld.o: $(UNIX_DIR)/tclLoadDld.c
1085        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDld.c
1086
1087tclLoadDyld.o: $(UNIX_DIR)/tclLoadDyld.c
1088        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDyld.c
1089
1090tclLoadNone.o: $(GENERIC_DIR)/tclLoadNone.c
1091        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoadNone.c
1092
1093tclLoadOSF.o: $(UNIX_DIR)/tclLoadOSF.c
1094        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadOSF.c
1095
1096tclLoadShl.o: $(UNIX_DIR)/tclLoadShl.c
1097        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadShl.c
1098
1099tclMain.o: $(GENERIC_DIR)/tclMain.c
1100        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclMain.c
1101
1102tclNamesp.o: $(GENERIC_DIR)/tclNamesp.c
1103        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNamesp.c
1104
1105tclNotify.o: $(GENERIC_DIR)/tclNotify.c
1106        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNotify.c
1107
1108tclParse.o: $(GENERIC_DIR)/tclParse.c
1109        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclParse.c
1110
1111tclPanic.o: $(GENERIC_DIR)/tclPanic.c
1112        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPanic.c
1113
1114tclPathObj.o: $(GENERIC_DIR)/tclPathObj.c $(FSHDR)
1115        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPathObj.c
1116
1117tclPipe.o: $(GENERIC_DIR)/tclPipe.c
1118        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPipe.c
1119
1120tclPkg.o: $(GENERIC_DIR)/tclPkg.c
1121        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPkg.c
1122
1123# TIP #59, embedding of configuration information into the binary library.
1124#
1125# Part of Tcl's configuration information are the paths where it was installed
1126# and where it will look for its libraries (which can be different). We derive
1127# this information from the variables which can be overridden by the user. As
1128# every path can be configured separately we do not remember one general
1129# prefix/exec_prefix but all the different paths individually.
1130
1131tclPkgConfig.o: $(GENERIC_DIR)/tclPkgConfig.c
1132        $(CC)   -c $(CC_SWITCHES)                                       \
1133                -DCFG_INSTALL_LIBDIR="\"$(LIB_INSTALL_DIR)\"" \
1134                -DCFG_INSTALL_BINDIR="\"$(BIN_INSTALL_DIR)\"" \
1135                -DCFG_INSTALL_SCRDIR="\"$(SCRIPT_INSTALL_DIR)\"" \
1136                -DCFG_INSTALL_INCDIR="\"$(INCLUDE_INSTALL_DIR)\"" \
1137                -DCFG_INSTALL_DOCDIR="\"$(MAN_INSTALL_DIR)\"" \
1138                \
1139                -DCFG_RUNTIME_LIBDIR="\"$(libdir)\"" \
1140                -DCFG_RUNTIME_BINDIR="\"$(bindir)\"" \
1141                -DCFG_RUNTIME_SCRDIR="\"$(TCL_LIBRARY)\"" \
1142                -DCFG_RUNTIME_INCDIR="\"$(includedir)\"" \
1143                -DCFG_RUNTIME_DOCDIR="\"$(mandir)\"" \
1144                \
1145                $(GENERIC_DIR)/tclPkgConfig.c
1146
1147tclPosixStr.o: $(GENERIC_DIR)/tclPosixStr.c
1148        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPosixStr.c
1149
1150tclPreserve.o: $(GENERIC_DIR)/tclPreserve.c
1151        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPreserve.c
1152
1153tclProc.o: $(GENERIC_DIR)/tclProc.c $(COMPILEHDR)
1154        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclProc.c
1155
1156tclRegexp.o: $(GENERIC_DIR)/tclRegexp.c $(TCLREHDRS)
1157        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclRegexp.c
1158
1159tclResolve.o: $(GENERIC_DIR)/tclResolve.c
1160        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclResolve.c
1161
1162tclResult.o: $(GENERIC_DIR)/tclResult.c
1163        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclResult.c
1164
1165tclScan.o: $(GENERIC_DIR)/tclScan.c
1166        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclScan.c
1167
1168tclStringObj.o: $(GENERIC_DIR)/tclStringObj.c $(MATHHDRS)
1169        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStringObj.c
1170
1171tclStrToD.o: $(GENERIC_DIR)/tclStrToD.c $(MATHHDRS)
1172        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStrToD.c
1173
1174tclStubInit.o: $(GENERIC_DIR)/tclStubInit.c
1175        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStubInit.c
1176
1177tclTrace.o: $(GENERIC_DIR)/tclTrace.c
1178        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTrace.c
1179
1180tclUtil.o: $(GENERIC_DIR)/tclUtil.c
1181        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclUtil.c
1182
1183tclUtf.o: $(GENERIC_DIR)/tclUtf.c $(GENERIC_DIR)/tclUniData.c
1184        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclUtf.c
1185
1186tclVar.o: $(GENERIC_DIR)/tclVar.c
1187        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclVar.c
1188
1189tclTest.o: $(GENERIC_DIR)/tclTest.c $(IOHDR) $(TCLREHDRS)
1190        $(CC) -c $(APP_CC_SWITCHES) $(GENERIC_DIR)/tclTest.c
1191
1192tclTestObj.o: $(GENERIC_DIR)/tclTestObj.c $(MATHHDRS)
1193        $(CC) -c $(APP_CC_SWITCHES) $(GENERIC_DIR)/tclTestObj.c
1194
1195tclTestProcBodyObj.o: $(GENERIC_DIR)/tclTestProcBodyObj.c
1196        $(CC) -c $(APP_CC_SWITCHES) $(GENERIC_DIR)/tclTestProcBodyObj.c
1197
1198tclTimer.o: $(GENERIC_DIR)/tclTimer.c
1199        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTimer.c
1200
1201tclThread.o: $(GENERIC_DIR)/tclThread.c
1202        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThread.c
1203
1204tclThreadAlloc.o: $(GENERIC_DIR)/tclThreadAlloc.c
1205        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadAlloc.c
1206
1207tclThreadJoin.o: $(GENERIC_DIR)/tclThreadJoin.c
1208        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadJoin.c
1209
1210tclThreadStorage.o: $(GENERIC_DIR)/tclThreadStorage.c
1211        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadStorage.c
1212
1213tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c
1214        $(CC) -c $(APP_CC_SWITCHES) $(GENERIC_DIR)/tclThreadTest.c
1215
1216tclTomMathInterface.o: $(GENERIC_DIR)/tclTomMathInterface.c $(MATHHDRS)
1217        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTomMathInterface.c
1218
1219bncore.o: $(TOMMATH_DIR)/bncore.c $(MATHHDRS)
1220        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bncore.c
1221
1222bn_reverse.o: $(TOMMATH_DIR)/bn_reverse.c $(MATHHDRS)
1223        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_reverse.c
1224
1225bn_fast_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c $(MATHHDRS)
1226        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_mul_digs.c
1227
1228bn_fast_s_mp_sqr.o: $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c $(MATHHDRS)
1229        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_fast_s_mp_sqr.c
1230
1231bn_mp_add.o: $(TOMMATH_DIR)/bn_mp_add.c $(MATHHDRS)
1232        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add.c
1233
1234bn_mp_add_d.o: $(TOMMATH_DIR)/bn_mp_add_d.c $(MATHHDRS)
1235        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_add_d.c
1236
1237bn_mp_and.o: $(TOMMATH_DIR)/bn_mp_and.c $(MATHHDRS)
1238        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_and.c
1239
1240bn_mp_clamp.o: $(TOMMATH_DIR)/bn_mp_clamp.c $(MATHHDRS)
1241        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clamp.c
1242
1243bn_mp_clear.o: $(TOMMATH_DIR)/bn_mp_clear.c $(MATHHDRS)
1244        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear.c
1245
1246bn_mp_clear_multi.o: $(TOMMATH_DIR)/bn_mp_clear_multi.c $(MATHHDRS)
1247        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_clear_multi.c
1248
1249bn_mp_cmp.o: $(TOMMATH_DIR)/bn_mp_cmp.c $(MATHHDRS)
1250        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp.c
1251
1252bn_mp_cmp_d.o: $(TOMMATH_DIR)/bn_mp_cmp_d.c $(MATHHDRS)
1253        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_d.c
1254
1255bn_mp_cmp_mag.o: $(TOMMATH_DIR)/bn_mp_cmp_mag.c $(MATHHDRS)
1256        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_cmp_mag.c
1257
1258bn_mp_copy.o: $(TOMMATH_DIR)/bn_mp_copy.c $(MATHHDRS)
1259        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_copy.c
1260
1261bn_mp_count_bits.o: $(TOMMATH_DIR)/bn_mp_count_bits.c $(MATHHDRS)
1262        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_count_bits.c
1263
1264bn_mp_div.o: $(TOMMATH_DIR)/bn_mp_div.c $(MATHHDRS)
1265        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div.c
1266
1267bn_mp_div_d.o: $(TOMMATH_DIR)/bn_mp_div_d.c $(MATHHDRS)
1268        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_d.c
1269
1270bn_mp_div_2.o: $(TOMMATH_DIR)/bn_mp_div_2.c $(MATHHDRS)
1271        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2.c
1272
1273bn_mp_div_2d.o: $(TOMMATH_DIR)/bn_mp_div_2d.c $(MATHHDRS)
1274        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_2d.c
1275
1276bn_mp_div_3.o: $(TOMMATH_DIR)/bn_mp_div_3.c $(MATHHDRS)
1277        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_div_3.c
1278
1279bn_mp_exch.o: $(TOMMATH_DIR)/bn_mp_exch.c $(MATHHDRS)
1280        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_exch.c
1281
1282bn_mp_expt_d.o: $(TOMMATH_DIR)/bn_mp_expt_d.c $(MATHHDRS)
1283        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_expt_d.c
1284
1285bn_mp_grow.o: $(TOMMATH_DIR)/bn_mp_grow.c $(MATHHDRS)
1286        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_grow.c
1287
1288bn_mp_init.o: $(TOMMATH_DIR)/bn_mp_init.c $(MATHHDRS)
1289        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init.c
1290
1291bn_mp_init_copy.o: $(TOMMATH_DIR)/bn_mp_init_copy.c $(MATHHDRS)
1292        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_copy.c
1293
1294bn_mp_init_multi.o: $(TOMMATH_DIR)/bn_mp_init_multi.c $(MATHHDRS)
1295        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_multi.c
1296
1297bn_mp_init_set.o: $(TOMMATH_DIR)/bn_mp_init_set.c $(MATHHDRS)
1298        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_set.c
1299
1300bn_mp_init_size.o:$(TOMMATH_DIR)/bn_mp_init_size.c $(MATHHDRS)
1301        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_init_size.c
1302
1303bn_mp_karatsuba_mul.o: $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c $(MATHHDRS)
1304        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_mul.c
1305
1306bn_mp_karatsuba_sqr.o: $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c $(MATHHDRS)
1307        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_karatsuba_sqr.c
1308
1309bn_mp_lshd.o: $(TOMMATH_DIR)/bn_mp_lshd.c $(MATHHDRS)
1310        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_lshd.c
1311
1312bn_mp_mod.o: $(TOMMATH_DIR)/bn_mp_mod.c $(MATHHDRS)
1313        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod.c
1314
1315bn_mp_mod_2d.o: $(TOMMATH_DIR)/bn_mp_mod_2d.c $(MATHHDRS)
1316        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mod_2d.c
1317
1318bn_mp_mul.o: $(TOMMATH_DIR)/bn_mp_mul.c $(MATHHDRS)
1319        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul.c
1320
1321bn_mp_mul_2.o: $(TOMMATH_DIR)/bn_mp_mul_2.c $(MATHHDRS)
1322        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2.c
1323
1324bn_mp_mul_2d.o: $(TOMMATH_DIR)/bn_mp_mul_2d.c $(MATHHDRS)
1325        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_2d.c
1326
1327bn_mp_mul_d.o: $(TOMMATH_DIR)/bn_mp_mul_d.c $(MATHHDRS)
1328        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_mul_d.c
1329
1330bn_mp_neg.o: $(TOMMATH_DIR)/bn_mp_neg.c $(MATHHDRS)
1331        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_neg.c
1332
1333bn_mp_or.o: $(TOMMATH_DIR)/bn_mp_or.c $(MATHHDRS)
1334        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_or.c
1335
1336bn_mp_radix_size.o: $(TOMMATH_DIR)/bn_mp_radix_size.c $(MATHHDRS)
1337        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_size.c
1338
1339bn_mp_radix_smap.o: $(TOMMATH_DIR)/bn_mp_radix_smap.c $(MATHHDRS)
1340        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_radix_smap.c
1341
1342bn_mp_read_radix.o: $(TOMMATH_DIR)/bn_mp_read_radix.c $(MATHHDRS)
1343        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_read_radix.c
1344
1345bn_mp_rshd.o: $(TOMMATH_DIR)/bn_mp_rshd.c $(MATHHDRS)
1346        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_rshd.c
1347
1348bn_mp_set.o: $(TOMMATH_DIR)/bn_mp_set.c $(MATHHDRS)
1349        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_set.c
1350
1351bn_mp_shrink.o: $(TOMMATH_DIR)/bn_mp_shrink.c $(MATHHDRS)
1352        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_shrink.c
1353
1354bn_mp_sqr.o: $(TOMMATH_DIR)/bn_mp_sqr.c $(MATHHDRS)
1355        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqr.c
1356
1357bn_mp_sqrt.o: $(TOMMATH_DIR)/bn_mp_sqrt.c $(MATHHDRS)
1358        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sqrt.c
1359
1360bn_mp_sub.o: $(TOMMATH_DIR)/bn_mp_sub.c $(MATHHDRS)
1361        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub.c
1362
1363bn_mp_sub_d.o: $(TOMMATH_DIR)/bn_mp_sub_d.c $(MATHHDRS)
1364        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_sub_d.c
1365
1366bn_mp_to_unsigned_bin.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c $(MATHHDRS)
1367        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin.c
1368
1369bn_mp_to_unsigned_bin_n.o: $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c $(MATHHDRS)
1370        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_to_unsigned_bin_n.c
1371
1372bn_mp_toom_mul.o: $(TOMMATH_DIR)/bn_mp_toom_mul.c $(MATHHDRS)
1373        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_mul.c
1374
1375bn_mp_toom_sqr.o: $(TOMMATH_DIR)/bn_mp_toom_sqr.c $(MATHHDRS)
1376        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toom_sqr.c
1377
1378bn_mp_toradix_n.o: $(TOMMATH_DIR)/bn_mp_toradix_n.c $(MATHHDRS)
1379        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_toradix_n.c
1380
1381bn_mp_unsigned_bin_size.o: $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c $(MATHHDRS)
1382        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_unsigned_bin_size.c
1383
1384bn_mp_xor.o: $(TOMMATH_DIR)/bn_mp_xor.c $(MATHHDRS)
1385        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_xor.c
1386
1387bn_mp_zero.o: $(TOMMATH_DIR)/bn_mp_zero.c $(MATHHDRS)
1388        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_mp_zero.c
1389
1390bn_s_mp_add.o: $(TOMMATH_DIR)/bn_s_mp_add.c $(MATHHDRS)
1391        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_add.c
1392
1393bn_s_mp_mul_digs.o: $(TOMMATH_DIR)/bn_s_mp_mul_digs.c $(MATHHDRS)
1394        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_mul_digs.c
1395
1396bn_s_mp_sqr.o: $(TOMMATH_DIR)/bn_s_mp_sqr.c $(MATHHDRS)
1397        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sqr.c
1398
1399bn_s_mp_sub.o: $(TOMMATH_DIR)/bn_s_mp_sub.c $(MATHHDRS)
1400        $(CC) -c $(CC_SWITCHES) $(TOMMATH_DIR)/bn_s_mp_sub.c
1401
1402tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c $(IOHDR)
1403        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixChan.c
1404
1405tclUnixEvent.o: $(UNIX_DIR)/tclUnixEvent.c
1406        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixEvent.c
1407
1408tclUnixFCmd.o: $(UNIX_DIR)/tclUnixFCmd.c
1409        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFCmd.c
1410
1411tclUnixFile.o: $(UNIX_DIR)/tclUnixFile.c $(FSHDR)
1412        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFile.c
1413
1414tclUnixNotfy.o: $(UNIX_DIR)/tclUnixNotfy.c
1415        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixNotfy.c
1416
1417tclUnixPipe.o: $(UNIX_DIR)/tclUnixPipe.c
1418        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixPipe.c
1419
1420tclUnixSock.o: $(UNIX_DIR)/tclUnixSock.c
1421        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixSock.c
1422
1423tclUnixTest.o: $(UNIX_DIR)/tclUnixTest.c
1424        $(CC) -c $(APP_CC_SWITCHES) $(UNIX_DIR)/tclUnixTest.c
1425
1426tclUnixThrd.o: $(UNIX_DIR)/tclUnixThrd.c
1427        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixThrd.c
1428
1429tclUnixTime.o: $(UNIX_DIR)/tclUnixTime.c
1430        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTime.c
1431
1432tclUnixInit.o: $(UNIX_DIR)/tclUnixInit.c tclConfig.sh
1433        $(CC) -c $(CC_SWITCHES) -DTCL_LIBRARY=\"${TCL_LIBRARY}\" \
1434                -DTCL_PACKAGE_PATH="\"${TCL_PACKAGE_PATH}\"" \
1435                $(UNIX_DIR)/tclUnixInit.c
1436
1437tclUnixCompat.o: $(UNIX_DIR)/tclUnixCompat.c
1438        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixCompat.c
1439
1440# The following are Mac OS X only sources:
1441tclMacOSXBundle.o: $(MAC_OSX_DIR)/tclMacOSXBundle.c
1442        $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXBundle.c
1443
1444tclMacOSXFCmd.o: $(MAC_OSX_DIR)/tclMacOSXFCmd.c
1445        $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXFCmd.c
1446
1447tclMacOSXNotify.o: $(MAC_OSX_DIR)/tclMacOSXNotify.c
1448        $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXNotify.c
1449
1450# DTrace support
1451
1452$(TCL_OBJS): @DTRACE_HDR@
1453
1454$(DTRACE_HDR): $(DTRACE_SRC)
1455        $(DTRACE) -h $(DTRACE_SWITCHES) -o $@ -s $(DTRACE_SRC)
1456
1457$(DTRACE_OBJ): $(DTRACE_SRC) $(TCL_OBJS)
1458        $(DTRACE) -G $(DTRACE_SWITCHES) -o $@ -s $(DTRACE_SRC) $(TCL_OBJS)
1459
1460# The following targets are not completely general. They are provide purely
1461# for documentation purposes so people who are interested in the Xt based
1462# notifier can modify them to suit their own installation.
1463
1464xttest:  ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \
1465        @DL_OBJS@ ${BUILD_DLTEST}
1466        ${CC} ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \
1467                @DL_OBJS@ @TCL_BUILD_LIB_SPEC@ ${LIBS} \
1468                ${CC_SEARCH_FLAGS} -L/usr/openwin/lib -lXt -o xttest
1469
1470tclXtNotify.o: $(UNIX_DIR)/tclXtNotify.c
1471        $(CC) -c $(APP_CC_SWITCHES) -I/usr/openwin/include \
1472                $(UNIX_DIR)/tclXtNotify.c
1473
1474tclXtTest.o: $(UNIX_DIR)/tclXtTest.c
1475        $(CC) -c $(APP_CC_SWITCHES) -I/usr/openwin/include \
1476                $(UNIX_DIR)/tclXtTest.c
1477
1478# Compat binaries, these must be compiled for use in a shared library even
1479# though they may be placed in a static executable or library. Since they are
1480# included in both the tcl library and the stub library, they need to be
1481# relocatable.
1482
1483fixstrtod.o: $(COMPAT_DIR)/fixstrtod.c
1484        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/fixstrtod.c
1485
1486opendir.o: $(COMPAT_DIR)/opendir.c
1487        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/opendir.c
1488
1489memcmp.o: $(COMPAT_DIR)/memcmp.c
1490        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/memcmp.c
1491
1492strncasecmp.o: $(COMPAT_DIR)/strncasecmp.c
1493        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strncasecmp.c
1494
1495strstr.o: $(COMPAT_DIR)/strstr.c
1496        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strstr.c
1497
1498strtod.o: $(COMPAT_DIR)/strtod.c
1499        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtod.c
1500
1501strtol.o: $(COMPAT_DIR)/strtol.c
1502        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtol.c
1503
1504strtoul.o: $(COMPAT_DIR)/strtoul.c
1505        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtoul.c
1506
1507waitpid.o: $(COMPAT_DIR)/waitpid.c
1508        $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/waitpid.c
1509
1510# Stub library binaries, these must be compiled for use in a shared library
1511# even though they will be placed in a static archive
1512
1513tclStubLib.o: $(GENERIC_DIR)/tclStubLib.c
1514        $(CC) -c $(STUB_CC_SWITCHES) $(GENERIC_DIR)/tclStubLib.c
1515
1516.c.o:
1517        $(CC) -c $(CC_SWITCHES) $<
1518
1519#
1520# Target to regenerate header files and stub files from the *.decls tables.
1521#
1522
1523$(GENERIC_DIR)/tclStubInit.c: $(GENERIC_DIR)/tcl.decls \
1524                $(GENERIC_DIR)/tclInt.decls $(GENERIC_DIR)/tclTomMath.decls
1525        @echo "Warning: tclStubInit.c may be out of date."
1526        @echo "Developers may want to run \"make genstubs\" to regenerate."
1527        @echo "This warning can be safely ignored, do not report as a bug!"
1528
1529genstubs:
1530        $(TCL_EXE) $(TOOL_DIR)/genStubs.tcl $(GENERIC_DIR) \
1531                $(GENERIC_DIR)/tcl.decls $(GENERIC_DIR)/tclInt.decls \
1532                $(GENERIC_DIR)/tclTomMath.decls
1533
1534#
1535# Target to check that all exported functions have an entry in the stubs
1536# tables.
1537#
1538
1539checkstubs: $(TCL_LIB_FILE)
1540        -@for i in `nm -p $(TCL_LIB_FILE) \
1541                | awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \
1542                | sort -n`; do \
1543                match=0; \
1544                for j in $(TCL_DECLS); do \
1545                    if [ `grep -c "$$i *(" $$j` -gt 0 ]; then \
1546                        match=1; \
1547                    fi; \
1548                done; \
1549                if [ $$match -eq 0 ]; then echo $$i; fi \
1550        done
1551
1552#
1553# Target to check that all public APIs which are not command implementations
1554# have an entry in section three of the distributed manpages.
1555#
1556
1557checkdoc: $(TCL_LIB_FILE)
1558        -@for i in `nm -p $(TCL_LIB_FILE) | awk '$$3 ~ /Tcl_/ { print $$3 }' \
1559                | grep -v 'Cmd$$' | sort -n`; do \
1560                match=0; \
1561                for j in $(TOP_DIR)/doc/*.3; do \
1562                    if [ `grep '\-' $$j | grep -c $$i` -gt 0 ]; then \
1563                        match=1; \
1564                    fi; \
1565                done; \
1566                if [ $$match -eq 0 ]; then echo $$i; fi \
1567        done
1568
1569#
1570# Target to check for proper usage of UCHAR macro.
1571#
1572
1573checkuchar:
1574        -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
1575
1576#
1577# Target to make sure that only symbols with "Tcl" prefixes are exported.
1578#
1579
1580checkexports: $(TCL_LIB_FILE)
1581        -@nm -p $(TCL_LIB_FILE) \
1582        | awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \
1583        | sort -n | grep -E -v '^[Tt]cl' || true
1584
1585#
1586# Target to create a Tcl RPM for Linux. Requires that you be on a Linux
1587# system.
1588#
1589
1590rpm: all /bin/rpm
1591        rm -f THIS.TCL.SPEC
1592        echo "%define _builddir `pwd`" > THIS.TCL.SPEC
1593        echo "%define _rpmdir `pwd`/RPMS" >> THIS.TCL.SPEC
1594        cat tcl.spec >> THIS.TCL.SPEC
1595        mkdir -p RPMS/i386
1596        rpm -bb THIS.TCL.SPEC
1597        mv RPMS/i386/*.rpm .
1598        rm -rf RPMS THIS.TCL.SPEC
1599
1600#
1601# Target to create a proper Tcl distribution from information in the master
1602# source directory. DISTDIR must be defined to indicate where to put the
1603# distribution. DISTDIR must be an absolute path name.
1604#
1605
1606DISTROOT = /tmp/dist
1607DISTNAME = tcl${VERSION}${PATCH_LEVEL}
1608ZIPNAME  = tcl${MAJOR_VERSION}${MINOR_VERSION}${PATCH_LEVEL}-src.zip
1609DISTDIR  = $(DISTROOT)/$(DISTNAME)
1610$(UNIX_DIR)/configure: $(UNIX_DIR)/configure.in $(UNIX_DIR)/tcl.m4 \
1611                $(UNIX_DIR)/aclocal.m4
1612        cd $(UNIX_DIR); autoconf
1613$(MAC_OSX_DIR)/configure: $(MAC_OSX_DIR)/configure.ac $(UNIX_DIR)/configure
1614        cd $(MAC_OSX_DIR); autoconf
1615$(UNIX_DIR)/tclConfig.h.in: $(MAC_OSX_DIR)/configure
1616        cd $(MAC_OSX_DIR); autoheader; touch $@
1617
1618dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(MAC_OSX_DIR)/configure genstubs
1619        rm -rf $(DISTDIR)
1620        mkdir -p $(DISTDIR)/unix
1621        cp -p $(UNIX_DIR)/*.[ch] $(DISTDIR)/unix
1622        cp $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
1623        chmod 664 $(DISTDIR)/unix/Makefile.in
1624        cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \
1625                $(UNIX_DIR)/tcl.m4 $(UNIX_DIR)/aclocal.m4 \
1626                $(UNIX_DIR)/tclConfig.sh.in $(UNIX_DIR)/install-sh \
1627                $(UNIX_DIR)/README $(UNIX_DIR)/ldAix $(UNIX_DIR)/tcl.spec \
1628                $(UNIX_DIR)/installManPage $(UNIX_DIR)/tclConfig.h.in \
1629                $(DISTDIR)/unix
1630        chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in
1631        chmod 775 $(DISTDIR)/unix/ldAix
1632        chmod +x $(DISTDIR)/unix/install-sh
1633        mkdir $(DISTDIR)/generic
1634        cp -p $(GENERIC_DIR)/*.[cdh] $(DISTDIR)/generic
1635        cp -p $(GENERIC_DIR)/*.decls $(DISTDIR)/generic
1636        cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic
1637        cp -p $(GENERIC_DIR)/tclGetDate.y $(DISTDIR)/generic
1638        cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README* \
1639                $(TOP_DIR)/ChangeLog.[12]??? $(TOP_DIR)/license.terms \
1640                $(DISTDIR)
1641        mkdir $(DISTDIR)/library
1642        cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \
1643                $(TOP_DIR)/library/tclIndex $(DISTDIR)/library
1644        for i in http1.0 http opt msgcat reg dde tcltest platform; \
1645            do \
1646                mkdir $(DISTDIR)/library/$$i ;\
1647                cp -p $(TOP_DIR)/library/$$i/*.tcl $(DISTDIR)/library/$$i; \
1648            done;
1649        mkdir $(DISTDIR)/library/encoding
1650        cp -p $(TOP_DIR)/library/encoding/*.enc $(DISTDIR)/library/encoding
1651        mkdir $(DISTDIR)/library/msgs
1652        cp -p $(TOP_DIR)/library/msgs/*.msg $(DISTDIR)/library/msgs
1653        ( cd $(TOP_DIR); \
1654          find library/tzdata -name CVS -prune -o -type f -print ) \
1655            | ( cd $(TOP_DIR) ; xargs tar cf - ) \
1656            | ( cd $(DISTDIR) ; tar xfp - )
1657        mkdir $(DISTDIR)/doc
1658        cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \
1659                $(TOP_DIR)/doc/man.macros $(DISTDIR)/doc
1660        mkdir $(DISTDIR)/compat
1661        cp -p $(TOP_DIR)/license.terms $(COMPAT_DIR)/*.[ch] \
1662                $(COMPAT_DIR)/README $(DISTDIR)/compat
1663        mkdir $(DISTDIR)/tests
1664        cp -p $(TOP_DIR)/license.terms $(DISTDIR)/tests
1665        cp -p $(TOP_DIR)/tests/*.test $(TOP_DIR)/tests/README \
1666                $(TOP_DIR)/tests/httpd $(TOP_DIR)/tests/*.tcl \
1667                $(DISTDIR)/tests
1668        mkdir $(DISTDIR)/win
1669        cp $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win
1670        cp $(TOP_DIR)/win/configure.in $(TOP_DIR)/win/configure \
1671                $(TOP_DIR)/win/tclConfig.sh.in \
1672                $(TOP_DIR)/win/tcl.m4 $(TOP_DIR)/win/aclocal.m4 \
1673                $(DISTDIR)/win
1674        cp -p $(TOP_DIR)/win/*.[ch] $(TOP_DIR)/win/*.ico $(TOP_DIR)/win/*.rc \
1675                $(DISTDIR)/win
1676        cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win
1677        $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/*.bat
1678        cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win
1679        $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/makefile.*
1680        cp -p $(TOP_DIR)/win/rules.vc $(DISTDIR)/win
1681        $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rules.vc
1682        cp -p $(TOP_DIR)/win/coffbase.txt $(DISTDIR)/win
1683        $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/coffbase.txt
1684        cp -p $(TOP_DIR)/win/tcl.hpj.in $(DISTDIR)/win
1685        $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.hpj.in
1686        cp -p $(TOP_DIR)/win/tcl.ds* $(DISTDIR)/win
1687        $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.ds*
1688        cp -p $(TOP_DIR)/win/README $(DISTDIR)/win
1689        cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win
1690        mkdir $(DISTDIR)/macosx
1691        cp -p $(MAC_OSX_DIR)/GNUmakefile $(MAC_OSX_DIR)/README \
1692                $(MAC_OSX_DIR)/*.c $(MAC_OSX_DIR)/*.in \
1693                $(MAC_OSX_DIR)/*.ac $(MAC_OSX_DIR)/*.xcconfig \
1694                $(MAC_OSX_DIR)/configure $(DISTDIR)/macosx
1695        cp -p $(TOP_DIR)/license.terms $(DISTDIR)/macosx
1696        mkdir $(DISTDIR)/macosx/Tcl.pbproj
1697        cp -p $(MAC_OSX_DIR)/Tcl.pbproj/*.pbx* $(DISTDIR)/macosx/Tcl.pbproj
1698        mkdir $(DISTDIR)/macosx/Tcl.xcode
1699        cp -p $(MAC_OSX_DIR)/Tcl.xcode/*.pbx* $(DISTDIR)/macosx/Tcl.xcode
1700        mkdir $(DISTDIR)/macosx/Tcl.xcodeproj
1701        cp -p $(TOP_DIR)/macosx/Tcl.xcodeproj/*.pbx* $(DISTDIR)/macosx/Tcl.xcodeproj
1702        mkdir $(DISTDIR)/unix/dltest
1703        cp -p $(UNIX_DIR)/dltest/*.c $(UNIX_DIR)/dltest/Makefile.in \
1704                $(UNIX_DIR)/dltest/README \
1705                $(DISTDIR)/unix/dltest
1706        mkdir $(DISTDIR)/tools
1707        cp -p $(TOOL_DIR)/Makefile.in $(TOOL_DIR)/README \
1708                $(TOOL_DIR)/configure $(TOOL_DIR)/configure.in \
1709                $(TOOL_DIR)/*.tcl $(TOOL_DIR)/man2tcl.c \
1710                $(TOOL_DIR)/tcl.wse.in $(TOOL_DIR)/*.bmp \
1711                $(TOOL_DIR)/tcl.hpj.in \
1712                $(DISTDIR)/tools
1713        $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/tools/tcl.hpj.in \
1714                $(DISTDIR)/tools/tcl.wse.in
1715        mkdir $(DISTDIR)/libtommath
1716        cp -p $(TOMMATH_SRCS) $(TOMMATH_DIR)/*.h \
1717                $(DISTDIR)/libtommath
1718
1719#
1720# The following target can only be used for non-patch releases. Use the
1721# "allpatch" target below for patch releases.
1722#
1723
1724alldist: dist
1725        rm -f $(DISTROOT)/$(DISTNAME)-src.tar.gz $(DISTROOT)/$(ZIPNAME)
1726        cd $(DISTROOT); tar cf $(DISTNAME)-src.tar $(DISTNAME); \
1727                gzip -9 $(DISTNAME)-src.tar; zip -qr8 $(ZIPNAME) $(DISTNAME)
1728
1729#
1730# The target below is similar to "alldist" except it works for patch releases.
1731# It is needed because patch releases are peculiar: the patch designation
1732# appears in the name of the compressed file (e.g. tcl8.0p1.tar.gz) but the
1733# extracted source directory doesn't include the patch designation (e.g.,
1734# tcl8.0).
1735#
1736
1737allpatch: dist
1738        rm -f $(DISTROOT)/$(DISTNAME)-src.tar.gz $(DISTROOT)/$(ZIPNAME)
1739        mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/old
1740        mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tcl${VERSION}
1741        cd $(DISTROOT); tar cf $(DISTNAME)-src.tar tcl${VERSION}; \
1742                gzip -9 $(DISTNAME)-src.tar; zip -r8 $(ZIPNAME) tcl${VERSION}
1743        mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/$(DISTNAME)
1744        mv $(DISTROOT)/old $(DISTROOT)/tcl${VERSION}
1745
1746#
1747# This target creates the HTML folder for Tcl & Tk and places it in
1748# DISTDIR/html. It uses the tcltk-man2html.tcl tool from the Tcl group's tool
1749# workspace. It depends on the Tcl & Tk being in directories called tcl8.* &
1750# tk8.* up two directories from the TOOL_DIR.
1751#
1752
1753html: tclsh
1754        $(BUILD_HTML)
1755        @EXTRA_BUILD_HTML@
1756html-tcl: tclsh
1757        $(BUILD_HTML) --tcl
1758        @EXTRA_BUILD_HTML@
1759html-tk: tclsh
1760        $(BUILD_HTML) --tk
1761        @EXTRA_BUILD_HTML@
1762
1763BUILD_HTML = \
1764        @@LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
1765        TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
1766        ./tclsh $(TOOL_DIR)/tcltk-man2html.tcl --htmldir="$(HTML_INSTALL_DIR)" \
1767                --srcdir=$(TOP_DIR)/.. $(BUILD_HTML_FLAGS)
1768
1769#
1770# Targets to build Solaris package of the distribution for the current
1771# architecture. To build stream packages for both sun4 and i86pc
1772# architectures:
1773#
1774#   On the sun4 machine, execute the following:
1775#     make distclean; ./configure
1776#     make DISTDIR=<distdir> package
1777#
1778#   Once the build is complete, execute the following on the i86pc machine:
1779#     make DISTDIR=<distdir> package-quick
1780#
1781# <distdir> is the absolute path to a directory where the build should take
1782# place. These steps will generate the $(PACKAGE).sun4 and $(PACKAGE).i86pc
1783# stream packages. It is important that the packages be built in this fashion
1784# in order to ensure that the architecture independent files are exactly the
1785# same, including timestamps, in both packages.
1786#
1787
1788PACKAGE=SCRPtcl
1789
1790package: dist package-config package-common package-binaries package-generate
1791package-quick: package-config package-binaries package-generate
1792
1793#
1794# Configure for the current architecture in the dist directory.
1795#
1796package-config:
1797        mkdir -p $(DISTDIR)/unix/`arch`
1798        cd $(DISTDIR)/unix/`arch`; \
1799        ../configure --prefix=/opt/$(PACKAGE)/$(VERSION) \
1800                --exec_prefix=/opt/$(PACKAGE)/$(VERSION)/`arch` \
1801                --enable-shared
1802        mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)
1803        mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`
1804
1805#
1806# Build and install the architecture independent files in the dist directory.
1807#
1808
1809package-common:
1810        cd $(DISTDIR)/unix/`arch`;\
1811        $(MAKE); \
1812        $(MAKE) prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \
1813                exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch` \
1814                install-libraries install-man
1815        mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin
1816        sed -e "s/TCLVERSION/$(VERSION)/g" < $(UNIX_DIR)/tclsh.sh \
1817                > $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION)
1818        chmod 755 $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION)
1819
1820#
1821# Build and install the architecture specific files in the dist directory.
1822#
1823
1824package-binaries:
1825        cd $(DISTDIR)/unix/`arch`; \
1826        $(MAKE); \
1827        $(MAKE) install-binaries prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \
1828                exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`
1829
1830#
1831# Generate a package from the installed files in the dist directory for the
1832# current architecture.
1833#
1834
1835package-generate:
1836        pkgproto $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin=bin \
1837                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/include=include \
1838                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/lib=lib \
1839                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/man=man \
1840                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`=`arch` \
1841        | $(TCL_EXE) $(UNIX_DIR)/mkProto.tcl \
1842                $(VERSION) $(UNIX_DIR) > prototype
1843        pkgmk -o -d . -f prototype -a `arch`
1844        pkgtrans -s . $(PACKAGE).`arch` $(PACKAGE)
1845        rm -rf $(PACKAGE)
1846
1847# DO NOT DELETE THIS LINE -- make depend depends on it.
Note: See TracBrowser for help on using the repository browser.