os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/win/makefile.vc
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/win/makefile.vc Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,828 @@
1.4 +#------------------------------------------------------------------------------
1.5 +# makefile.vc --
1.6 +#
1.7 +# Microsoft Visual C++ makefile for use with nmake.exe v1.62+ (VC++ 5.0+)
1.8 +#
1.9 +# See the file "license.terms" for information on usage and redistribution
1.10 +# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
1.11 +#
1.12 +# Copyright (c) 1995-1996 Sun Microsystems, Inc.
1.13 +# Copyright (c) 1998-2000 Ajuba Solutions.
1.14 +# Copyright (c) 2001-2005 ActiveState Corporation.
1.15 +# Copyright (c) 2001-2002 David Gravereaux.
1.16 +#
1.17 +#------------------------------------------------------------------------------
1.18 +# RCS: @(#) $Id: makefile.vc,v 1.100.2.9 2006/09/26 21:40:36 patthoyts Exp $
1.19 +#------------------------------------------------------------------------------
1.20 +
1.21 +# Check to see we are configured to build with MSVC (MSDEVDIR or MSVCDIR)
1.22 +# or with the MS Platform SDK (MSSDK). Visual Studio .NET 2003 and 2005 define
1.23 +# VCINSTALLDIR instead.
1.24 +!if !defined(MSDEVDIR) && !defined(MSVCDIR) && !defined(MSSDK) && !defined(VCINSTALLDIR)
1.25 +MSG = ^
1.26 +You need to run vcvars32.bat from Developer Studio or setenv.bat from the^
1.27 +Platform SDK first to setup the environment. Jump to this line to read^
1.28 +the build instructions.
1.29 +!error $(MSG)
1.30 +!endif
1.31 +
1.32 +#------------------------------------------------------------------------------
1.33 +# HOW TO USE this makefile:
1.34 +#
1.35 +# 1) It is now necessary to have MSVCDir, MSDevDir or MSSDK set in the
1.36 +# environment. This is used as a check to see if vcvars32.bat had been
1.37 +# run prior to running nmake or during the installation of Microsoft
1.38 +# Visual C++, MSVCDir had been set globally and the PATH adjusted.
1.39 +# Either way is valid.
1.40 +#
1.41 +# You'll need to run vcvars32.bat contained in the MsDev's vc(98)/bin
1.42 +# directory to setup the proper environment, if needed, for your
1.43 +# current setup. This is a needed bootstrap requirement and allows the
1.44 +# swapping of different environments to be easier.
1.45 +#
1.46 +# 2) To use the Platform SDK (not expressly needed), run setenv.bat after
1.47 +# vcvars32.bat according to the instructions for it. This can also
1.48 +# turn on the 64-bit compiler, if your SDK has it.
1.49 +#
1.50 +# 3) Targets are:
1.51 +# release -- Builds the core, the shell and the dlls. (default)
1.52 +# dlls -- Just builds the windows extensions and the 16-bit DOS
1.53 +# pipe/thunk helper app.
1.54 +# shell -- Just builds the shell and the core.
1.55 +# core -- Only builds the core [tclXX.(dll|lib)].
1.56 +# all -- Builds everything.
1.57 +# test -- Builds and runs the test suite.
1.58 +# tcltest -- Just builds the test shell.
1.59 +# install -- Installs the built binaries and libraries to $(INSTALLDIR)
1.60 +# as the root of the install tree.
1.61 +# tidy/clean/hose -- varying levels of cleaning.
1.62 +# genstubs -- Rebuilds the Stubs table and support files (dev only).
1.63 +# depend -- Generates an accurate set of source dependancies for this
1.64 +# makefile. Helpful to avoid problems when the sources are
1.65 +# refreshed and you rebuild, but can "overbuild" when common
1.66 +# headers like tclInt.h just get small changes.
1.67 +# winhelp -- Builds the windows .hlp file for Tcl from the troff man
1.68 +# files found in $(ROOT)\doc .
1.69 +#
1.70 +# 4) Macros usable on the commandline:
1.71 +# INSTALLDIR=<path>
1.72 +# Sets where to install Tcl from the built binaries.
1.73 +# C:\Progra~1\Tcl is assumed when not specified.
1.74 +#
1.75 +# OPTS=static,msvcrt,staticpkg,threads,symbols,profile,loimpact,none
1.76 +# Sets special options for the core. The default is for none.
1.77 +# Any combination of the above may be used (comma separated).
1.78 +# 'none' will over-ride everything to nothing.
1.79 +#
1.80 +# static = Builds a static library of the core instead of a
1.81 +# dll. The shell will be static (and large), as well.
1.82 +# msvcrt = Effects the static option only to switch it from
1.83 +# using libcmt(d) as the C runtime [by default] to
1.84 +# msvcrt(d). This is useful for static embedding
1.85 +# support.
1.86 +# staticpkg = Effects the static option only to switch
1.87 +# tclshXX.exe to have the dde and reg extension linked
1.88 +# inside it.
1.89 +# threads = Turns on full multithreading support.
1.90 +# thrdalloc = Use the thread allocator (shared global free pool).
1.91 +# symbols = Adds symbols for step debugging.
1.92 +# profile = Adds profiling hooks. Map file is assumed.
1.93 +# loimpact = Adds a flag for how NT treats the heap to keep memory
1.94 +# in use, low. This is said to impact alloc performance.
1.95 +#
1.96 +# STATS=memdbg,compdbg,none
1.97 +# Sets optional memory and bytecode compiler debugging code added
1.98 +# to the core. The default is for none. Any combination of the
1.99 +# above may be used (comma separated). 'none' will over-ride
1.100 +# everything to nothing.
1.101 +#
1.102 +# memdbg = Enables the debugging memory allocator.
1.103 +# compdbg = Enables byte compilation logging.
1.104 +#
1.105 +# MACHINE=(IX86|IA64|ALPHA)
1.106 +# Set the machine type used for the compiler, linker, and
1.107 +# resource compiler. This hook is needed to tell the tools
1.108 +# when alternate platforms are requested. IX86 is the default
1.109 +# when not specified.
1.110 +#
1.111 +# TMP_DIR=<path>
1.112 +# OUT_DIR=<path>
1.113 +# Hooks to allow the intermediate and output directories to be
1.114 +# changed. $(OUT_DIR) is assumed to be
1.115 +# $(BINROOT)\(Release|Debug) based on if symbols are requested.
1.116 +# $(TMP_DIR) will de $(OUT_DIR)\<buildtype> by default.
1.117 +#
1.118 +# TESTPAT=<file>
1.119 +# Reads the tests requested to be run from this file.
1.120 +#
1.121 +# 5) Examples:
1.122 +#
1.123 +# Basic syntax of calling nmake looks like this:
1.124 +# nmake [-nologo] -f makefile.vc [target|macrodef [target|macrodef] [...]]
1.125 +#
1.126 +# Standard (no frills)
1.127 +# c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
1.128 +# Setting environment for using Microsoft Visual C++ tools.
1.129 +# c:\tcl_src\win\>nmake -f makefile.vc release
1.130 +# c:\tcl_src\win\>nmake -f makefile.vc install INSTALLDIR=c:\progra~1\tcl
1.131 +#
1.132 +# Building for Win64
1.133 +# c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
1.134 +# Setting environment for using Microsoft Visual C++ tools.
1.135 +# c:\tcl_src\win\>c:\progra~1\platfo~1\setenv.bat /pre64 /RETAIL
1.136 +# Targeting Windows pre64 RETAIL
1.137 +# c:\tcl_src\win\>nmake -f makefile.vc MACHINE=IA64
1.138 +#
1.139 +#------------------------------------------------------------------------------
1.140 +#==============================================================================
1.141 +###############################################################################
1.142 +
1.143 +
1.144 +# //==================================================================\\
1.145 +# >>[ -> Do not modify below this line. <- ]<<
1.146 +# >>[ Please, use the commandline macros to modify how Tcl is built. ]<<
1.147 +# >>[ If you need more features, send us a patch for more macros. ]<<
1.148 +# \\==================================================================//
1.149 +
1.150 +
1.151 +###############################################################################
1.152 +#==============================================================================
1.153 +#------------------------------------------------------------------------------
1.154 +
1.155 +!if !exist("makefile.vc")
1.156 +MSG = ^
1.157 +You must run this makefile only from the directory it is in.^
1.158 +Please `cd` to its location first.
1.159 +!error $(MSG)
1.160 +!endif
1.161 +
1.162 +PROJECT = tcl
1.163 +!include "rules.vc"
1.164 +
1.165 +STUBPREFIX = $(PROJECT)stub
1.166 +DOTVERSION = 8.4
1.167 +VERSION = $(DOTVERSION:.=)
1.168 +
1.169 +DDEDOTVERSION = 1.2
1.170 +DDEVERSION = $(DDEDOTVERSION:.=)
1.171 +
1.172 +REGDOTVERSION = 1.1
1.173 +REGVERSION = $(REGDOTVERSION:.=)
1.174 +
1.175 +BINROOT = .
1.176 +ROOT = ..
1.177 +
1.178 +TCLIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
1.179 +TCLLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
1.180 +TCLLIB = $(OUT_DIR)\$(TCLLIBNAME)
1.181 +
1.182 +TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
1.183 +TCLSTUBLIB = $(OUT_DIR)\$(TCLSTUBLIBNAME)
1.184 +
1.185 +TCLSHNAME = $(PROJECT)sh$(VERSION)$(SUFX).exe
1.186 +TCLSH = $(OUT_DIR)\$(TCLSHNAME)
1.187 +TCLPIPEDLLNAME = $(PROJECT)pip$(VERSION)$(SUFX:t=).dll
1.188 +TCLPIPEDLL = $(OUT_DIR)\$(TCLPIPEDLLNAME)
1.189 +
1.190 +TCLREGLIBNAME = $(PROJECT)reg$(REGVERSION)$(SUFX:t=).$(EXT)
1.191 +TCLREGLIB = $(OUT_DIR)\$(TCLREGLIBNAME)
1.192 +
1.193 +TCLDDELIBNAME = $(PROJECT)dde$(DDEVERSION)$(SUFX:t=).$(EXT)
1.194 +TCLDDELIB = $(OUT_DIR)\$(TCLDDELIBNAME)
1.195 +
1.196 +TCLTEST = $(OUT_DIR)\$(PROJECT)test.exe
1.197 +CAT32 = $(OUT_DIR)\cat32.exe
1.198 +
1.199 +### Make sure we use backslash only.
1.200 +LIB_INSTALL_DIR = $(_INSTALLDIR)\lib
1.201 +BIN_INSTALL_DIR = $(_INSTALLDIR)\bin
1.202 +DOC_INSTALL_DIR = $(_INSTALLDIR)\doc
1.203 +SCRIPT_INSTALL_DIR = $(_INSTALLDIR)\lib\tcl$(DOTVERSION)
1.204 +INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\include
1.205 +
1.206 +TCLSHOBJS = \
1.207 + $(TMP_DIR)\tclAppInit.obj \
1.208 +!if $(TCL_USE_STATIC_PACKAGES)
1.209 + $(TMP_DIR)\tclWinReg.obj \
1.210 + $(TMP_DIR)\tclWinDde.obj \
1.211 +!endif
1.212 + $(TMP_DIR)\tclsh.res
1.213 +
1.214 +TCLTESTOBJS = \
1.215 + $(TMP_DIR)\tclTest.obj \
1.216 + $(TMP_DIR)\tclTestObj.obj \
1.217 + $(TMP_DIR)\tclTestProcBodyObj.obj \
1.218 + $(TMP_DIR)\tclThreadTest.obj \
1.219 + $(TMP_DIR)\tclWinTest.obj \
1.220 +!if $(TCL_USE_STATIC_PACKAGES)
1.221 + $(TMP_DIR)\tclWinReg.obj \
1.222 + $(TMP_DIR)\tclWinDde.obj \
1.223 +!endif
1.224 + $(TMP_DIR)\testMain.obj
1.225 +
1.226 +TCLOBJS = \
1.227 + $(TMP_DIR)\regcomp.obj \
1.228 + $(TMP_DIR)\regerror.obj \
1.229 + $(TMP_DIR)\regexec.obj \
1.230 + $(TMP_DIR)\regfree.obj \
1.231 + $(TMP_DIR)\strftime.obj \
1.232 + $(TMP_DIR)\strtoll.obj \
1.233 + $(TMP_DIR)\strtoull.obj \
1.234 + $(TMP_DIR)\tclAlloc.obj \
1.235 + $(TMP_DIR)\tclAsync.obj \
1.236 + $(TMP_DIR)\tclBasic.obj \
1.237 + $(TMP_DIR)\tclBinary.obj \
1.238 + $(TMP_DIR)\tclCkalloc.obj \
1.239 + $(TMP_DIR)\tclClock.obj \
1.240 + $(TMP_DIR)\tclCmdAH.obj \
1.241 + $(TMP_DIR)\tclCmdIL.obj \
1.242 + $(TMP_DIR)\tclCmdMZ.obj \
1.243 + $(TMP_DIR)\tclCompCmds.obj \
1.244 + $(TMP_DIR)\tclCompExpr.obj \
1.245 + $(TMP_DIR)\tclCompile.obj \
1.246 + $(TMP_DIR)\tclDate.obj \
1.247 + $(TMP_DIR)\tclEncoding.obj \
1.248 + $(TMP_DIR)\tclEnv.obj \
1.249 + $(TMP_DIR)\tclEvent.obj \
1.250 + $(TMP_DIR)\tclExecute.obj \
1.251 + $(TMP_DIR)\tclFCmd.obj \
1.252 + $(TMP_DIR)\tclFileName.obj \
1.253 + $(TMP_DIR)\tclGet.obj \
1.254 + $(TMP_DIR)\tclHash.obj \
1.255 + $(TMP_DIR)\tclHistory.obj \
1.256 + $(TMP_DIR)\tclIndexObj.obj \
1.257 + $(TMP_DIR)\tclInterp.obj \
1.258 + $(TMP_DIR)\tclIO.obj \
1.259 + $(TMP_DIR)\tclIOCmd.obj \
1.260 + $(TMP_DIR)\tclIOGT.obj \
1.261 + $(TMP_DIR)\tclIOSock.obj \
1.262 + $(TMP_DIR)\tclIOUtil.obj \
1.263 + $(TMP_DIR)\tclLink.obj \
1.264 + $(TMP_DIR)\tclListObj.obj \
1.265 + $(TMP_DIR)\tclLiteral.obj \
1.266 + $(TMP_DIR)\tclLoad.obj \
1.267 + $(TMP_DIR)\tclMain.obj \
1.268 + $(TMP_DIR)\tclNamesp.obj \
1.269 + $(TMP_DIR)\tclNotify.obj \
1.270 + $(TMP_DIR)\tclObj.obj \
1.271 + $(TMP_DIR)\tclPanic.obj \
1.272 + $(TMP_DIR)\tclParse.obj \
1.273 + $(TMP_DIR)\tclParseExpr.obj \
1.274 + $(TMP_DIR)\tclPipe.obj \
1.275 + $(TMP_DIR)\tclPkg.obj \
1.276 + $(TMP_DIR)\tclPosixStr.obj \
1.277 + $(TMP_DIR)\tclPreserve.obj \
1.278 + $(TMP_DIR)\tclProc.obj \
1.279 + $(TMP_DIR)\tclRegexp.obj \
1.280 + $(TMP_DIR)\tclResolve.obj \
1.281 + $(TMP_DIR)\tclResult.obj \
1.282 + $(TMP_DIR)\tclScan.obj \
1.283 + $(TMP_DIR)\tclStringObj.obj \
1.284 + $(TMP_DIR)\tclStubInit.obj \
1.285 + $(TMP_DIR)\tclStubLib.obj \
1.286 + $(TMP_DIR)\tclThread.obj \
1.287 + $(TMP_DIR)\tclThreadAlloc.obj \
1.288 + $(TMP_DIR)\tclThreadJoin.obj \
1.289 + $(TMP_DIR)\tclTimer.obj \
1.290 + $(TMP_DIR)\tclUtf.obj \
1.291 + $(TMP_DIR)\tclUtil.obj \
1.292 + $(TMP_DIR)\tclVar.obj \
1.293 + $(TMP_DIR)\tclWin32Dll.obj \
1.294 + $(TMP_DIR)\tclWinChan.obj \
1.295 + $(TMP_DIR)\tclWinConsole.obj \
1.296 + $(TMP_DIR)\tclWinSerial.obj \
1.297 + $(TMP_DIR)\tclWinError.obj \
1.298 + $(TMP_DIR)\tclWinFCmd.obj \
1.299 + $(TMP_DIR)\tclWinFile.obj \
1.300 + $(TMP_DIR)\tclWinInit.obj \
1.301 + $(TMP_DIR)\tclWinLoad.obj \
1.302 + $(TMP_DIR)\tclWinMtherr.obj \
1.303 + $(TMP_DIR)\tclWinNotify.obj \
1.304 + $(TMP_DIR)\tclWinPipe.obj \
1.305 + $(TMP_DIR)\tclWinSock.obj \
1.306 + $(TMP_DIR)\tclWinThrd.obj \
1.307 + $(TMP_DIR)\tclWinTime.obj \
1.308 +!if !$(STATIC_BUILD)
1.309 + $(TMP_DIR)\tcl.res
1.310 +!endif
1.311 +
1.312 +TCLSTUBOBJS = $(TMP_DIR)\tclStubLib.obj
1.313 +
1.314 +### The following paths CANNOT have spaces in them.
1.315 +COMPATDIR = $(ROOT)\compat
1.316 +DOCDIR = $(ROOT)\doc
1.317 +GENERICDIR = $(ROOT)\generic
1.318 +TOOLSDIR = $(ROOT)\tools
1.319 +WINDIR = $(ROOT)\win
1.320 +
1.321 +
1.322 +#---------------------------------------------------------------------
1.323 +# Compile flags
1.324 +#---------------------------------------------------------------------
1.325 +
1.326 +!if !$(DEBUG)
1.327 +!if $(OPTIMIZING)
1.328 +### This cranks the optimization level to maximize speed
1.329 +cdebug = -O2 $(OPTIMIZATIONS)
1.330 +!else
1.331 +cdebug =
1.332 +!endif
1.333 +!else if "$(MACHINE)" == "IA64"
1.334 +### Warnings are too many, can't support warnings into errors.
1.335 +cdebug = -Z7 -Od $(DEBUGFLAGS)
1.336 +!else
1.337 +cdebug = -Z7 -WX $(DEBUGFLAGS)
1.338 +!endif
1.339 +
1.340 +### Declarations common to all compiler options
1.341 +cwarn = -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE
1.342 +cflags = -nologo -c $(COMPILERFLAGS) $(cwarn) -Fp$(TMP_DIR)^\
1.343 +
1.344 +!if $(FULLWARNINGS)
1.345 +cflags = $(cflags) -W4
1.346 +!else
1.347 +cflags = $(cflags) -W3
1.348 +!endif
1.349 +
1.350 +!if $(MSVCRT)
1.351 +!if "$(DBGX)" == ""
1.352 +crt = -MD
1.353 +!else
1.354 +crt = -MDd
1.355 +!endif
1.356 +!else
1.357 +!if "$(DBGX)" == ""
1.358 +crt = -MT
1.359 +!else
1.360 +crt = -MTd
1.361 +!endif
1.362 +!endif
1.363 +
1.364 +TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)"
1.365 +BASE_CFLAGS = $(cflags) $(cdebug) $(crt) $(TCL_INCLUDES) \
1.366 + -DTCL_PIPE_DLL=\"$(TCLPIPEDLLNAME)\"
1.367 +CON_CFLAGS = $(cflags) $(cdebug) $(crt) -DCONSOLE
1.368 +TCL_CFLAGS = $(BASE_CFLAGS) $(OPTDEFINES)
1.369 +
1.370 +
1.371 +#---------------------------------------------------------------------
1.372 +# Link flags
1.373 +#---------------------------------------------------------------------
1.374 +
1.375 +!if $(DEBUG)
1.376 +ldebug = -debug:full -debugtype:cv
1.377 +!else
1.378 +ldebug = -release -opt:ref -opt:icf,3
1.379 +!endif
1.380 +
1.381 +### Declarations common to all linker options
1.382 +lflags = -nologo -machine:$(MACHINE) $(LINKERFLAGS) $(ldebug)
1.383 +
1.384 +!if $(FULLWARNINGS)
1.385 +lflags = $(lflags) -warn:3
1.386 +!endif
1.387 +
1.388 +!if $(PROFILE)
1.389 +lflags = $(lflags) -profile
1.390 +!endif
1.391 +
1.392 +!if $(ALIGN98_HACK) && !$(STATIC_BUILD)
1.393 +### Align sections for PE size savings.
1.394 +lflags = $(lflags) -opt:nowin98
1.395 +!else if !$(ALIGN98_HACK) && $(STATIC_BUILD)
1.396 +### Align sections for speed in loading by choosing the virtual page size.
1.397 +lflags = $(lflags) -align:4096
1.398 +!endif
1.399 +
1.400 +!if $(LOIMPACT)
1.401 +lflags = $(lflags) -ws:aggressive
1.402 +!endif
1.403 +
1.404 +dlllflags = $(lflags) -dll
1.405 +conlflags = $(lflags) -subsystem:console
1.406 +guilflags = $(lflags) -subsystem:windows
1.407 +
1.408 +baselibs = kernel32.lib advapi32.lib user32.lib
1.409 +# Avoid 'unresolved external symbol __security_cookie' errors.
1.410 +# c.f. http://support.microsoft.com/?id=894573
1.411 +!if "$(MACHINE)" == "IA64" || "$(MACHINE)" == "AMD64"
1.412 +baselibs = $(baselibs) bufferoverflowU.lib
1.413 +!endif
1.414 +
1.415 +#---------------------------------------------------------------------
1.416 +# TclTest flags
1.417 +#---------------------------------------------------------------------
1.418 +
1.419 +!IF "$(TESTPAT)" != ""
1.420 +TESTFLAGS = -file $(TESTPAT)
1.421 +!ENDIF
1.422 +
1.423 +
1.424 +#---------------------------------------------------------------------
1.425 +# Project specific targets
1.426 +#---------------------------------------------------------------------
1.427 +
1.428 +release: setup $(TCLSH) $(TCLSTUBLIB) dlls
1.429 +core: setup $(TCLLIB) $(TCLSTUBLIB)
1.430 +shell: setup $(TCLSH)
1.431 +dlls: setup $(TCLPIPEDLL) $(TCLREGLIB) $(TCLDDELIB)
1.432 +all: setup $(TCLSH) $(TCLSTUBLIB) dlls $(CAT32)
1.433 +tcltest: setup $(TCLTEST) dlls $(CAT32)
1.434 +install: install-binaries install-libraries install-docs
1.435 +
1.436 +
1.437 +test: setup $(TCLTEST) dlls $(CAT32)
1.438 + set TCL_LIBRARY=$(ROOT)/library
1.439 +!if "$(OS)" == "Windows_NT" || "$(MSVCDIR)" == "IDE"
1.440 + $(TCLTEST) "$(ROOT)/tests/all.tcl" $(TESTFLAGS)
1.441 +!else
1.442 + $(TCLTEST) "$(ROOT)/tests/all.tcl" $(TESTFLAGS) > tests.log
1.443 + type tests.log | more
1.444 +!endif
1.445 +
1.446 +runtest: setup $(TCLTEST) dlls $(CAT32)
1.447 + set TCL_LIBRARY=$(ROOT)/library
1.448 + $(TCLTEST)
1.449 +
1.450 +setup:
1.451 + @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR)
1.452 + @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR)
1.453 +
1.454 +!if !$(STATIC_BUILD)
1.455 +$(TCLIMPLIB): $(TCLLIB)
1.456 +!endif
1.457 +
1.458 +$(TCLLIB): $(TCLOBJS)
1.459 +!if $(STATIC_BUILD)
1.460 + $(lib32) -nologo -out:$@ @<<
1.461 +$**
1.462 +<<
1.463 +!else
1.464 + $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tcl -out:$@ \
1.465 + $(baselibs) @<<
1.466 +$**
1.467 +<<
1.468 + $(_VC_MANIFEST_EMBED_DLL)
1.469 + -@del $*.exp
1.470 +!endif
1.471 +
1.472 +$(TCLSTUBLIB): $(TCLSTUBOBJS)
1.473 + $(lib32) -nologo -out:$@ $(TCLSTUBOBJS)
1.474 +
1.475 +$(TCLSH): $(TCLSHOBJS) $(TCLIMPLIB)
1.476 + $(link32) $(conlflags) -stack:2300000 -out:$@ $(baselibs) $**
1.477 + $(_VC_MANIFEST_EMBED_EXE)
1.478 +
1.479 +$(TCLTEST): $(TCLTESTOBJS) $(TCLIMPLIB)
1.480 + $(link32) $(conlflags) -stack:2300000 -out:$@ $(baselibs) $**
1.481 + $(_VC_MANIFEST_EMBED_EXE)
1.482 +
1.483 +$(TCLPIPEDLL): $(WINDIR)\stub16.c
1.484 + $(cc32) $(CON_CFLAGS) -Fo$(TMP_DIR)\ $(WINDIR)\stub16.c
1.485 + $(link32) $(conlflags) -out:$@ $(TMP_DIR)\stub16.obj $(baselibs)
1.486 + $(_VC_MANIFEST_EMBED_DLL)
1.487 +
1.488 +!if $(STATIC_BUILD)
1.489 +$(TCLDDELIB): $(TMP_DIR)\tclWinDde.obj
1.490 + $(lib32) -nologo -out:$@ $(TMP_DIR)\tclWinDde.obj
1.491 +!else
1.492 +$(TCLDDELIB): $(TMP_DIR)\tclWinDde.obj $(TCLSTUBLIB)
1.493 + $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tcldde -out:$@ \
1.494 + $** $(baselibs)
1.495 + $(_VC_MANIFEST_EMBED_DLL)
1.496 + -@del $*.exp
1.497 + -@del $*.lib
1.498 +!endif
1.499 +
1.500 +!if $(STATIC_BUILD)
1.501 +$(TCLREGLIB): $(TMP_DIR)\tclWinReg.obj
1.502 + $(lib32) -nologo -out:$@ $(TMP_DIR)\tclWinReg.obj
1.503 +!else
1.504 +$(TCLREGLIB): $(TMP_DIR)\tclWinReg.obj $(TCLSTUBLIB)
1.505 + $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tclreg -out:$@ \
1.506 + $** $(baselibs)
1.507 + $(_VC_MANIFEST_EMBED_DLL)
1.508 + -@del $*.exp
1.509 + -@del $*.lib
1.510 +!endif
1.511 +
1.512 +$(CAT32): $(WINDIR)\cat.c
1.513 + $(cc32) $(CON_CFLAGS) -Fo$(TMP_DIR)\ $?
1.514 + $(link32) $(conlflags) -out:$@ -stack:16384 $(TMP_DIR)\cat.obj \
1.515 + $(baselibs)
1.516 + $(_VC_MANIFEST_EMBED_EXE)
1.517 +
1.518 +#---------------------------------------------------------------------
1.519 +# Regenerate the stubs files. [Development use only]
1.520 +#---------------------------------------------------------------------
1.521 +
1.522 +genstubs:
1.523 +!if !exist($(TCLSH))
1.524 + @echo Build tclsh first!
1.525 +!else
1.526 + $(TCLSH) $(TOOLSDIR:\=/)\genStubs.tcl $(GENERICDIR:\=/) \
1.527 + $(GENERICDIR:\=/)/tcl.decls $(GENERICDIR:\=/)/tclInt.decls
1.528 +!endif
1.529 +
1.530 +
1.531 +#---------------------------------------------------------------------
1.532 +# Generate the makefile depedancies.
1.533 +#---------------------------------------------------------------------
1.534 +
1.535 +depend:
1.536 +!if !exist($(TCLSH))
1.537 + @echo Build tclsh first!
1.538 +!else
1.539 + $(TCLSH) $(TOOLSDIR:\=/)/mkdepend.tcl -vc32 -out:"$(OUT_DIR)\depend.mk" \
1.540 + -passthru:"-DBUILD_tcl $(TCL_INCLUDES:"="")" $(GENERICDIR) \
1.541 + $(COMPATDIR) $(WINDIR) @<<
1.542 +$(TCLOBJS)
1.543 +<<
1.544 +!endif
1.545 +
1.546 +
1.547 +#---------------------------------------------------------------------
1.548 +# Build the windows help file.
1.549 +#---------------------------------------------------------------------
1.550 +
1.551 +TCLHLPBASE = $(PROJECT)$(VERSION)
1.552 +HELPFILE = $(OUT_DIR)\$(TCLHLPBASE).hlp
1.553 +HELPCNT = $(OUT_DIR)\$(TCLHLPBASE).cnt
1.554 +DOCTMP_DIR = $(OUT_DIR)\$(PROJECT)_docs
1.555 +HELPRTF = $(DOCTMP_DIR)\$(PROJECT).rtf
1.556 +MAN2HELP = $(DOCTMP_DIR)\man2help.tcl
1.557 +MAN2HELP2 = $(DOCTMP_DIR)\man2help2.tcl
1.558 +INDEX = $(DOCTMP_DIR)\index.tcl
1.559 +BMP = $(DOCTMP_DIR)\feather.bmp
1.560 +BMP_NOPATH = feather.bmp
1.561 +MAN2TCL = $(DOCTMP_DIR)\man2tcl.exe
1.562 +
1.563 +winhelp: docsetup $(HELPFILE)
1.564 +
1.565 +docsetup:
1.566 + @if not exist $(DOCTMP_DIR)\nul mkdir $(DOCTMP_DIR)
1.567 +
1.568 +$(MAN2HELP) $(MAN2HELP2) $(INDEX) $(BMP): $(TOOLSDIR)\$$(@F)
1.569 + @$(CPY) $(TOOLSDIR)\$(@F) $(@D)
1.570 +
1.571 +$(HELPFILE): $(HELPRTF) $(BMP)
1.572 + cd $(DOCTMP_DIR)
1.573 + start /wait hcrtf.exe -x <<$(PROJECT).hpj
1.574 +[OPTIONS]
1.575 +COMPRESS=12 Hall Zeck
1.576 +LCID=0x409 0x0 0x0 ; English (United States)
1.577 +TITLE=Tcl/Tk Reference Manual
1.578 +BMROOT=.
1.579 +CNT=$(@B).cnt
1.580 +HLP=$(@B).hlp
1.581 +
1.582 +[FILES]
1.583 +$(PROJECT).rtf
1.584 +
1.585 +[WINDOWS]
1.586 +main="Tcl/Tk Reference Manual",,27648,(r15263976),(r65535)
1.587 +
1.588 +[CONFIG]
1.589 +BrowseButtons()
1.590 +CreateButton(1, "Web", ExecFile("http://www.tcl.tk"))
1.591 +CreateButton(2, "SF", ExecFile("http://sf.net/projects/tcl"))
1.592 +CreateButton(3, "Wiki", ExecFile("http://wiki.tcl.tk"))
1.593 +CreateButton(4, "FAQ", ExecFile("http://www.purl.org/NET/Tcl-FAQ/"))
1.594 +<<
1.595 + cd $(MAKEDIR)
1.596 + @$(CPY) "$(DOCTMP_DIR)\$(@B).hlp" "$(OUT_DIR)"
1.597 + @$(CPY) "$(DOCTMP_DIR)\$(@B).cnt" "$(OUT_DIR)"
1.598 +
1.599 +$(MAN2TCL): $(TOOLSDIR)\$$(@B).c
1.600 + $(cc32) -nologo -G4 -ML -O2 -Fo$(@D)\ $(TOOLSDIR)\$(@B).c -link -out:$@
1.601 +
1.602 +$(HELPRTF): $(MAN2TCL) $(MAN2HELP) $(MAN2HELP2) $(INDEX) $(DOCDIR)\*
1.603 + $(TCLSH) $(MAN2HELP) -bitmap $(BMP_NOPATH) $(PROJECT) $(VERSION) $(DOCDIR:\=/)
1.604 +
1.605 +install-docs:
1.606 +!if exist($(HELPFILE))
1.607 + @$(CPY) "$(HELPFILE)" "$(DOC_INSTALL_DIR)\"
1.608 + @$(CPY) "$(HELPCNT)" "$(DOC_INSTALL_DIR)\"
1.609 +!endif
1.610 +
1.611 +
1.612 +#---------------------------------------------------------------------
1.613 +# Special case object file targets
1.614 +#---------------------------------------------------------------------
1.615 +
1.616 +$(TMP_DIR)\testMain.obj: $(WINDIR)\tclAppInit.c
1.617 +!if $(TCL_USE_STATIC_PACKAGES)
1.618 + $(cc32) $(TCL_CFLAGS) -DTCL_TEST -DTCL_USE_STATIC_PACKAGES -Fo$@ $?
1.619 +!else
1.620 + $(cc32) $(TCL_CFLAGS) -DTCL_TEST -Fo$@ $?
1.621 +!endif
1.622 +
1.623 +$(TMP_DIR)\tclTest.obj: $(GENERICDIR)\tclTest.c
1.624 + $(cc32) $(TCL_CFLAGS) -Fo$@ $?
1.625 +
1.626 +$(TMP_DIR)\tclTestObj.obj: $(GENERICDIR)\tclTestObj.c
1.627 + $(cc32) $(TCL_CFLAGS) -Fo$@ $?
1.628 +
1.629 +$(TMP_DIR)\tclWinTest.obj: $(WINDIR)\tclWinTest.c
1.630 + $(cc32) $(TCL_CFLAGS) -Fo$@ $?
1.631 +
1.632 +$(TMP_DIR)\tclAppInit.obj: $(WINDIR)\tclAppInit.c
1.633 +!if $(TCL_USE_STATIC_PACKAGES)
1.634 + $(cc32) $(TCL_CFLAGS) -DTCL_USE_STATIC_PACKAGES -Fo$@ $?
1.635 +!else
1.636 + $(cc32) $(TCL_CFLAGS) -Fo$@ $?
1.637 +!endif
1.638 +
1.639 +### The following objects should be built using the stub interfaces
1.640 +### *ALL* extensions need to built with -DTCL_THREADS=1
1.641 +
1.642 +$(TMP_DIR)\tclWinReg.obj: $(WINDIR)\tclWinReg.c
1.643 +!if $(STATIC_BUILD)
1.644 + $(cc32) $(BASE_CFLAGS) -DTCL_THREADS=1 -DSTATIC_BUILD -Fo$@ $?
1.645 +!else
1.646 + $(cc32) $(BASE_CFLAGS) -DTCL_THREADS=1 -DUSE_TCL_STUBS -Fo$@ $?
1.647 +!endif
1.648 +
1.649 +
1.650 +$(TMP_DIR)\tclWinDde.obj: $(WINDIR)\tclWinDde.c
1.651 +!if $(STATIC_BUILD)
1.652 + $(cc32) $(BASE_CFLAGS) -DTCL_THREADS=1 -DSTATIC_BUILD -Fo$@ $?
1.653 +!else
1.654 + $(cc32) $(BASE_CFLAGS) -DTCL_THREADS=1 -DUSE_TCL_STUBS -Fo$@ $?
1.655 +!endif
1.656 +
1.657 +
1.658 +### The following objects are part of the stub library and should not
1.659 +### be built as DLL objects. -Zl is used to avoid a dependancy on any
1.660 +### specific C run-time.
1.661 +
1.662 +$(TMP_DIR)\tclStubLib.obj: $(GENERICDIR)\tclStubLib.c
1.663 + $(cc32) $(cdebug) $(cflags) -Zl -DSTATIC_BUILD $(TCL_INCLUDES) -Fo$@ $?
1.664 +
1.665 +
1.666 +#---------------------------------------------------------------------
1.667 +# Dedependency rules
1.668 +#---------------------------------------------------------------------
1.669 +
1.670 +$(GENERICDIR)\regcomp.c: \
1.671 + $(GENERICDIR)\regguts.h \
1.672 + $(GENERICDIR)\regc_lex.c \
1.673 + $(GENERICDIR)\regc_color.c \
1.674 + $(GENERICDIR)\regc_nfa.c \
1.675 + $(GENERICDIR)\regc_cvec.c \
1.676 + $(GENERICDIR)\regc_locale.c
1.677 +$(GENERICDIR)\regcustom.h: \
1.678 + $(GENERICDIR)\tclInt.h \
1.679 + $(GENERICDIR)\tclPort.h \
1.680 + $(GENERICDIR)\regex.h
1.681 +$(GENERICDIR)\regexec.c: \
1.682 + $(GENERICDIR)\rege_dfa.c \
1.683 + $(GENERICDIR)\regguts.h
1.684 +$(GENERICDIR)\regerror.c: $(GENERICDIR)\regguts.h
1.685 +$(GENERICDIR)\regfree.c: $(GENERICDIR)\regguts.h
1.686 +$(GENERICDIR)\regfronts.c: $(GENERICDIR)\regguts.h
1.687 +$(GENERICDIR)\regguts.h: $(GENERICDIR)\regcustom.h
1.688 +
1.689 +!if exist("$(OUT_DIR)\depend.mk")
1.690 +!include "$(OUT_DIR)\depend.mk"
1.691 +!message *** Dependency rules in effect.
1.692 +!else
1.693 +!message *** Dependency rules are not being used.
1.694 +!endif
1.695 +
1.696 +### add a spacer in the output
1.697 +!message
1.698 +
1.699 +
1.700 +#---------------------------------------------------------------------
1.701 +# Implicit rules
1.702 +#---------------------------------------------------------------------
1.703 +
1.704 +{$(WINDIR)}.c{$(TMP_DIR)}.obj::
1.705 + $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<
1.706 +$<
1.707 +<<
1.708 +
1.709 +{$(GENERICDIR)}.c{$(TMP_DIR)}.obj::
1.710 + $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<
1.711 +$<
1.712 +<<
1.713 +
1.714 +{$(COMPATDIR)}.c{$(TMP_DIR)}.obj::
1.715 + $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<
1.716 +$<
1.717 +<<
1.718 +
1.719 +{$(WINDIR)}.rc{$(TMP_DIR)}.res:
1.720 + $(rc32) -fo $@ -r -i "$(GENERICDIR)" -D__WIN32__ \
1.721 +!if $(DEBUG)
1.722 + -d DEBUG \
1.723 +!endif
1.724 +!if $(TCL_THREADS)
1.725 + -d TCL_THREADS \
1.726 +!endif
1.727 +!if $(STATIC_BUILD)
1.728 + -d STATIC_BUILD \
1.729 +!endif
1.730 + $<
1.731 +
1.732 +.SUFFIXES:
1.733 +.SUFFIXES:.c .rc
1.734 +
1.735 +
1.736 +#---------------------------------------------------------------------
1.737 +# Installation.
1.738 +#---------------------------------------------------------------------
1.739 +
1.740 +install-binaries:
1.741 + @echo Installing to '$(_INSTALLDIR)'
1.742 + @echo installing $(TCLLIBNAME)
1.743 +!if "$(TCLLIB)" != "$(TCLIMPLIB)"
1.744 + @$(CPY) "$(TCLLIB)" "$(BIN_INSTALL_DIR)\"
1.745 +!endif
1.746 + @$(CPY) "$(TCLIMPLIB)" "$(LIB_INSTALL_DIR)\"
1.747 +!if exist($(TCLSH))
1.748 + @echo installing $(TCLSHNAME)
1.749 + @$(CPY) "$(TCLSH)" "$(BIN_INSTALL_DIR)\"
1.750 +!endif
1.751 +!if exist($(TCLPIPEDLL))
1.752 + @echo installing $(TCLPIPEDLLNAME)
1.753 + @$(CPY) "$(TCLPIPEDLL)" "$(BIN_INSTALL_DIR)\"
1.754 +!endif
1.755 + @echo installing $(TCLSTUBLIBNAME)
1.756 + @$(CPY) "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)\"
1.757 +
1.758 +install-libraries:
1.759 + @echo installing http1.0
1.760 + @$(CPY) "$(ROOT)\library\http1.0\*.tcl" \
1.761 + "$(SCRIPT_INSTALL_DIR)\http1.0\"
1.762 + @echo installing http2.5
1.763 + @$(CPY) "$(ROOT)\library\http\*.tcl" \
1.764 + "$(SCRIPT_INSTALL_DIR)\http2.5\"
1.765 + @echo installing opt0.4
1.766 + @$(CPY) "$(ROOT)\library\opt\*.tcl" \
1.767 + "$(SCRIPT_INSTALL_DIR)\opt0.4\"
1.768 + @echo installing msgcat1.3
1.769 + @$(CPY) "$(ROOT)\library\msgcat\*.tcl" \
1.770 + "$(SCRIPT_INSTALL_DIR)\msgcat1.3\"
1.771 + @echo installing tcltest2.2
1.772 + @$(CPY) "$(ROOT)\library\tcltest\*.tcl" \
1.773 + "$(SCRIPT_INSTALL_DIR)\tcltest2.2\"
1.774 + @echo installing $(TCLDDELIBNAME)
1.775 +!if $(STATIC_BUILD)
1.776 + @$(CPY) "$(TCLDDELIB)" "$(LIB_INSTALL_DIR)\"
1.777 +!else
1.778 + @$(CPY) "$(TCLDDELIB)" "$(LIB_INSTALL_DIR)\dde$(DDEDOTVERSION)\"
1.779 + @$(CPY) "$(ROOT)\library\dde\pkgIndex.tcl" \
1.780 + "$(LIB_INSTALL_DIR)\dde$(DDEDOTVERSION)\"
1.781 +!endif
1.782 + @echo installing $(TCLREGLIBNAME)
1.783 +!if $(STATIC_BUILD)
1.784 + @$(CPY) "$(TCLREGLIB)" "$(LIB_INSTALL_DIR)\"
1.785 +!else
1.786 + @$(CPY) "$(TCLREGLIB)" "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"
1.787 + @$(CPY) "$(ROOT)\library\reg\pkgIndex.tcl" \
1.788 + "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"
1.789 +!endif
1.790 + @echo installing encoding files
1.791 + @$(CPY) "$(ROOT)\library\encoding\*.enc" \
1.792 + "$(SCRIPT_INSTALL_DIR)\encoding\"
1.793 + @echo installing library files
1.794 + @$(CPY) "$(GENERICDIR)\tcl.h" "$(INCLUDE_INSTALL_DIR)\"
1.795 + @$(CPY) "$(GENERICDIR)\tclDecls.h" "$(INCLUDE_INSTALL_DIR)\"
1.796 + @$(CPY) "$(GENERICDIR)\tclPlatDecls.h" "$(INCLUDE_INSTALL_DIR)\"
1.797 + @$(CPY) "$(ROOT)\library\history.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.798 + @$(CPY) "$(ROOT)\library\init.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.799 + @$(CPY) "$(ROOT)\library\ldAout.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.800 + @$(CPY) "$(ROOT)\library\parray.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.801 + @$(CPY) "$(ROOT)\library\safe.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.802 + @$(CPY) "$(ROOT)\library\tclIndex" "$(SCRIPT_INSTALL_DIR)\"
1.803 + @$(CPY) "$(ROOT)\library\package.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.804 + @$(CPY) "$(ROOT)\library\word.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.805 + @$(CPY) "$(ROOT)\library\auto.tcl" "$(SCRIPT_INSTALL_DIR)\"
1.806 +
1.807 +
1.808 +#---------------------------------------------------------------------
1.809 +# Clean up
1.810 +#---------------------------------------------------------------------
1.811 +
1.812 +tidy:
1.813 + @echo Removing $(TCLLIB) ...
1.814 + @if exist $(TCLLIB) del $(TCLLIB)
1.815 + @echo Removing $(TCLSH) ...
1.816 + @if exist $(TCLSH) del $(TCLSH)
1.817 + @echo Removing $(TCLTEST) ...
1.818 + @if exist $(TCLTEST) del $(TCLTEST)
1.819 + @echo Removing $(TCLDDELIB) ...
1.820 + @if exist $(TCLDDELIB) del $(TCLDDELIB)
1.821 + @echo Removing $(TCLREGLIB) ...
1.822 + @if exist $(TCLREGLIB) del $(TCLREGLIB)
1.823 +
1.824 +clean:
1.825 + @echo Cleaning $(TMP_DIR)\* ...
1.826 + @if exist $(TMP_DIR)\nul $(RMDIR) $(TMP_DIR)
1.827 +
1.828 +hose:
1.829 + @echo Hosing $(OUT_DIR)\* ...
1.830 + @if exist $(OUT_DIR)\nul $(RMDIR) $(OUT_DIR)
1.831 +