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