"Fossies" - the Fresh Open Source Software Archive

Member "sqlite-autoconf-3320300/tea/win/rules.vc" (18 Jun 2020, 18743 Bytes) of package /linux/misc/sqlite-autoconf-3320300.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 #------------------------------------------------------------------------------
    2 # rules.vc --
    3 #
    4 #	Microsoft Visual C++ makefile include for decoding the commandline
    5 #	macros.  This file does not need editing to build Tcl.
    6 #
    7 # See the file "license.terms" for information on usage and redistribution
    8 # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
    9 #
   10 # Copyright (c) 2001-2003 David Gravereaux.
   11 # Copyright (c) 2003-2008 Patrick Thoyts
   12 #------------------------------------------------------------------------------
   13 
   14 !ifndef _RULES_VC
   15 _RULES_VC = 1
   16 
   17 cc32		= $(CC)   # built-in default.
   18 link32		= link
   19 lib32		= lib
   20 rc32		= $(RC)   # built-in default.
   21 
   22 !ifndef INSTALLDIR
   23 ### Assume the normal default.
   24 _INSTALLDIR	= C:\Program Files\Tcl
   25 !else
   26 ### Fix the path separators.
   27 _INSTALLDIR	= $(INSTALLDIR:/=\)
   28 !endif
   29 
   30 #----------------------------------------------------------
   31 # Set the proper copy method to avoid overwrite questions
   32 # to the user when copying files and selecting the right
   33 # "delete all" method.
   34 #----------------------------------------------------------
   35 
   36 !if "$(OS)" == "Windows_NT"
   37 RMDIR	= rmdir /S /Q
   38 ERRNULL  = 2>NUL
   39 !if ![ver | find "4.0" > nul]
   40 CPY	= echo y | xcopy /i >NUL
   41 COPY	= copy >NUL
   42 !else
   43 CPY	= xcopy /i /y >NUL
   44 COPY	= copy /y >NUL
   45 !endif
   46 !else # "$(OS)" != "Windows_NT"
   47 CPY	= xcopy /i >_JUNK.OUT # On Win98 NUL does not work here.
   48 COPY	= copy >_JUNK.OUT # On Win98 NUL does not work here.
   49 RMDIR	= deltree /Y
   50 NULL    = \NUL # Used in testing directory existence
   51 ERRNULL = >NUL # Win9x shell cannot redirect stderr
   52 !endif
   53 MKDIR   = mkdir
   54 
   55 #------------------------------------------------------------------------------
   56 # Determine the host and target architectures and compiler version.
   57 #------------------------------------------------------------------------------
   58 
   59 _HASH=^#
   60 _VC_MANIFEST_EMBED_EXE=
   61 _VC_MANIFEST_EMBED_DLL=
   62 VCVER=0
   63 !if ![echo VCVERSION=_MSC_VER > vercl.x] \
   64     && ![echo $(_HASH)if defined(_M_IX86) >> vercl.x] \
   65     && ![echo ARCH=IX86 >> vercl.x] \
   66     && ![echo $(_HASH)elif defined(_M_AMD64) >> vercl.x] \
   67     && ![echo ARCH=AMD64 >> vercl.x] \
   68     && ![echo $(_HASH)endif >> vercl.x] \
   69     && ![cl -nologo -TC -P vercl.x $(ERRNULL)]
   70 !include vercl.i
   71 !if ![echo VCVER= ^\> vercl.vc] \
   72     && ![set /a $(VCVERSION) / 100 - 6 >> vercl.vc]
   73 !include vercl.vc
   74 !endif
   75 !endif
   76 !if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
   77 !endif
   78 
   79 !if ![reg query HKLM\Hardware\Description\System\CentralProcessor\0 /v Identifier | findstr /i x86]
   80 NATIVE_ARCH=IX86
   81 !else
   82 NATIVE_ARCH=AMD64
   83 !endif
   84 
   85 # Since MSVC8 we must deal with manifest resources.
   86 !if $(VCVERSION) >= 1400
   87 _VC_MANIFEST_EMBED_EXE=if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;1
   88 _VC_MANIFEST_EMBED_DLL=if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2
   89 !endif
   90 
   91 !ifndef MACHINE
   92 MACHINE=$(ARCH)
   93 !endif
   94 
   95 !ifndef CFG_ENCODING
   96 CFG_ENCODING	= \"cp1252\"
   97 !endif
   98 
   99 !message ===============================================================================
  100 
  101 #----------------------------------------------------------
  102 # build the helper app we need to overcome nmake's limiting
  103 # environment.
  104 #----------------------------------------------------------
  105 
  106 !if !exist(nmakehlp.exe)
  107 !if [$(cc32) -nologo nmakehlp.c -link -subsystem:console > nul]
  108 !endif
  109 !endif
  110 
  111 #----------------------------------------------------------
  112 # Test for compiler features
  113 #----------------------------------------------------------
  114 
  115 ### test for optimizations
  116 !if [nmakehlp -c -Ot]
  117 !message *** Compiler has 'Optimizations'
  118 OPTIMIZING	= 1
  119 !else
  120 !message *** Compiler does not have 'Optimizations'
  121 OPTIMIZING	= 0
  122 !endif
  123 
  124 OPTIMIZATIONS   =
  125 
  126 !if [nmakehlp -c -Ot]
  127 OPTIMIZATIONS  = $(OPTIMIZATIONS) -Ot
  128 !endif
  129 
  130 !if [nmakehlp -c -Oi]
  131 OPTIMIZATIONS  = $(OPTIMIZATIONS) -Oi
  132 !endif
  133 
  134 !if [nmakehlp -c -Op]
  135 OPTIMIZATIONS  = $(OPTIMIZATIONS) -Op
  136 !endif
  137 
  138 !if [nmakehlp -c -fp:strict]
  139 OPTIMIZATIONS  = $(OPTIMIZATIONS) -fp:strict
  140 !endif
  141 
  142 !if [nmakehlp -c -Gs]
  143 OPTIMIZATIONS  = $(OPTIMIZATIONS) -Gs
  144 !endif
  145 
  146 !if [nmakehlp -c -GS]
  147 OPTIMIZATIONS  = $(OPTIMIZATIONS) -GS
  148 !endif
  149 
  150 !if [nmakehlp -c -GL]
  151 OPTIMIZATIONS  = $(OPTIMIZATIONS) -GL
  152 !endif
  153 
  154 DEBUGFLAGS     =
  155 
  156 !if [nmakehlp -c -RTC1]
  157 DEBUGFLAGS     = $(DEBUGFLAGS) -RTC1
  158 !elseif [nmakehlp -c -GZ]
  159 DEBUGFLAGS     = $(DEBUGFLAGS) -GZ
  160 !endif
  161 
  162 COMPILERFLAGS  =-W3 -DUNICODE -D_UNICODE
  163 
  164 # In v13 -GL and -YX are incompatible.
  165 !if [nmakehlp -c -YX]
  166 !if ![nmakehlp -c -GL]
  167 OPTIMIZATIONS  = $(OPTIMIZATIONS) -YX
  168 !endif
  169 !endif
  170 
  171 !if "$(MACHINE)" == "IX86"
  172 ### test for pentium errata
  173 !if [nmakehlp -c -QI0f]
  174 !message *** Compiler has 'Pentium 0x0f fix'
  175 COMPILERFLAGS  = $(COMPILERFLAGS) -QI0f
  176 !else
  177 !message *** Compiler does not have 'Pentium 0x0f fix'
  178 !endif
  179 !endif
  180 
  181 !if "$(MACHINE)" == "IA64"
  182 ### test for Itanium errata
  183 !if [nmakehlp -c -QIA64_Bx]
  184 !message *** Compiler has 'B-stepping errata workarounds'
  185 COMPILERFLAGS   = $(COMPILERFLAGS) -QIA64_Bx
  186 !else
  187 !message *** Compiler does not have 'B-stepping errata workarounds'
  188 !endif
  189 !endif
  190 
  191 !if "$(MACHINE)" == "IX86"
  192 ### test for -align:4096, when align:512 will do.
  193 !if [nmakehlp -l -opt:nowin98]
  194 !message *** Linker has 'Win98 alignment problem'
  195 ALIGN98_HACK	= 1
  196 !else
  197 !message *** Linker does not have 'Win98 alignment problem'
  198 ALIGN98_HACK	= 0
  199 !endif
  200 !else
  201 ALIGN98_HACK	= 0
  202 !endif
  203 
  204 LINKERFLAGS     =
  205 
  206 !if [nmakehlp -l -ltcg]
  207 LINKERFLAGS     =-ltcg
  208 !endif
  209 
  210 #----------------------------------------------------------
  211 # Decode the options requested.
  212 #----------------------------------------------------------
  213 
  214 !if "$(OPTS)" == "" || [nmakehlp -f "$(OPTS)" "none"]
  215 STATIC_BUILD	= 0
  216 TCL_THREADS	= 1
  217 DEBUG		= 0
  218 SYMBOLS		= 0
  219 PROFILE		= 0
  220 PGO		= 0
  221 MSVCRT		= 0
  222 LOIMPACT	= 0
  223 TCL_USE_STATIC_PACKAGES	= 0
  224 USE_THREAD_ALLOC = 1
  225 UNCHECKED	= 0
  226 !else
  227 !if [nmakehlp -f $(OPTS) "static"]
  228 !message *** Doing static
  229 STATIC_BUILD	= 1
  230 !else
  231 STATIC_BUILD	= 0
  232 !endif
  233 !if [nmakehlp -f $(OPTS) "msvcrt"]
  234 !message *** Doing msvcrt
  235 MSVCRT		= 1
  236 !else
  237 MSVCRT		= 0
  238 !endif
  239 !if [nmakehlp -f $(OPTS) "staticpkg"]
  240 !message *** Doing staticpkg
  241 TCL_USE_STATIC_PACKAGES	= 1
  242 !else
  243 TCL_USE_STATIC_PACKAGES	= 0
  244 !endif
  245 !if [nmakehlp -f $(OPTS) "nothreads"]
  246 !message *** Compile explicitly for non-threaded tcl
  247 TCL_THREADS	= 0
  248 !else
  249 TCL_THREADS	= 1
  250 USE_THREAD_ALLOC= 1
  251 !endif
  252 !if [nmakehlp -f $(OPTS) "symbols"]
  253 !message *** Doing symbols
  254 DEBUG		= 1
  255 !else
  256 DEBUG		= 0
  257 !endif
  258 !if [nmakehlp -f $(OPTS) "pdbs"]
  259 !message *** Doing pdbs
  260 SYMBOLS		= 1
  261 !else
  262 SYMBOLS		= 0
  263 !endif
  264 !if [nmakehlp -f $(OPTS) "profile"]
  265 !message *** Doing profile
  266 PROFILE		= 1
  267 !else
  268 PROFILE		= 0
  269 !endif
  270 !if [nmakehlp -f $(OPTS) "pgi"]
  271 !message *** Doing profile guided optimization instrumentation
  272 PGO		= 1
  273 !elseif [nmakehlp -f $(OPTS) "pgo"]
  274 !message *** Doing profile guided optimization
  275 PGO		= 2
  276 !else
  277 PGO		= 0
  278 !endif
  279 !if [nmakehlp -f $(OPTS) "loimpact"]
  280 !message *** Doing loimpact
  281 LOIMPACT	= 1
  282 !else
  283 LOIMPACT	= 0
  284 !endif
  285 !if [nmakehlp -f $(OPTS) "thrdalloc"]
  286 !message *** Doing thrdalloc
  287 USE_THREAD_ALLOC = 1
  288 !endif
  289 !if [nmakehlp -f $(OPTS) "tclalloc"]
  290 !message *** Doing tclalloc
  291 USE_THREAD_ALLOC = 0
  292 !endif
  293 !if [nmakehlp -f $(OPTS) "unchecked"]
  294 !message *** Doing unchecked
  295 UNCHECKED = 1
  296 !else
  297 UNCHECKED = 0
  298 !endif
  299 !endif
  300 
  301 
  302 !if !$(STATIC_BUILD)
  303 # Make sure we don't build overly fat DLLs.
  304 MSVCRT		= 1
  305 # We shouldn't statically put the extensions inside the shell when dynamic.
  306 TCL_USE_STATIC_PACKAGES = 0
  307 !endif
  308 
  309 
  310 #----------------------------------------------------------
  311 # Figure-out how to name our intermediate and output directories.
  312 # We wouldn't want different builds to use the same .obj files
  313 # by accident.
  314 #----------------------------------------------------------
  315 
  316 #----------------------------------------
  317 # Naming convention:
  318 #   t = full thread support.
  319 #   s = static library (as opposed to an
  320 #	import library)
  321 #   g = linked to the debug enabled C
  322 #	run-time.
  323 #   x = special static build when it
  324 #	links to the dynamic C run-time.
  325 #----------------------------------------
  326 SUFX	    = tsgx
  327 
  328 !if $(DEBUG)
  329 BUILDDIRTOP = Debug
  330 !else
  331 BUILDDIRTOP = Release
  332 !endif
  333 
  334 !if "$(MACHINE)" != "IX86"
  335 BUILDDIRTOP =$(BUILDDIRTOP)_$(MACHINE)
  336 !endif
  337 !if $(VCVER) > 6
  338 BUILDDIRTOP =$(BUILDDIRTOP)_VC$(VCVER)
  339 !endif
  340 
  341 !if !$(DEBUG) || $(DEBUG) && $(UNCHECKED)
  342 SUFX	    = $(SUFX:g=)
  343 !endif
  344 
  345 TMP_DIRFULL = .\$(BUILDDIRTOP)\$(PROJECT)_ThreadedDynamicStaticX
  346 
  347 !if !$(STATIC_BUILD)
  348 TMP_DIRFULL = $(TMP_DIRFULL:Static=)
  349 SUFX	    = $(SUFX:s=)
  350 EXT	    = dll
  351 !if $(MSVCRT)
  352 TMP_DIRFULL = $(TMP_DIRFULL:X=)
  353 SUFX	    = $(SUFX:x=)
  354 !endif
  355 !else
  356 TMP_DIRFULL = $(TMP_DIRFULL:Dynamic=)
  357 EXT	    = lib
  358 !if !$(MSVCRT)
  359 TMP_DIRFULL = $(TMP_DIRFULL:X=)
  360 SUFX	    = $(SUFX:x=)
  361 !endif
  362 !endif
  363 
  364 !if !$(TCL_THREADS)
  365 TMP_DIRFULL = $(TMP_DIRFULL:Threaded=)
  366 SUFX	    = $(SUFX:t=)
  367 !endif
  368 
  369 !ifndef TMP_DIR
  370 TMP_DIR	    = $(TMP_DIRFULL)
  371 !ifndef OUT_DIR
  372 OUT_DIR	    = .\$(BUILDDIRTOP)
  373 !endif
  374 !else
  375 !ifndef OUT_DIR
  376 OUT_DIR	    = $(TMP_DIR)
  377 !endif
  378 !endif
  379 
  380 
  381 #----------------------------------------------------------
  382 # Decode the statistics requested.
  383 #----------------------------------------------------------
  384 
  385 !if "$(STATS)" == "" || [nmakehlp -f "$(STATS)" "none"]
  386 TCL_MEM_DEBUG	    = 0
  387 TCL_COMPILE_DEBUG   = 0
  388 !else
  389 !if [nmakehlp -f $(STATS) "memdbg"]
  390 !message *** Doing memdbg
  391 TCL_MEM_DEBUG	    = 1
  392 !else
  393 TCL_MEM_DEBUG	    = 0
  394 !endif
  395 !if [nmakehlp -f $(STATS) "compdbg"]
  396 !message *** Doing compdbg
  397 TCL_COMPILE_DEBUG   = 1
  398 !else
  399 TCL_COMPILE_DEBUG   = 0
  400 !endif
  401 !endif
  402 
  403 
  404 #----------------------------------------------------------
  405 # Decode the checks requested.
  406 #----------------------------------------------------------
  407 
  408 !if "$(CHECKS)" == "" || [nmakehlp -f "$(CHECKS)" "none"]
  409 TCL_NO_DEPRECATED	    = 0
  410 WARNINGS		    = -W3
  411 !else
  412 !if [nmakehlp -f $(CHECKS) "nodep"]
  413 !message *** Doing nodep check
  414 TCL_NO_DEPRECATED	    = 1
  415 !else
  416 TCL_NO_DEPRECATED	    = 0
  417 !endif
  418 !if [nmakehlp -f $(CHECKS) "fullwarn"]
  419 !message *** Doing full warnings check
  420 WARNINGS		    = -W4
  421 !if [nmakehlp -l -warn:3]
  422 LINKERFLAGS		    = $(LINKERFLAGS) -warn:3
  423 !endif
  424 !else
  425 WARNINGS		    = -W3
  426 !endif
  427 !if [nmakehlp -f $(CHECKS) "64bit"] && [nmakehlp -c -Wp64]
  428 !message *** Doing 64bit portability warnings
  429 WARNINGS		    = $(WARNINGS) -Wp64
  430 !endif
  431 !endif
  432 
  433 !if $(PGO) > 1
  434 !if [nmakehlp -l -ltcg:pgoptimize]
  435 LINKERFLAGS	= $(LINKERFLAGS:-ltcg=) -ltcg:pgoptimize
  436 !else
  437 MSG=^
  438 This compiler does not support profile guided optimization.
  439 !error $(MSG)
  440 !endif
  441 !elseif $(PGO) > 0
  442 !if [nmakehlp -l -ltcg:pginstrument]
  443 LINKERFLAGS	= $(LINKERFLAGS:-ltcg=) -ltcg:pginstrument
  444 !else
  445 MSG=^
  446 This compiler does not support profile guided optimization.
  447 !error $(MSG)
  448 !endif
  449 !endif
  450 
  451 #----------------------------------------------------------
  452 # Set our defines now armed with our options.
  453 #----------------------------------------------------------
  454 
  455 OPTDEFINES	= -DTCL_CFGVAL_ENCODING=$(CFG_ENCODING) -DSTDC_HEADERS
  456 
  457 !if $(TCL_MEM_DEBUG)
  458 OPTDEFINES	= $(OPTDEFINES) -DTCL_MEM_DEBUG
  459 !endif
  460 !if $(TCL_COMPILE_DEBUG)
  461 OPTDEFINES	= $(OPTDEFINES) -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
  462 !endif
  463 !if $(TCL_THREADS)
  464 OPTDEFINES	= $(OPTDEFINES) -DTCL_THREADS=1
  465 !if $(USE_THREAD_ALLOC)
  466 OPTDEFINES	= $(OPTDEFINES) -DUSE_THREAD_ALLOC=1
  467 !endif
  468 !endif
  469 !if $(STATIC_BUILD)
  470 OPTDEFINES	= $(OPTDEFINES) -DSTATIC_BUILD
  471 !endif
  472 !if $(TCL_NO_DEPRECATED)
  473 OPTDEFINES	= $(OPTDEFINES) -DTCL_NO_DEPRECATED
  474 !endif
  475 
  476 !if !$(DEBUG)
  477 OPTDEFINES	= $(OPTDEFINES) -DNDEBUG
  478 !if $(OPTIMIZING)
  479 OPTDEFINES	= $(OPTDEFINES) -DTCL_CFG_OPTIMIZED
  480 !endif
  481 !endif
  482 !if $(PROFILE)
  483 OPTDEFINES	= $(OPTDEFINES) -DTCL_CFG_PROFILED
  484 !endif
  485 !if "$(MACHINE)" == "IA64" || "$(MACHINE)" == "AMD64"
  486 OPTDEFINES	= $(OPTDEFINES) -DTCL_CFG_DO64BIT
  487 !endif
  488 !if $(VCVERSION) < 1300
  489 OPTDEFINES	= $(OPTDEFINES) -DNO_STRTOI64
  490 !endif
  491 
  492 #----------------------------------------------------------
  493 # Locate the Tcl headers to build against
  494 #----------------------------------------------------------
  495 
  496 !if "$(PROJECT)" == "tcl"
  497 
  498 _TCL_H          = ..\generic\tcl.h
  499 
  500 !else
  501 
  502 # If INSTALLDIR set to tcl root dir then reset to the lib dir.
  503 !if exist("$(_INSTALLDIR)\include\tcl.h")
  504 _INSTALLDIR=$(_INSTALLDIR)\lib
  505 !endif
  506 
  507 !if !defined(TCLDIR)
  508 !if exist("$(_INSTALLDIR)\..\include\tcl.h")
  509 TCLINSTALL	= 1
  510 _TCLDIR		= $(_INSTALLDIR)\..
  511 _TCL_H          = $(_INSTALLDIR)\..\include\tcl.h
  512 TCLDIR          = $(_INSTALLDIR)\..
  513 !else
  514 MSG=^
  515 Failed to find tcl.h.  Set the TCLDIR macro.
  516 !error $(MSG)
  517 !endif
  518 !else
  519 _TCLDIR	= $(TCLDIR:/=\)
  520 !if exist("$(_TCLDIR)\include\tcl.h")
  521 TCLINSTALL	= 1
  522 _TCL_H          = $(_TCLDIR)\include\tcl.h
  523 !elseif exist("$(_TCLDIR)\generic\tcl.h")
  524 TCLINSTALL	= 0
  525 _TCL_H          = $(_TCLDIR)\generic\tcl.h
  526 !else
  527 MSG =^
  528 Failed to find tcl.h.  The TCLDIR macro does not appear correct.
  529 !error $(MSG)
  530 !endif
  531 !endif
  532 !endif
  533 
  534 #--------------------------------------------------------------
  535 # Extract various version numbers from tcl headers
  536 # The generated file is then included in the makefile.
  537 #--------------------------------------------------------------
  538 
  539 !if [echo REM = This file is generated from rules.vc > versions.vc]
  540 !endif
  541 !if [echo TCL_MAJOR_VERSION = \>> versions.vc] \
  542    && [nmakehlp -V "$(_TCL_H)" TCL_MAJOR_VERSION >> versions.vc]
  543 !endif
  544 !if [echo TCL_MINOR_VERSION = \>> versions.vc] \
  545    && [nmakehlp -V "$(_TCL_H)" TCL_MINOR_VERSION >> versions.vc]
  546 !endif
  547 !if [echo TCL_PATCH_LEVEL = \>> versions.vc] \
  548    && [nmakehlp -V "$(_TCL_H)" TCL_PATCH_LEVEL >> versions.vc]
  549 !endif
  550 
  551 # If building the tcl core then we need additional package versions
  552 !if "$(PROJECT)" == "tcl"
  553 !if [echo PKG_HTTP_VER = \>> versions.vc] \
  554    && [nmakehlp -V ..\library\http\pkgIndex.tcl http >> versions.vc]
  555 !endif
  556 !if [echo PKG_TCLTEST_VER = \>> versions.vc] \
  557    && [nmakehlp -V ..\library\tcltest\pkgIndex.tcl tcltest >> versions.vc]
  558 !endif
  559 !if [echo PKG_MSGCAT_VER = \>> versions.vc] \
  560    && [nmakehlp -V ..\library\msgcat\pkgIndex.tcl msgcat >> versions.vc]
  561 !endif
  562 !if [echo PKG_PLATFORM_VER = \>> versions.vc] \
  563    && [nmakehlp -V ..\library\platform\pkgIndex.tcl "platform " >> versions.vc]
  564 !endif
  565 !if [echo PKG_SHELL_VER = \>> versions.vc] \
  566    && [nmakehlp -V ..\library\platform\pkgIndex.tcl "platform::shell" >> versions.vc]
  567 !endif
  568 !if [echo PKG_DDE_VER = \>> versions.vc] \
  569    && [nmakehlp -V ..\library\dde\pkgIndex.tcl "dde " >> versions.vc]
  570 !endif
  571 !if [echo PKG_REG_VER =\>> versions.vc] \
  572    && [nmakehlp -V ..\library\reg\pkgIndex.tcl registry >> versions.vc]
  573 !endif
  574 !endif
  575 
  576 !include versions.vc
  577 
  578 #--------------------------------------------------------------
  579 # Setup tcl version dependent stuff headers
  580 #--------------------------------------------------------------
  581 
  582 !if "$(PROJECT)" != "tcl"
  583 
  584 TCL_VERSION	= $(TCL_MAJOR_VERSION)$(TCL_MINOR_VERSION)
  585 
  586 !if $(TCL_VERSION) < 81
  587 TCL_DOES_STUBS	= 0
  588 !else
  589 TCL_DOES_STUBS	= 1
  590 !endif
  591 
  592 !if $(TCLINSTALL)
  593 TCLSH		= "$(_TCLDIR)\bin\tclsh$(TCL_VERSION)$(SUFX).exe"
  594 !if !exist($(TCLSH)) && $(TCL_THREADS)
  595 TCLSH           = "$(_TCLDIR)\bin\tclsh$(TCL_VERSION)t$(SUFX).exe"
  596 !endif
  597 TCLSTUBLIB	= "$(_TCLDIR)\lib\tclstub$(TCL_VERSION).lib"
  598 TCLIMPLIB	= "$(_TCLDIR)\lib\tcl$(TCL_VERSION)$(SUFX).lib"
  599 TCL_LIBRARY	= $(_TCLDIR)\lib
  600 TCLREGLIB	= "$(_TCLDIR)\lib\tclreg13$(SUFX:t=).lib"
  601 TCLDDELIB	= "$(_TCLDIR)\lib\tcldde14$(SUFX:t=).lib"
  602 COFFBASE	= \must\have\tcl\sources\to\build\this\target
  603 TCLTOOLSDIR	= \must\have\tcl\sources\to\build\this\target
  604 TCL_INCLUDES    = -I"$(_TCLDIR)\include"
  605 !else
  606 TCLSH		= "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(TCL_VERSION)$(SUFX).exe"
  607 !if !exist($(TCLSH)) && $(TCL_THREADS)
  608 TCLSH		= "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(TCL_VERSION)t$(SUFX).exe"
  609 !endif
  610 TCLSTUBLIB	= "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclstub$(TCL_VERSION).lib"
  611 TCLIMPLIB	= "$(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)$(SUFX).lib"
  612 TCL_LIBRARY	= $(_TCLDIR)\library
  613 TCLREGLIB	= "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg13$(SUFX:t=).lib"
  614 TCLDDELIB	= "$(_TCLDIR)\win\$(BUILDDIRTOP)\tcldde14$(SUFX:t=).lib"
  615 COFFBASE	= "$(_TCLDIR)\win\coffbase.txt"
  616 TCLTOOLSDIR	= $(_TCLDIR)\tools
  617 TCL_INCLUDES	= -I"$(_TCLDIR)\generic" -I"$(_TCLDIR)\win"
  618 !endif
  619 
  620 !endif
  621 
  622 #-------------------------------------------------------------------------
  623 # Locate the Tk headers to build against
  624 #-------------------------------------------------------------------------
  625 
  626 !if "$(PROJECT)" == "tk"
  627 _TK_H          = ..\generic\tk.h
  628 _INSTALLDIR    = $(_INSTALLDIR)\..
  629 !endif
  630 
  631 !ifdef PROJECT_REQUIRES_TK
  632 !if !defined(TKDIR)
  633 !if exist("$(_INSTALLDIR)\..\include\tk.h")
  634 TKINSTALL      = 1
  635 _TKDIR         = $(_INSTALLDIR)\..
  636 _TK_H          = $(_TKDIR)\include\tk.h
  637 TKDIR          = $(_TKDIR)
  638 !elseif exist("$(_TCLDIR)\include\tk.h")
  639 TKINSTALL      = 1
  640 _TKDIR         = $(_TCLDIR)
  641 _TK_H          = $(_TKDIR)\include\tk.h
  642 TKDIR          = $(_TKDIR)
  643 !endif
  644 !else
  645 _TKDIR = $(TKDIR:/=\)
  646 !if exist("$(_TKDIR)\include\tk.h")
  647 TKINSTALL      = 1
  648 _TK_H          = $(_TKDIR)\include\tk.h
  649 !elseif exist("$(_TKDIR)\generic\tk.h")
  650 TKINSTALL      = 0
  651 _TK_H          = $(_TKDIR)\generic\tk.h
  652 !else
  653 MSG =^
  654 Failed to find tk.h. The TKDIR macro does not appear correct.
  655 !error $(MSG)
  656 !endif
  657 !endif
  658 !endif
  659 
  660 #-------------------------------------------------------------------------
  661 # Extract Tk version numbers
  662 #-------------------------------------------------------------------------
  663 
  664 !if defined(PROJECT_REQUIRES_TK) || "$(PROJECT)" == "tk"
  665 
  666 !if [echo TK_MAJOR_VERSION = \>> versions.vc] \
  667    && [nmakehlp -V $(_TK_H) TK_MAJOR_VERSION >> versions.vc]
  668 !endif
  669 !if [echo TK_MINOR_VERSION = \>> versions.vc] \
  670    && [nmakehlp -V $(_TK_H) TK_MINOR_VERSION >> versions.vc]
  671 !endif
  672 !if [echo TK_PATCH_LEVEL = \>> versions.vc] \
  673    && [nmakehlp -V $(_TK_H) TK_PATCH_LEVEL >> versions.vc]
  674 !endif
  675 
  676 !include versions.vc
  677 
  678 TK_DOTVERSION	= $(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)
  679 TK_VERSION	= $(TK_MAJOR_VERSION)$(TK_MINOR_VERSION)
  680 
  681 !if "$(PROJECT)" != "tk"
  682 !if $(TKINSTALL)
  683 WISH		= "$(_TKDIR)\bin\wish$(TK_VERSION)$(SUFX).exe"
  684 TKSTUBLIB	= "$(_TKDIR)\lib\tkstub$(TK_VERSION).lib"
  685 TKIMPLIB	= "$(_TKDIR)\lib\tk$(TK_VERSION)$(SUFX).lib"
  686 TK_INCLUDES     = -I"$(_TKDIR)\include"
  687 !else
  688 WISH		= "$(_TKDIR)\win\$(BUILDDIRTOP)\wish$(TCL_VERSION)$(SUFX).exe"
  689 TKSTUBLIB	= "$(_TKDIR)\win\$(BUILDDIRTOP)\tkstub$(TCL_VERSION).lib"
  690 TKIMPLIB	= "$(_TKDIR)\win\$(BUILDDIRTOP)\tk$(TCL_VERSION)$(SUFX).lib"
  691 TK_INCLUDES     = -I"$(_TKDIR)\generic" -I"$(_TKDIR)\win" -I"$(_TKDIR)\xlib"
  692 !endif
  693 !endif
  694 
  695 !endif
  696 
  697 #----------------------------------------------------------
  698 # Display stats being used.
  699 #----------------------------------------------------------
  700 
  701 !message *** Intermediate directory will be '$(TMP_DIR)'
  702 !message *** Output directory will be '$(OUT_DIR)'
  703 !message *** Suffix for binaries will be '$(SUFX)'
  704 !message *** Optional defines are '$(OPTDEFINES)'
  705 !message *** Compiler version $(VCVER). Target machine is $(MACHINE)
  706 !message *** Host architecture is $(NATIVE_ARCH)
  707 !message *** Compiler options '$(COMPILERFLAGS) $(OPTIMIZATIONS) $(DEBUGFLAGS) $(WARNINGS)'
  708 !message *** Link options '$(LINKERFLAGS)'
  709 
  710 !endif
  711