diff -r 000000000000 -r bde4ae8d615e os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/unix/Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/unix/Makefile.in Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,1501 @@ +# +# This file is a Makefile for Tcl. If it has the name "Makefile.in" +# then it is a template for a Makefile; to generate the actual Makefile, +# run "./configure", which is a configuration script generated by the +# "autoconf" program (constructs like "@foo@" will get replaced in the +# actual Makefile. +# +# RCS: @(#) $Id: Makefile.in,v 1.121.2.20 2007/04/30 22:58:18 das Exp $ + +VERSION = @TCL_VERSION@ +MAJOR_VERSION = @TCL_MAJOR_VERSION@ +MINOR_VERSION = @TCL_MINOR_VERSION@ +PATCH_LEVEL = @TCL_PATCH_LEVEL@ + +#---------------------------------------------------------------- +# Things you can change to personalize the Makefile for your own +# site (you can make these changes in either Makefile.in or +# Makefile, but changes to Makefile will get lost if you re-run +# the configuration script). +#---------------------------------------------------------------- + +# Default top-level directories in which to install architecture- +# specific files (exec_prefix) and machine-independent files such +# as scripts (prefix). The values specified here may be overridden +# at configure-time with the --exec-prefix and --prefix options +# to the "configure" script. The *dir vars are standard configure +# substitutions that are based off prefix and exec_prefix. + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +mandir = @mandir@ + +# The following definition can be set to non-null for special systems +# like AFS with replication. It allows the pathnames used for installation +# to be different than those used for actually reference files at +# run-time. INSTALL_ROOT is prepended to $prefix and $exec_prefix +# when installing files. +INSTALL_ROOT = $(DESTDIR) + +# Path for the platform independent Tcl scripting libraries: +TCL_LIBRARY = @TCL_LIBRARY@ + +# Path to use at runtime to refer to LIB_INSTALL_DIR: +LIB_RUNTIME_DIR = $(libdir) + +# Directory in which to install the program tclsh: +BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir) + +# Directory in which to install libtcl.so or libtcl.a: +LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir) + +# Path name to use when installing library scripts. +SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY) + +# Directory in which to install the include file tcl.h: +INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir) + +# Path to the private tcl header dir: +PRIVATE_INCLUDE_DIR = @PRIVATE_INCLUDE_DIR@ + +# Directory in which to (optionally) install the private tcl headers: +PRIVATE_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(PRIVATE_INCLUDE_DIR) + +# Top-level directory in which to install manual entries: +MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mandir) + +# Directory in which to install manual entry for tclsh: +MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1 + +# Directory in which to install manual entries for Tcl's C library +# procedures: +MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3 + +# Directory in which to install manual entries for the built-in +# Tcl commands: +MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann + +# Path to the html documentation dir: +HTML_DIR = @HTML_DIR@ + +# Directory in which to install html documentation: +HTML_INSTALL_DIR = $(INSTALL_ROOT)$(HTML_DIR) + +# Package search path. +TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@ + +# Libraries built with optimization switches have this additional extension +TCL_DBGX = @TCL_DBGX@ + +# warning flags +CFLAGS_WARNING = @CFLAGS_WARNING@ + +# The default switches for optimization or debugging +CFLAGS_DEBUG = @CFLAGS_DEBUG@ +CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@ + +# To change the compiler switches, for example to change from optimization to +# debugging symbols, change the following line: +#CFLAGS = $(CFLAGS_DEBUG) +#CFLAGS = $(CFLAGS_OPTIMIZE) +#CFLAGS = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE) +CFLAGS = @CFLAGS_DEFAULT@ @CFLAGS@ -DTCL_DBGX=$(TCL_DBGX) + +# Flags to pass to the linker +LDFLAGS_DEBUG = @LDFLAGS_DEBUG@ +LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@ +LDFLAGS = @LDFLAGS_DEFAULT@ @LDFLAGS@ + +# To disable ANSI-C procedure prototypes reverse the comment characters +# on the following lines: +PROTO_FLAGS = +#PROTO_FLAGS = -DNO_PROTOTYPE + +# Mathematical functions like sin and atan2 are enabled for expressions +# by default. To disable them, reverse the comment characters on the +# following pairs of lines: +MATH_FLAGS = +#MATH_FLAGS = -DTCL_NO_MATH +MATH_LIBS = @MATH_LIBS@ +#MATH_LIBS = + +# If you use the setenv, putenv, or unsetenv procedures to modify +# environment variables in your application and you'd like those +# modifications to appear in the "env" Tcl variable, switch the +# comments on the two lines below so that Tcl provides these +# procedures instead of your standard C library. + +ENV_FLAGS = +#ENV_FLAGS = -DTclSetEnv=setenv -DTcl_PutEnv=putenv -DTclUnsetEnv=unsetenv + +# To compile for non-UNIX systems (so that only the non-UNIX-specific +# commands are available), reverse the comment characters on the +# following pairs of lines. In addition, you'll have to provide your +# own replacement for the "panic" procedure (see panic.c for what +# the current one does). +GENERIC_FLAGS = +#GENERIC_FLAGS = -DTCL_GENERIC_ONLY +UNIX_OBJS = tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o \ + tclUnixFile.o tclUnixPipe.o tclUnixSock.o \ + tclUnixTime.o tclUnixInit.o tclUnixThrd.o \ + tclUnixCompat.o +#UNIX_OBJS = +NOTIFY_OBJS = tclUnixNotfy.o +#NOTIFY_OBJS = + +# To enable memory debugging reverse the comment characters on the following +# lines or call configure with --enable-symbols=mem +# Warning: if you enable memory debugging, you must do it *everywhere*, +# including all the code that calls Tcl, and you must use ckalloc and +# ckfree everywhere instead of malloc and free. +MEM_DEBUG_FLAGS = +#MEM_DEBUG_FLAGS = -DTCL_MEM_DEBUG + +TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@ +#TCL_STUB_LIB_FILE = libtclstub.a + +# Generic stub lib name used in rules that apply to tcl and tk +STUB_LIB_FILE = ${TCL_STUB_LIB_FILE} + +TCL_STUB_LIB_FLAG = @TCL_STUB_LIB_FLAG@ +#TCL_STUB_LIB_FLAG = -ltclstub + +# To enable compilation debugging reverse the comment characters on one +# of the following lines or call configure with --enable-symbols=compile +COMPILE_DEBUG_FLAGS = +#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS + +# To compile without backward compatibility and deprecated code +# uncomment the following +NO_DEPRECATED_FLAGS = +#NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED + +# Some versions of make, like SGI's, use the following variable to +# determine which shell to use for executing commands: +SHELL = /bin/sh + +# Tcl used to let the configure script choose which program to use +# for installing, but there are just too many different versions of +# "install" around; better to use the install-sh script that comes +# with the distribution, which is slower but guaranteed to work. + +INSTALL_STRIP_PROGRAM = -s +INSTALL_STRIP_LIBRARY = -S -S + +INSTALL = @srcdir@/install-sh -c +INSTALL_PROGRAM = ${INSTALL} +INSTALL_LIBRARY = ${INSTALL} +INSTALL_DATA = ${INSTALL} -m 644 + +# TCL_EXE is the name of a tclsh executable that is available *BEFORE* +# running make for the first time. Certain build targets (make genstubs) +# need it to be available on the PATH. This executable should *NOT* be +# required just to do a normal build although it can be required to run +# make dist. +TCL_EXE = tclsh + +# The symbols below provide support for dynamic loading and shared +# libraries. See configure.in for a description of what the +# symbols mean. The values of the symbols are normally set by the +# configure script. You shouldn't normally need to modify any of +# these definitions by hand. + +STLIB_LD = @STLIB_LD@ +SHLIB_LD = @SHLIB_LD@ +SHLIB_CFLAGS = @SHLIB_CFLAGS@ +SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ +TCL_SHLIB_LD_EXTRAS = @TCL_SHLIB_LD_EXTRAS@ + +SHLIB_SUFFIX = @SHLIB_SUFFIX@ +#SHLIB_SUFFIX = + +DLTEST_TARGETS = dltest.marker + +# Additional search flags needed to find the various shared libraries +# at run-time. The first symbol is for use when creating a binary +# with cc, and the second is for use when running ld directly. +CC_SEARCH_FLAGS = @CC_SEARCH_FLAGS@ +LD_SEARCH_FLAGS = @LD_SEARCH_FLAGS@ + +# The following symbol is defined to "$(DLTEST_TARGETS)" if dynamic +# loading is available; this causes everything in the "dltest" +# subdirectory to be built when making "tcltest. If dynamic loading +# isn't available, configure defines this symbol to an empty string, +# in which case the shared libraries aren't built. +BUILD_DLTEST = @BUILD_DLTEST@ +#BUILD_DLTEST = + +TCL_LIB_FILE = @TCL_LIB_FILE@ +#TCL_LIB_FILE = libtcl.a + +# Generic lib name used in rules that apply to tcl and tk +LIB_FILE = ${TCL_LIB_FILE} + +TCL_LIB_FLAG = @TCL_LIB_FLAG@ +#TCL_LIB_FLAG = -ltcl + +TCL_EXP_FILE = @TCL_EXP_FILE@ +TCL_BUILD_EXP_FILE = @TCL_BUILD_EXP_FILE@ + +# support for embedded libraries on Darwin / Mac OS X +DYLIB_INSTALL_DIR = ${LIB_RUNTIME_DIR} + +#---------------------------------------------------------------- +# The information below is modified by the configure script when +# Makefile is generated from Makefile.in. You shouldn't normally +# modify any of this stuff by hand. +#---------------------------------------------------------------- + +COMPAT_OBJS = @LIBOBJS@ + +AC_FLAGS = @DEFS@ +AR = @AR@ +RANLIB = @RANLIB@ +SRC_DIR = @srcdir@ +TOP_DIR = $(SRC_DIR)/.. +GENERIC_DIR = $(TOP_DIR)/generic +COMPAT_DIR = $(TOP_DIR)/compat +TOOL_DIR = $(TOP_DIR)/tools +UNIX_DIR = $(SRC_DIR) +MAC_OSX_DIR = $(TOP_DIR)/macosx +# Must be absolute because of the cd dltest $(DLTEST_DIR)/configure below. +DLTEST_DIR = @TCL_SRC_DIR@/unix/dltest +# Must be absolute to so the corresponding tcltest's tcl_library is absolute. +TCL_BUILDTIME_LIBRARY = @TCL_SRC_DIR@/library + +CC = @CC@ +#CC = purify -best-effort @CC@ -DPURIFY + +# Flags to be passed to installManPage to control whether the manpages +# should be compressed and linked with softlinks +MAN_FLAGS = @MAN_FLAGS@ + +#---------------------------------------------------------------- +# The information below is usually usable as is. The configure +# script won't modify it and it only exists to make working +# around selected rare system configurations easier. +#---------------------------------------------------------------- + +GDB = gdb +DDD = ddd + +#---------------------------------------------------------------- +# The information below should be usable as is. The configure +# script won't modify it and you shouldn't need to modify it +# either. +#---------------------------------------------------------------- + + +CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \ +-I${GENERIC_DIR} -I${SRC_DIR} \ +${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \ +${COMPILE_DEBUG_FLAGS} ${NO_DEPRECATED_FLAGS} ${ENV_FLAGS} \ +-DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\" @EXTRA_CC_SWITCHES@ + +STUB_CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \ +-I${GENERIC_DIR} -I${SRC_DIR} \ +${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \ +${COMPILE_DEBUG_FLAGS} ${ENV_FLAGS} -DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\" @EXTRA_CC_SWITCHES@ + +LIBS = @DL_LIBS@ @LIBS@ $(MATH_LIBS) + +DEPEND_SWITCHES = ${CFLAGS} -I${GENERIC_DIR} -I${SRC_DIR} \ +${AC_FLAGS} ${MATH_FLAGS} \ +${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \ +-DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\" @EXTRA_CC_SWITCHES@ + +TCLSH_OBJS = tclAppInit.o + +TCLTEST_OBJS = tclTestInit.o tclTest.o tclTestObj.o tclTestProcBodyObj.o \ + tclThreadTest.o tclUnixTest.o + +XTTEST_OBJS = xtTestInit.o tclTest.o tclTestObj.o tclTestProcBodyObj.o \ + tclThreadTest.o tclUnixTest.o tclXtNotify.o tclXtTest.o + +GENERIC_OBJS = regcomp.o regexec.o regfree.o regerror.o tclAlloc.o \ + tclAsync.o tclBasic.o tclBinary.o \ + tclCkalloc.o tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o \ + tclCompCmds.o tclCompExpr.o tclCompile.o tclDate.o tclEncoding.o \ + tclEnv.o tclEvent.o tclExecute.o tclFCmd.o tclFileName.o tclGet.o \ + tclHash.o tclHistory.o tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o \ + tclIOGT.o tclIOSock.o tclIOUtil.o tclLink.o tclListObj.o \ + tclLiteral.o tclLoad.o tclMain.o tclNamesp.o tclNotify.o \ + tclObj.o tclPanic.o tclParse.o tclParseExpr.o tclPipe.o \ + tclPkg.o tclPosixStr.o tclPreserve.o tclProc.o tclRegexp.o \ + tclResolve.o tclResult.o tclScan.o tclStringObj.o tclThread.o \ + tclThreadAlloc.o tclThreadJoin.o tclStubInit.o tclStubLib.o \ + tclTimer.o tclUtf.o tclUtil.o tclVar.o + +STUB_LIB_OBJS = tclStubLib.o ${COMPAT_OBJS} + +MAC_OSX_OBJS = tclMacOSXBundle.o tclMacOSXNotify.o + +OBJS = ${GENERIC_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} ${COMPAT_OBJS} \ + @DL_OBJS@ @PLAT_OBJS@ + +TCL_DECLS = \ + $(GENERIC_DIR)/tcl.decls \ + $(GENERIC_DIR)/tclInt.decls + +GENERIC_HDRS = \ + $(GENERIC_DIR)/tcl.h \ + $(GENERIC_DIR)/tclDecls.h \ + $(GENERIC_DIR)/tclInt.h \ + $(GENERIC_DIR)/tclIntDecls.h \ + $(GENERIC_DIR)/tclIntPlatDecls.h \ + $(GENERIC_DIR)/tclPatch.h \ + $(GENERIC_DIR)/tclPlatDecls.h \ + $(GENERIC_DIR)/tclPort.h \ + $(GENERIC_DIR)/tclRegexp.h + +GENERIC_SRCS = \ + $(GENERIC_DIR)/regcomp.c \ + $(GENERIC_DIR)/regexec.c \ + $(GENERIC_DIR)/regfree.c \ + $(GENERIC_DIR)/regerror.c \ + $(GENERIC_DIR)/tclAlloc.c \ + $(GENERIC_DIR)/tclAsync.c \ + $(GENERIC_DIR)/tclBasic.c \ + $(GENERIC_DIR)/tclBinary.c \ + $(GENERIC_DIR)/tclCkalloc.c \ + $(GENERIC_DIR)/tclClock.c \ + $(GENERIC_DIR)/tclCmdAH.c \ + $(GENERIC_DIR)/tclCmdIL.c \ + $(GENERIC_DIR)/tclCmdMZ.c \ + $(GENERIC_DIR)/tclCompCmds.c \ + $(GENERIC_DIR)/tclCompExpr.c \ + $(GENERIC_DIR)/tclCompile.c \ + $(GENERIC_DIR)/tclDate.c \ + $(GENERIC_DIR)/tclEncoding.c \ + $(GENERIC_DIR)/tclEnv.c \ + $(GENERIC_DIR)/tclEvent.c \ + $(GENERIC_DIR)/tclExecute.c \ + $(GENERIC_DIR)/tclFCmd.c \ + $(GENERIC_DIR)/tclFileName.c \ + $(GENERIC_DIR)/tclGet.c \ + $(GENERIC_DIR)/tclHash.c \ + $(GENERIC_DIR)/tclHistory.c \ + $(GENERIC_DIR)/tclIndexObj.c \ + $(GENERIC_DIR)/tclInterp.c \ + $(GENERIC_DIR)/tclIO.c \ + $(GENERIC_DIR)/tclIOCmd.c \ + $(GENERIC_DIR)/tclIOGT.c \ + $(GENERIC_DIR)/tclIOSock.c \ + $(GENERIC_DIR)/tclIOUtil.c \ + $(GENERIC_DIR)/tclLink.c \ + $(GENERIC_DIR)/tclListObj.c \ + $(GENERIC_DIR)/tclLiteral.c \ + $(GENERIC_DIR)/tclLoad.c \ + $(GENERIC_DIR)/tclMain.c \ + $(GENERIC_DIR)/tclNamesp.c \ + $(GENERIC_DIR)/tclNotify.c \ + $(GENERIC_DIR)/tclObj.c \ + $(GENERIC_DIR)/tclParse.c \ + $(GENERIC_DIR)/tclParseExpr.c \ + $(GENERIC_DIR)/tclPipe.c \ + $(GENERIC_DIR)/tclPkg.c \ + $(GENERIC_DIR)/tclPosixStr.c \ + $(GENERIC_DIR)/tclPreserve.c \ + $(GENERIC_DIR)/tclProc.c \ + $(GENERIC_DIR)/tclRegexp.c \ + $(GENERIC_DIR)/tclResolve.c \ + $(GENERIC_DIR)/tclResult.c \ + $(GENERIC_DIR)/tclScan.c \ + $(GENERIC_DIR)/tclStubInit.c \ + $(GENERIC_DIR)/tclStubLib.c \ + $(GENERIC_DIR)/tclStringObj.c \ + $(GENERIC_DIR)/tclTest.c \ + $(GENERIC_DIR)/tclTestObj.c \ + $(GENERIC_DIR)/tclTestProcBodyObj.c \ + $(GENERIC_DIR)/tclThread.c \ + $(GENERIC_DIR)/tclThreadAlloc.c \ + $(GENERIC_DIR)/tclThreadJoin.c \ + $(GENERIC_DIR)/tclTimer.c \ + $(GENERIC_DIR)/tclUtil.c \ + $(GENERIC_DIR)/tclVar.c + +STUB_SRCS = \ + $(GENERIC_DIR)/tclStubLib.c + +UNIX_HDRS = \ + $(UNIX_DIR)/tclUnixPort.h + +UNIX_SRCS = \ + $(UNIX_DIR)/tclAppInit.c \ + $(UNIX_DIR)/tclUnixChan.c \ + $(UNIX_DIR)/tclUnixEvent.c \ + $(UNIX_DIR)/tclUnixFCmd.c \ + $(UNIX_DIR)/tclUnixFile.c \ + $(UNIX_DIR)/tclUnixPipe.c \ + $(UNIX_DIR)/tclUnixSock.c \ + $(UNIX_DIR)/tclUnixTest.c \ + $(UNIX_DIR)/tclUnixThrd.c \ + $(UNIX_DIR)/tclUnixTime.c \ + $(UNIX_DIR)/tclUnixInit.c \ + $(UNIX_DIR)/tclUnixCompat.c + +NOTIFY_SRCS = \ + $(UNIX_DIR)/tclUnixNotfy.c + +DL_SRCS = \ + $(UNIX_DIR)/tclLoadAix.c \ + $(UNIX_DIR)/tclLoadAout.c \ + $(UNIX_DIR)/tclLoadDl.c \ + $(UNIX_DIR)/tclLoadDl2.c \ + $(UNIX_DIR)/tclLoadDld.c \ + $(UNIX_DIR)/tclLoadDyld.c \ + $(GENERIC_DIR)/tclLoadNone.c \ + $(UNIX_DIR)/tclLoadOSF.c \ + $(UNIX_DIR)/tclLoadShl.c + +MAC_OSX_SRCS = \ + $(MAC_OSX_DIR)/tclMacOSXBundle.c \ + $(MAC_OSX_DIR)/tclMacOSXNotify.c + +# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those +# files won't compile on the current machine, and they will cause +# problems for things like "make depend". + +SRCS = $(GENERIC_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) $(STUB_SRCS) @PLAT_SRCS@ + +all: binaries libraries doc + +binaries: ${LIB_FILE} $(STUB_LIB_FILE) $(TCL_BUILD_EXP_FILE) tclsh + +libraries: + +doc: + +# The following target is configured by autoconf to generate either +# a shared library or non-shared library for Tcl. +${LIB_FILE}: ${OBJS} ${STUB_LIB_FILE} + rm -f $@ + @MAKE_LIB@ + +${STUB_LIB_FILE}: ${STUB_LIB_OBJS} + rm -f $@ + @MAKE_STUB_LIB@ + +# Make target which outputs the list of the .o contained in the Tcl lib +# usefull to build a single big shared library containing Tcl and other +# extensions. used for the Tcl Plugin. -- dl +# The dependency on OBJS is not there because we just want the list +# of objects here, not actually building them +tclLibObjs: + @echo ${OBJS} +# This targets actually build the objects needed for the lib in the above +# case +objs: ${OBJS} + + +tclsh: ${TCLSH_OBJS} ${TCL_LIB_FILE} + ${CC} ${CFLAGS} ${LDFLAGS} ${TCLSH_OBJS} @TCL_BUILD_LIB_SPEC@ ${LIBS} \ + ${CC_SEARCH_FLAGS} -o tclsh + +# Resetting the LIB_RUNTIME_DIR below is required so that +# the generated tcltest executable gets the build directory +# burned into its ld search path. This keeps tcltest from +# picking up an already installed version of the Tcl library. + +tcltest: ${TCLTEST_OBJS} ${TCL_LIB_FILE} ${BUILD_DLTEST} + $(MAKE) tcltest-real LIB_RUNTIME_DIR=`pwd` + +tcltest-real: + ${CC} ${CFLAGS} ${LDFLAGS} ${TCLTEST_OBJS} @TCL_BUILD_LIB_SPEC@ ${LIBS} \ + ${CC_SEARCH_FLAGS} -o tcltest + +# Note, in the target below TCL_LIBRARY needs to be set or else +# "make test" won't work in the case where the compilation directory +# isn't the same as the source directory. +# Specifying TESTFLAGS on the command line is the standard way to pass +# args to tcltest, ie: +# % make test TESTFLAGS="-verbose bps -file fileName.test" + +test: tcltest + @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \ + ./tcltest $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) $(TCLTESTARGS) + +# Useful target to launch a built tcltest with the proper path,... +runtest: tcltest + @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \ + ./tcltest + +# Useful target for running the test suite with an unwritable current +# directory... +ro-test: tcltest + @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \ + echo 'exec chmod -w .;package require tcltest;tcltest::temporaryDirectory /tmp;source ../tests/all.tcl;exec chmod +w .' | ./tcltest + +# This target can be used to run tclsh from the build directory +# via `make shell SCRIPT=/tmp/foo.tcl` +shell: tclsh + @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \ + ./tclsh $(SCRIPT) + +# This target can be used to run tclsh inside either gdb or insight +gdb: tclsh + @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}" > gdb.run + @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run + $(GDB) ./tclsh --command=gdb.run + rm gdb.run + +# This target can be used to run tclsh inside ddd +ddd: tclsh + @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}" > gdb.run + @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run + $(DDD) -command=gdb.run ./tclsh + rm gdb.run + +VALGRINDARGS=--tool=memcheck --num-callers=8 --leak-resolution=high --leak-check=yes --show-reachable=yes -v + +valgrind: tclsh tcltest + @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \ + valgrind $(VALGRINDARGS) ./tcltest $(TOP_DIR)/tests/all.tcl -singleproc 1 $(TESTFLAGS) $(TCLTESTARGS) + +valgrindshell: tclsh + @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \ + valgrind $(VALGRINDARGS) ./tclsh $(SCRIPT) + +# The following target outputs the name of the top-level source directory +# for Tcl (it is used by Tk's configure script, for example). The +# .NO_PARALLEL line is needed to avoid problems under Sun's "pmake". +# Note: this target is now obsolete (use the autoconf variable +# TCL_SRC_DIR from tclConfig.sh instead). + +.NO_PARALLEL: topDirName +topDirName: + @cd $(TOP_DIR); pwd + +# The following target generates the file generic/tclDate.c +# from the yacc grammar found in generic/tclGetDate.y. This is +# only run by hand as yacc is not available in all environments. +# The name of the .c file is different than the name of the .y file +# so that make doesn't try to automatically regenerate the .c file. + +gendate: + yacc -l $(GENERIC_DIR)/tclGetDate.y + sed -e 's/yy/TclDate/g' -e '/^#include /d' \ + -e 's?SCCSID?RCS: @(#) ?' \ + -e '/#ifdef __STDC__/,/#endif/d' -e '/TclDateerrlab:/d' \ + -e '/TclDatenewstate:/d' -e '/#pragma/d' \ + -e '/#include /d' -e 's/const /CONST /g' \ + $(GENERIC_DIR)/tclDate.c + rm y.tab.c + +# The following target generates the shared libraries in dltest/ that +# are used for testing; they are included as part of the "tcltest" +# target (via the BUILD_DLTEST variable) if dynamic loading is supported +# on this platform. The Makefile in the dltest subdirectory creates +# the dltest.marker file in this directory after a successful build. + +dltest.marker: + cd dltest ; $(MAKE) + +INSTALL_TARGETS = install-binaries install-libraries install-doc @EXTRA_INSTALL@ + +install: $(INSTALL_TARGETS) + +install-strip: + $(MAKE) $(INSTALL_TARGETS) \ + INSTALL_PROGRAM="$(INSTALL_PROGRAM) ${INSTALL_STRIP_PROGRAM}" \ + INSTALL_LIBRARY="$(INSTALL_LIBRARY) ${INSTALL_STRIP_LIBRARY}" + +# Note: before running ranlib below, must cd to target directory because +# some ranlibs write to current directory, and this might not always be +# possible (e.g. if installing as root). + +install-binaries: binaries + @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \ + do \ + if [ ! -d $$i ] ; then \ + echo "Making directory $$i"; \ + mkdir -p $$i; \ + chmod 755 $$i; \ + else true; \ + fi; \ + done; + @if test ! -x $(SRC_DIR)/install-sh; then \ + chmod +x $(SRC_DIR)/install-sh; \ + fi + @echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/" + @@INSTALL_LIB@ + @chmod 555 $(LIB_INSTALL_DIR)/$(LIB_FILE) + @if test "$(TCL_BUILD_EXP_FILE)" != ""; then \ + echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \ + $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \ + $(LIB_INSTALL_DIR)/$(TCL_EXP_FILE); \ + fi + @echo "Installing tclsh as $(BIN_INSTALL_DIR)/tclsh$(VERSION)" + @$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION) + @echo "Installing tclConfig.sh to $(LIB_INSTALL_DIR)/" + @$(INSTALL_DATA) tclConfig.sh $(LIB_INSTALL_DIR)/tclConfig.sh + @if test "$(STUB_LIB_FILE)" != "" ; then \ + echo "Installing $(STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \ + @INSTALL_STUB_LIB@ ; \ + fi + @EXTRA_INSTALL_BINARIES@ + +install-libraries: libraries + @for i in $(INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR); \ + do \ + if [ ! -d $$i ] ; then \ + echo "Making directory $$i"; \ + mkdir -p $$i; \ + chmod 755 $$i; \ + else true; \ + fi; \ + done; + @for i in http2.5 http1.0 opt0.4 encoding msgcat1.3 tcltest2.2; \ + do \ + if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \ + echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \ + mkdir -p $(SCRIPT_INSTALL_DIR)/$$i; \ + chmod 755 $(SCRIPT_INSTALL_DIR)/$$i; \ + else true; \ + fi; \ + done; + @if test ! -x $(SRC_DIR)/install-sh; then \ + chmod +x $(SRC_DIR)/install-sh; \ + fi + @echo "Installing header files"; + @for i in $(GENERIC_DIR)/tcl.h $(GENERIC_DIR)/tclDecls.h \ + $(GENERIC_DIR)/tclPlatDecls.h; \ + do \ + $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \ + done; + @echo "Installing library files to $(SCRIPT_INSTALL_DIR)"; + @for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \ + do \ + $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \ + done; + @echo "Installing library http1.0 directory"; + @for j in $(TOP_DIR)/library/http1.0/*.tcl ; \ + do \ + $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/http1.0; \ + done; + @echo "Installing library http2.5 directory"; + @for j in $(TOP_DIR)/library/http/*.tcl ; \ + do \ + $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/http2.5; \ + done; + @echo "Installing library opt0.4 directory"; + @for j in $(TOP_DIR)/library/opt/*.tcl ; \ + do \ + $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/opt0.4; \ + done; + @echo "Installing library msgcat1.3 directory"; + @for j in $(TOP_DIR)/library/msgcat/*.tcl ; \ + do \ + $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/msgcat1.3; \ + done; + @echo "Installing library tcltest2.2 directory"; + @for j in $(TOP_DIR)/library/tcltest/*.tcl ; \ + do \ + $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/tcltest2.2; \ + done; + @echo "Installing library encoding directory"; + @for i in $(TOP_DIR)/library/encoding/*.enc ; do \ + $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/encoding; \ + done; + +install-doc: doc + @if test ! -x $(UNIX_DIR)/installManPage; then \ + chmod +x $(UNIX_DIR)/installManPage; \ + fi + @for i in $(MAN_INSTALL_DIR) $(MAN1_INSTALL_DIR) $(MAN3_INSTALL_DIR) $(MANN_INSTALL_DIR) ; \ + do \ + if [ ! -d $$i ] ; then \ + echo "Making directory $$i"; \ + mkdir -p $$i; \ + chmod 755 $$i; \ + else true; \ + fi; \ + done; + @echo "Installing and cross-linking top-level (.1) docs"; + @for i in $(TOP_DIR)/doc/*.1; do \ + $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i $(MAN1_INSTALL_DIR); \ + done + + @echo "Installing and cross-linking C API (.3) docs"; + @for i in $(TOP_DIR)/doc/*.3; do \ + $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i $(MAN3_INSTALL_DIR); \ + done + + @echo "Installing and cross-linking command (.n) docs"; + @for i in $(TOP_DIR)/doc/*.n; do \ + $(UNIX_DIR)/installManPage $(MAN_FLAGS) $$i $(MANN_INSTALL_DIR); \ + done + +# Optional target to install private headers +install-private-headers: libraries + @for i in $(PRIVATE_INCLUDE_INSTALL_DIR); \ + do \ + if [ ! -d $$i ] ; then \ + echo "Making directory $$i"; \ + mkdir -p $$i; \ + chmod 755 $$i; \ + else true; \ + fi; \ + done; + @if test ! -x $(SRC_DIR)/install-sh; then \ + chmod +x $(SRC_DIR)/install-sh; \ + fi + @echo "Installing private header files"; + @for i in $(GENERIC_DIR)/tclInt.h $(GENERIC_DIR)/tclIntDecls.h \ + $(GENERIC_DIR)/tclIntPlatDecls.h \ + $(UNIX_DIR)/tclUnixPort.h $(GENERIC_DIR)/tclMath.h; \ + do \ + $(INSTALL_DATA) $$i $(PRIVATE_INCLUDE_INSTALL_DIR); \ + done; + @sed -e 's#\.\./unix/##' $(GENERIC_DIR)/tclPort.h > tclPort.h; \ + $(INSTALL_DATA) tclPort.h $(PRIVATE_INCLUDE_INSTALL_DIR); \ + rm -f tclPort.h + +Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in + $(SHELL) config.status + +clean: + rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \ + errors tclsh tcltest lib.exp Tcl + cd dltest ; $(MAKE) clean + +distclean: clean + rm -rf Makefile config.status config.cache config.log tclConfig.sh \ + $(PACKAGE).* prototype *.plist Tcl.framework + cd dltest ; $(MAKE) distclean + +depend: + makedepend -- $(DEPEND_SWITCHES) -- $(SRCS) + +# Test binaries. The rules for tclTestInit.o and xtTestInit.o are +# complicated because they are compiled from tclAppInit.c. Can't use +# the "-o" option because this doesn't work on some strange compilers +# (e.g. UnixWare). +# To enable concurrent parallel make of tclsh and tcltest resp xttest, these +# targets have to depend on tclsh, this ensures that linking of tclsh with +# tclAppInit.o does not execute concurrently with the renaming and recompiling +# of that same object file in the targets below. + +tclTestInit.o: $(UNIX_DIR)/tclAppInit.c tclsh + @if test -f tclAppInit.o ; then \ + rm -f tclAppInit.sav; \ + mv tclAppInit.o tclAppInit.sav; \ + fi; + $(CC) -c $(CC_SWITCHES) \ + -DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \ + -DTCL_TEST $(UNIX_DIR)/tclAppInit.c + rm -f tclTestInit.o + mv tclAppInit.o tclTestInit.o + @if test -f tclAppInit.sav ; then \ + mv tclAppInit.sav tclAppInit.o; \ + fi; + +xtTestInit.o: $(UNIX_DIR)/tclAppInit.c tclsh + @if test -f tclAppInit.o ; then \ + rm -f tclAppInit.sav; \ + mv tclAppInit.o tclAppInit.sav; \ + fi; + $(CC) -c $(CC_SWITCHES) \ + -DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \ + -DTCL_TEST -DTCL_XT_TEST $(UNIX_DIR)/tclAppInit.c + rm -f xtTestInit.o + mv tclAppInit.o xtTestInit.o + @if test -f tclAppInit.sav ; then \ + mv tclAppInit.sav tclAppInit.o; \ + fi; + +# Object files used on all Unix systems: + +REGHDRS=$(GENERIC_DIR)/regex.h $(GENERIC_DIR)/regguts.h \ + $(GENERIC_DIR)/regcustom.h +regcomp.o: $(REGHDRS) $(GENERIC_DIR)/regcomp.c $(GENERIC_DIR)/regc_lex.c \ + $(GENERIC_DIR)/regc_color.c $(GENERIC_DIR)/regc_locale.c \ + $(GENERIC_DIR)/regc_nfa.c $(GENERIC_DIR)/regc_cvec.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regcomp.c + +regexec.o: $(REGHDRS) $(GENERIC_DIR)/regexec.c $(GENERIC_DIR)/rege_dfa.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regexec.c + +regfree.o: $(REGHDRS) $(GENERIC_DIR)/regfree.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regfree.c + +regerror.o: $(REGHDRS) $(GENERIC_DIR)/regerrs.h $(GENERIC_DIR)/regerror.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regerror.c + +tclAppInit.o: $(UNIX_DIR)/tclAppInit.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclAppInit.c + +# On unix we want to use the normal malloc/free implementation, so we +# specifically set the USE_TCLALLOC flag. + +tclAlloc.o: $(GENERIC_DIR)/tclAlloc.c + $(CC) -c $(CC_SWITCHES) -DUSE_TCLALLOC=0 $(GENERIC_DIR)/tclAlloc.c + +tclAsync.o: $(GENERIC_DIR)/tclAsync.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclAsync.c + +tclBasic.o: $(GENERIC_DIR)/tclBasic.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBasic.c + +tclBinary.o: $(GENERIC_DIR)/tclBinary.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBinary.c + +tclCkalloc.o: $(GENERIC_DIR)/tclCkalloc.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCkalloc.c + +tclClock.o: $(GENERIC_DIR)/tclClock.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclClock.c + +tclCmdAH.o: $(GENERIC_DIR)/tclCmdAH.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdAH.c + +tclCmdIL.o: $(GENERIC_DIR)/tclCmdIL.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdIL.c + +tclCmdMZ.o: $(GENERIC_DIR)/tclCmdMZ.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdMZ.c + +tclDate.o: $(GENERIC_DIR)/tclDate.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclDate.c + +tclCompCmds.o: $(GENERIC_DIR)/tclCompCmds.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompCmds.c + +tclCompExpr.o: $(GENERIC_DIR)/tclCompExpr.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompExpr.c + +tclCompile.o: $(GENERIC_DIR)/tclCompile.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompile.c + +tclEncoding.o: $(GENERIC_DIR)/tclEncoding.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEncoding.c + +tclEnv.o: $(GENERIC_DIR)/tclEnv.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEnv.c + +tclEvent.o: $(GENERIC_DIR)/tclEvent.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEvent.c + +tclExecute.o: $(GENERIC_DIR)/tclExecute.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclExecute.c + +tclFCmd.o: $(GENERIC_DIR)/tclFCmd.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFCmd.c + +tclFileName.o: $(GENERIC_DIR)/tclFileName.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFileName.c + +tclGet.o: $(GENERIC_DIR)/tclGet.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclGet.c + +tclHash.o: $(GENERIC_DIR)/tclHash.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHash.c + +tclHistory.o: $(GENERIC_DIR)/tclHistory.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHistory.c + +tclIndexObj.o: $(GENERIC_DIR)/tclIndexObj.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIndexObj.c + +tclInterp.o: $(GENERIC_DIR)/tclInterp.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclInterp.c + +tclIO.o: $(GENERIC_DIR)/tclIO.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIO.c + +tclIOCmd.o: $(GENERIC_DIR)/tclIOCmd.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOCmd.c + +tclIOGT.o: $(GENERIC_DIR)/tclIOGT.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOGT.c + +tclIOSock.o: $(GENERIC_DIR)/tclIOSock.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOSock.c + +tclIOUtil.o: $(GENERIC_DIR)/tclIOUtil.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOUtil.c + +tclLink.o: $(GENERIC_DIR)/tclLink.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLink.c + +tclListObj.o: $(GENERIC_DIR)/tclListObj.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclListObj.c + +tclLiteral.o: $(GENERIC_DIR)/tclLiteral.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLiteral.c + +tclObj.o: $(GENERIC_DIR)/tclObj.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclObj.c + +tclLoad.o: $(GENERIC_DIR)/tclLoad.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoad.c + +tclLoadAix.o: $(UNIX_DIR)/tclLoadAix.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadAix.c + +tclLoadAout.o: $(UNIX_DIR)/tclLoadAout.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadAout.c + +tclLoadDl.o: $(UNIX_DIR)/tclLoadDl.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl.c + +tclLoadDl2.o: $(UNIX_DIR)/tclLoadDl2.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl2.c + +tclLoadDld.o: $(UNIX_DIR)/tclLoadDld.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDld.c + +tclLoadDyld.o: $(UNIX_DIR)/tclLoadDyld.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDyld.c + +tclLoadNone.o: $(GENERIC_DIR)/tclLoadNone.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoadNone.c + +tclLoadOSF.o: $(UNIX_DIR)/tclLoadOSF.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadOSF.c + +tclLoadShl.o: $(UNIX_DIR)/tclLoadShl.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadShl.c + +tclMain.o: $(GENERIC_DIR)/tclMain.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclMain.c + +tclNamesp.o: $(GENERIC_DIR)/tclNamesp.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNamesp.c + +tclNotify.o: $(GENERIC_DIR)/tclNotify.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNotify.c + +tclParse.o: $(GENERIC_DIR)/tclParse.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclParse.c + +tclParseExpr.o: $(GENERIC_DIR)/tclParseExpr.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclParseExpr.c + +tclPanic.o: $(GENERIC_DIR)/tclPanic.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPanic.c + +tclPipe.o: $(GENERIC_DIR)/tclPipe.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPipe.c + +tclPkg.o: $(GENERIC_DIR)/tclPkg.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPkg.c + +tclPosixStr.o: $(GENERIC_DIR)/tclPosixStr.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPosixStr.c + +tclPreserve.o: $(GENERIC_DIR)/tclPreserve.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPreserve.c + +tclProc.o: $(GENERIC_DIR)/tclProc.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclProc.c + +tclRegexp.o: $(GENERIC_DIR)/tclRegexp.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclRegexp.c + +tclResolve.o: $(GENERIC_DIR)/tclResolve.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclResolve.c + +tclResult.o: $(GENERIC_DIR)/tclResult.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclResult.c + +tclScan.o: $(GENERIC_DIR)/tclScan.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclScan.c + +tclStringObj.o: $(GENERIC_DIR)/tclStringObj.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStringObj.c + +tclStubInit.o: $(GENERIC_DIR)/tclStubInit.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStubInit.c + +tclUtil.o: $(GENERIC_DIR)/tclUtil.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclUtil.c + +tclUtf.o: $(GENERIC_DIR)/tclUtf.c $(GENERIC_DIR)/tclUniData.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclUtf.c + +tclVar.o: $(GENERIC_DIR)/tclVar.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclVar.c + +tclTest.o: $(GENERIC_DIR)/tclTest.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTest.c + +tclTestObj.o: $(GENERIC_DIR)/tclTestObj.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTestObj.c + +tclTestProcBodyObj.o: $(GENERIC_DIR)/tclTestProcBodyObj.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTestProcBodyObj.c + +tclTimer.o: $(GENERIC_DIR)/tclTimer.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTimer.c + +tclThread.o: $(GENERIC_DIR)/tclThread.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThread.c + +tclThreadAlloc.o: $(GENERIC_DIR)/tclThreadAlloc.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadAlloc.c + +tclThreadJoin.o: $(GENERIC_DIR)/tclThreadJoin.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadJoin.c + +tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadTest.c + +tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixChan.c + +tclUnixEvent.o: $(UNIX_DIR)/tclUnixEvent.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixEvent.c + +tclUnixFCmd.o: $(UNIX_DIR)/tclUnixFCmd.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFCmd.c + +tclUnixFile.o: $(UNIX_DIR)/tclUnixFile.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFile.c + +tclUnixNotfy.o: $(UNIX_DIR)/tclUnixNotfy.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixNotfy.c + +tclUnixPipe.o: $(UNIX_DIR)/tclUnixPipe.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixPipe.c + +tclUnixSock.o: $(UNIX_DIR)/tclUnixSock.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixSock.c + +tclUnixTest.o: $(UNIX_DIR)/tclUnixTest.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTest.c + +tclUnixThrd.o: $(UNIX_DIR)/tclUnixThrd.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixThrd.c + +tclUnixTime.o: $(UNIX_DIR)/tclUnixTime.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTime.c + +tclUnixInit.o: $(UNIX_DIR)/tclUnixInit.c $(GENERIC_DIR)/tclInitScript.h tclConfig.sh + $(CC) -c $(CC_SWITCHES) -DTCL_LIBRARY=\"${TCL_LIBRARY}\" \ + -DTCL_PACKAGE_PATH="\"${TCL_PACKAGE_PATH}\"" \ + $(UNIX_DIR)/tclUnixInit.c + +tclUnixCompat.o: $(UNIX_DIR)/tclUnixCompat.c + $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixCompat.c + +# The following are Mac OS X only sources: +tclMacOSXBundle.o: $(MAC_OSX_DIR)/tclMacOSXBundle.c + $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXBundle.c + +tclMacOSXNotify.o: $(MAC_OSX_DIR)/tclMacOSXNotify.c + $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXNotify.c + +# The following targets are not completely general. They are provide +# purely for documentation purposes so people who are interested in +# the Xt based notifier can modify them to suit their own installation. + +xttest: ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \ + @DL_OBJS@ ${BUILD_DLTEST} + ${CC} ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \ + @DL_OBJS@ @TCL_BUILD_LIB_SPEC@ ${LIBS} \ + ${CC_SEARCH_FLAGS} -L/usr/openwin/lib -lXt -o xttest + +tclXtNotify.o: $(UNIX_DIR)/tclXtNotify.c + $(CC) -c $(CC_SWITCHES) -I/usr/openwin/include \ + $(UNIX_DIR)/tclXtNotify.c + +tclXtTest.o: $(UNIX_DIR)/tclXtTest.c + $(CC) -c $(CC_SWITCHES) -I/usr/openwin/include \ + $(UNIX_DIR)/tclXtTest.c + +# compat binaries, these must be compiled for use in a shared library +# even though they may be placed in a static executable or library. Since +# they are included in both the tcl library and the stub library, they +# need to be relocatable. + +fixstrtod.o: $(COMPAT_DIR)/fixstrtod.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/fixstrtod.c + +opendir.o: $(COMPAT_DIR)/opendir.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/opendir.c + +memcmp.o: $(COMPAT_DIR)/memcmp.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/memcmp.c + +strncasecmp.o: $(COMPAT_DIR)/strncasecmp.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strncasecmp.c + +strstr.o: $(COMPAT_DIR)/strstr.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strstr.c + +strtod.o: $(COMPAT_DIR)/strtod.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtod.c + +strtol.o: $(COMPAT_DIR)/strtol.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtol.c + +strtoll.o: $(COMPAT_DIR)/strtoll.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtoll.c + +strtoul.o: $(COMPAT_DIR)/strtoul.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtoul.c + +strtoull.o: $(COMPAT_DIR)/strtoull.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtoull.c + +tmpnam.o: $(COMPAT_DIR)/tmpnam.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/tmpnam.c + +waitpid.o: $(COMPAT_DIR)/waitpid.c + $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/waitpid.c + +# Stub library binaries, these must be compiled for use in a shared library +# even though they will be placed in a static archive + +tclStubLib.o: $(GENERIC_DIR)/tclStubLib.c + $(CC) -c $(STUB_CC_SWITCHES) $(GENERIC_DIR)/tclStubLib.c + +.c.o: + $(CC) -c $(CC_SWITCHES) $< + +# +# Target to regenerate header files and stub files from the *.decls tables. +# + +$(GENERIC_DIR)/tclStubInit.c: $(GENERIC_DIR)/tcl.decls \ + $(GENERIC_DIR)/tclInt.decls + @echo "Warning: tclStubInit.c may be out of date." + @echo "Developers may want to run \"make genstubs\" to regenerate." + @echo "This warning can be safely ignored, do not report as a bug!" + +genstubs: + $(TCL_EXE) $(TOOL_DIR)/genStubs.tcl $(GENERIC_DIR) \ + $(GENERIC_DIR)/tcl.decls $(GENERIC_DIR)/tclInt.decls + +# +# Target to check that all exported functions have an entry in the stubs +# tables. +# + +checkstubs: $(TCL_LIB_FILE) + -@for i in `nm -p $(TCL_LIB_FILE) \ + | awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \ + | sort -n`; do \ + match=0; \ + for j in $(TCL_DECLS); do \ + if [ `grep -c "$$i *(" $$j` -gt 0 ]; then \ + match=1; \ + fi; \ + done; \ + if [ $$match -eq 0 ]; then echo $$i; fi \ + done + +# +# Target to check that all public APIs which are not command +# implementations have an entry in section three of the distributed +# manpages. +# + +checkdoc: $(TCL_LIB_FILE) + -@for i in `nm -p $(TCL_LIB_FILE) | awk '$$3 ~ /Tcl_/ { print $$3 }' \ + | grep -v 'Cmd$$' | sort -n`; do \ + match=0; \ + for j in $(TOP_DIR)/doc/*.3; do \ + if [ `grep '\-' $$j | grep -c $$i` -gt 0 ]; then \ + match=1; \ + fi; \ + done; \ + if [ $$match -eq 0 ]; then echo $$i; fi \ + done + +# +# Target to check for proper usage of UCHAR macro. +# + +checkuchar: + -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR + +# +# Target to make sure that only symbols with "Tcl" prefixes are +# exported. +# + +checkexports: $(TCL_LIB_FILE) + -@nm -p $(TCL_LIB_FILE) \ + | awk '$$2 ~ /^[TDBCS]$$/ { sub("^_", "", $$3); print $$3 }' \ + | sort -n | grep -E -v '^[Tt]cl' || true + +# +# Target to create a Tcl RPM for Linux. Requires that you be on a Linux +# system. +# + +rpm: all /bin/rpm + rm -f THIS.TCL.SPEC + echo "%define _builddir `pwd`" > THIS.TCL.SPEC + echo "%define _rpmdir `pwd`/RPMS" >> THIS.TCL.SPEC + cat tcl.spec >> THIS.TCL.SPEC + mkdir -p RPMS/i386 + rpm -bb THIS.TCL.SPEC + mv RPMS/i386/*.rpm . + rm -rf RPMS THIS.TCL.SPEC + +# +# Target to create a proper Tcl distribution from information in the +# master source directory. DISTDIR must be defined to indicate where +# to put the distribution. DISTDIR must be an absolute path name. +# + +DISTROOT = /tmp/dist +DISTNAME = tcl${VERSION}${PATCH_LEVEL} +ZIPNAME = tcl${MAJOR_VERSION}${MINOR_VERSION}${PATCH_LEVEL}-src.zip +DISTDIR = $(DISTROOT)/$(DISTNAME) + +dist: + rm -rf $(DISTDIR) + mkdir -p $(DISTDIR)/unix + cp -p $(UNIX_DIR)/*.c $(UNIX_DIR)/*.h $(DISTDIR)/unix + cp $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix + chmod 664 $(DISTDIR)/unix/Makefile.in + cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \ + $(UNIX_DIR)/tcl.m4 $(UNIX_DIR)/aclocal.m4 \ + $(UNIX_DIR)/tclConfig.sh.in $(UNIX_DIR)/install-sh \ + $(UNIX_DIR)/README $(UNIX_DIR)/ldAix $(UNIX_DIR)/tcl.spec \ + $(UNIX_DIR)/installManPage \ + $(DISTDIR)/unix + chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in + chmod 775 $(DISTDIR)/unix/ldAix + chmod +x $(DISTDIR)/unix/install-sh + mkdir $(DISTDIR)/generic + cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(DISTDIR)/generic + cp -p $(GENERIC_DIR)/*.decls $(DISTDIR)/generic + cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic + cp -p $(GENERIC_DIR)/tclGetDate.y $(DISTDIR)/generic + cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README* \ + $(TOP_DIR)/ChangeLog.[12]??? $(TOP_DIR)/license.terms \ + $(DISTDIR) + mkdir $(DISTDIR)/library + cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \ + $(TOP_DIR)/library/tclIndex $(DISTDIR)/library + for i in http1.0 http opt msgcat reg dde tcltest; \ + do \ + mkdir $(DISTDIR)/library/$$i ;\ + cp -p $(TOP_DIR)/library/$$i/*.tcl $(DISTDIR)/library/$$i; \ + done; + mkdir $(DISTDIR)/library/encoding + cp -p $(TOP_DIR)/library/encoding/*.enc $(DISTDIR)/library/encoding + mkdir $(DISTDIR)/doc + cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \ + $(TOP_DIR)/doc/man.macros $(DISTDIR)/doc + mkdir $(DISTDIR)/compat + cp -p $(TOP_DIR)/license.terms $(COMPAT_DIR)/*.c \ + $(COMPAT_DIR)/*.h $(COMPAT_DIR)/README \ + $(DISTDIR)/compat + mkdir $(DISTDIR)/tests + cp -p $(TOP_DIR)/license.terms $(DISTDIR)/tests + cp -p $(TOP_DIR)/tests/*.test $(TOP_DIR)/tests/README \ + $(TOP_DIR)/tests/httpd $(TOP_DIR)/tests/*.tcl \ + $(DISTDIR)/tests + mkdir $(DISTDIR)/win + cp $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win + cp $(TOP_DIR)/win/configure.in $(TOP_DIR)/win/configure \ + $(TOP_DIR)/win/tclConfig.sh.in \ + $(TOP_DIR)/win/tcl.m4 $(TOP_DIR)/win/aclocal.m4 \ + $(DISTDIR)/win + cp -p $(TOP_DIR)/win/*.c $(TOP_DIR)/win/*.h \ + $(TOP_DIR)/win/*.ico $(TOP_DIR)/win/*.rc \ + $(DISTDIR)/win + cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win + $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/*.bat + cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win + $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/makefile.* + cp -p $(TOP_DIR)/win/rules.vc $(DISTDIR)/win + $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rules.vc + cp -p $(TOP_DIR)/win/coffbase.txt $(DISTDIR)/win + $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/coffbase.txt + cp -p $(TOP_DIR)/win/tcl.hpj.in $(DISTDIR)/win + $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.hpj.in + cp -p $(TOP_DIR)/win/tcl.ds* $(DISTDIR)/win + $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.ds* + cp -p $(TOP_DIR)/win/README $(DISTDIR)/win + cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win + mkdir $(DISTDIR)/mac + cp -p $(TOP_DIR)/mac/tcl*.sea.hqx \ + $(TOP_DIR)/mac/*.c $(TOP_DIR)/mac/*.h $(TOP_DIR)/mac/*.r \ + $(DISTDIR)/mac + cp -p $(TOP_DIR)/mac/porting.notes $(TOP_DIR)/mac/README $(DISTDIR)/mac + cp -p $(TOP_DIR)/mac/*.pch $(DISTDIR)/mac + cp -p $(TOP_DIR)/mac/*.doc $(TOP_DIR)/mac/*.html $(DISTDIR)/mac + cp -p $(TOP_DIR)/license.terms $(DISTDIR)/mac + mkdir $(DISTDIR)/macosx + cp -p $(MAC_OSX_DIR)/Makefile $(MAC_OSX_DIR)/README \ + $(MAC_OSX_DIR)/*.c $(MAC_OSX_DIR)/*.in \ + $(DISTDIR)/macosx + cp -p $(TOP_DIR)/license.terms $(DISTDIR)/macosx + mkdir $(DISTDIR)/macosx/Tcl.pbproj + cp -p $(MAC_OSX_DIR)/Tcl.pbproj/*.pbx* $(DISTDIR)/macosx/Tcl.pbproj + mkdir $(DISTDIR)/unix/dltest + cp -p $(UNIX_DIR)/dltest/*.c $(UNIX_DIR)/dltest/Makefile.in \ + $(UNIX_DIR)/dltest/README \ + $(DISTDIR)/unix/dltest + mkdir $(DISTDIR)/tools + cp -p $(TOOL_DIR)/Makefile.in $(TOOL_DIR)/README \ + $(TOOL_DIR)/configure $(TOOL_DIR)/configure.in \ + $(TOOL_DIR)/*.tcl $(TOOL_DIR)/man2tcl.c \ + $(TOOL_DIR)/tcl.wse.in $(TOOL_DIR)/*.bmp \ + $(TOOL_DIR)/tcl.hpj.in \ + $(DISTDIR)/tools + $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/tools/tcl.hpj.in \ + $(DISTDIR)/tools/tcl.wse.in + +# +# The following target can only be used for non-patch releases. Use +# the "allpatch" target below for patch releases. +# + +alldist: dist + rm -f $(DISTROOT)/$(DISTNAME)-src.tar.gz $(DISTROOT)/$(ZIPNAME) + cd $(DISTROOT); tar cf $(DISTNAME)-src.tar $(DISTNAME); \ + gzip -9 $(DISTNAME)-src.tar; zip -qr8 $(ZIPNAME) $(DISTNAME) + +# +# The target below is similar to "alldist" except it works for patch +# releases. It is needed because patch releases are peculiar: the +# patch designation appears in the name of the compressed file +# (e.g. tcl8.0p1.tar.gz) but the extracted source directory doesn't +# include the patch designation (e.g. tcl8.0). +# + +allpatch: dist + rm -f $(DISTROOT)/$(DISTNAME)-src.tar.gz $(DISTROOT)/$(ZIPNAME) + mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/old + mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tcl${VERSION} + cd $(DISTROOT); tar cf $(DISTNAME)-src.tar tcl${VERSION}; \ + gzip -9 $(DISTNAME)-src.tar; zip -r8 $(ZIPNAME) tcl${VERSION} + mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/$(DISTNAME) + mv $(DISTROOT)/old $(DISTROOT)/tcl${VERSION} + +# +# This target creates the HTML folder for Tcl & Tk and places it +# in DISTDIR/html. It uses the tcltk-man2html.tcl tool from +# the Tcl group's tool workspace. It depends on the Tcl & Tk being +# in directories called tcl8.* & tk8.* up two directories from the +# TOOL_DIR. +# + +html: tclsh + $(BUILD_HTML) + @EXTRA_BUILD_HTML@ +html-tcl: tclsh + $(BUILD_HTML) --tcl + @EXTRA_BUILD_HTML@ +html-tk: tclsh + $(BUILD_HTML) --tk + @EXTRA_BUILD_HTML@ + +BUILD_HTML = \ + @@LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \ + ./tclsh $(TOOL_DIR)/tcltk-man2html.tcl --htmldir=$(HTML_INSTALL_DIR) \ + --srcdir=$(TOP_DIR)/.. $(BUILD_HTML_FLAGS) + +# +# Target to create a Macintosh version of the distribution. This will +# do a normal distribution and then massage the output to prepare it +# for moving to the Mac platform. This requires a few scripts and +# programs found only in the Tcl group's tool workspace. +# + +macdist: dist machtml + +machtml: + rm -f $(DISTDIR)/mac/tclMacProjects.sea.hqx + rm -rf $(DISTDIR)/doc + $(TCL_EXE) $(TOOL_DIR)/cvtEOL.tcl $(DISTDIR) + +# +# Targets to build Solaris package of the distribution for the current +# architecture. To build stream packages for both sun4 and i86pc +# architectures: +# +# On the sun4 machine, execute the following: +# make distclean; ./configure +# make DISTDIR= package +# +# Once the build is complete, execute the following on the i86pc +# machine: +# make DISTDIR= package-quick +# +# is the absolute path to a directory where the build should +# take place. These steps will generate the $(PACKAGE).sun4 and +# $(PACKAGE).i86pc stream packages. It is important that the packages be +# built in this fashion in order to ensure that the architecture +# independent files are exactly the same, including timestamps, in +# both packages. +# + +PACKAGE=SCRPtcl + +package: dist package-config package-common package-binaries package-generate +package-quick: package-config package-binaries package-generate + +# +# Configure for the current architecture in the dist directory. +# +package-config: + mkdir -p $(DISTDIR)/unix/`arch` + cd $(DISTDIR)/unix/`arch`; \ + ../configure --prefix=/opt/$(PACKAGE)/$(VERSION) \ + --exec_prefix=/opt/$(PACKAGE)/$(VERSION)/`arch` \ + --enable-shared + mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION) + mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch` + +# +# Build and install the architecture independent files in the dist directory. +# + +package-common: + cd $(DISTDIR)/unix/`arch`;\ + $(MAKE); \ + $(MAKE) prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \ + exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch` \ + install-libraries install-man + mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin + sed -e "s/TCLVERSION/$(VERSION)/g" < $(UNIX_DIR)/tclsh.sh \ + > $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION) + chmod 755 $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION) + +# +# Build and install the architecture specific files in the dist directory. +# + +package-binaries: + cd $(DISTDIR)/unix/`arch`; \ + $(MAKE); \ + $(MAKE) install-binaries prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \ + exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch` + +# +# Generate a package from the installed files in the dist directory for the +# current architecture. +# + +package-generate: + pkgproto $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin=bin \ + $(DISTDIR)/$(PACKAGE)/$(VERSION)/include=include \ + $(DISTDIR)/$(PACKAGE)/$(VERSION)/lib=lib \ + $(DISTDIR)/$(PACKAGE)/$(VERSION)/man=man \ + $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`=`arch` \ + | $(TCL_EXE) $(UNIX_DIR)/mkProto.tcl \ + $(VERSION) $(UNIX_DIR) > prototype + pkgmk -o -d . -f prototype -a `arch` + pkgtrans -s . $(PACKAGE).`arch` $(PACKAGE) + rm -rf $(PACKAGE) + +# DO NOT DELETE THIS LINE -- make depend depends on it.