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