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