diff options
author | davygrvy <davygrvy@pobox.com> | 2002-11-04 05:50:19 (GMT) |
---|---|---|
committer | davygrvy <davygrvy@pobox.com> | 2002-11-04 05:50:19 (GMT) |
commit | d9952d775abb77c056da36551547a42f7694ddef (patch) | |
tree | 6de01badde20b6019a1be9a838ccc4bdeb8bfad6 /win/rules.vc | |
parent | 0687dfb03c01b6ab1c1ec9c2978bbe5cb0c4e815 (diff) | |
download | tcl-d9952d775abb77c056da36551547a42f7694ddef.zip tcl-d9952d775abb77c056da36551547a42f7694ddef.tar.gz tcl-d9952d775abb77c056da36551547a42f7694ddef.tar.bz2 |
* win/tclAppInit.c: Calls Registry_Init() and Dde_Init() when
STATIC_BUILD and TCL_USE_STATIC_PACKAGES macros are set.
* win/makefile.vc:
* win/rules.vc: linkexten option now sets the TCL_USE_STATIC_PACKAGES
macro which also adds the registry and dde object files to the link
of the shell. [Patch 479697] Also factored some additional macros
that will be helpful for extension authors. Version grepping of tcl.h
will need to be added to complete this.
* win/buildall.vc.bat: Added more descriptive commentary.
Diffstat (limited to 'win/rules.vc')
-rw-r--r-- | win/rules.vc | 99 |
1 files changed, 92 insertions, 7 deletions
diff --git a/win/rules.vc b/win/rules.vc index bb9cc30..0bc3469 100644 --- a/win/rules.vc +++ b/win/rules.vc @@ -10,7 +10,7 @@ # Copyright (c) 2001-2002 David Gravereaux. # #------------------------------------------------------------------------------ -# RCS: @(#) $Id: rules.vc,v 1.8 2002/06/14 14:42:21 davygrvy Exp $ +# RCS: @(#) $Id: rules.vc,v 1.9 2002/11/04 05:50:19 davygrvy Exp $ #------------------------------------------------------------------------------ !ifndef _RULES_VC @@ -22,13 +22,34 @@ lib32 = lib rc32 = $(RC) # built-in default. !ifndef INSTALLDIR -INSTALLDIR = C:\Progra~1\Tcl +### Assume the normal default. +_INSTALLDIR = C:\Program Files\Tcl +!else +### Fix the path seperators. +_INSTALLDIR = $(INSTALLDIR:/=\) !endif !ifndef MACHINE MACHINE = IX86 !endif + +#---------------------------------------------------------- +# Set the proper copy method to avoid overwrite questions +# to the user when copying files. +#---------------------------------------------------------- + +!if "$(OS)" == "Windows_NT" +!if ![ver | find "4.0" > nul] +CPY = echo y | xcopy /i +!else +CPY = xcopy /i /y +!endif +!else +CPY = xcopy /i +!endif + + !message =============================================================================== #---------------------------------------------------------- @@ -46,7 +67,7 @@ MACHINE = IX86 #---------------------------------------------------------- ### test for optimizations -!if [nmakehlp -c -Otip ] +!if [nmakehlp -c -Otip] !message *** Compiler has 'Optimizations' OPTIMIZING = 1 !else @@ -100,7 +121,7 @@ DEBUG = 0 PROFILE = 0 MSVCRT = 0 LOIMPACT = 0 -TCL_LINKWITHEXTENSIONS = 0 +TCL_USE_STATIC_PACKAGES = 0 !else !if [nmakehlp -f $(OPTS) "static"] !message *** Doing static @@ -116,9 +137,9 @@ MSVCRT = 0 !endif !if [nmakehlp -f $(OPTS) "linkexten"] !message *** Doing linkexten -TCL_LINKWITHEXTENSIONS = 1 +TCL_USE_STATIC_PACKAGES = 1 !else -TCL_LINKWITHEXTENSIONS = 0 +TCL_USE_STATIC_PACKAGES = 0 !endif !if [nmakehlp -f $(OPTS) "threads"] !message *** Doing threads @@ -151,7 +172,7 @@ LOIMPACT = 0 # Make sure we don't build overly fat DLLs. MSVCRT = 1 # We shouldn't statically put the extensions inside the shell when dynamic. -TCL_LINKWITHEXTENSIONS = 0 +TCL_USE_STATIC_PACKAGES = 0 !endif @@ -251,6 +272,70 @@ OPTDEFINES = $(OPTDEFINES) -DSTATIC_BUILD #---------------------------------------------------------- +# Get common info used when building extensions. +#---------------------------------------------------------- + +!if "$(PROJECT)" != "tcl" + +!if !defined(TCLDIR) +!if exist("$(_INSTALLDIR)\include\tcl.h") +TCLINSTALL = 1 +_TCLDIR = $(_INSTALLDIR) +!else +MSG=^ +Don't know where tcl.h is. Set the TCLDIR macro. +!error $(MSG) +!endif +!else +_TCLDIR = $(TCLDIR:/=\) +!if exist("$(_TCLDIR)\include\tcl.h") +TCLINSTALL = 1 +!elseif exist("$(_TCLDIR)\generic\tcl.h") +TCLINSTALL = 0 +!else +MSG =^ +Don't know where tcl.h is. The TCLDIR macro doesn't appear correct. +!error $(MSG) +!endif +!endif + +### TODO: add a command to nmakehlp.c to grep for Tcl's version from tcl.h. +### Because nmake can't return a string, we'll need to play games with return +### codes :) It might look something like this: +#!if [nmakehlp -g $(TCL.H)] == 81 +#TCL_DOTVERSION = 8.1 +#!elseif [nmakehlp -g $(TCL.H)] == 82 +#TCL_DOTVERSION = 8.2 +#... +#!endif + +TCL_DOTVERSION = 8.4 +TCL_VERSION = $(TCL_DOTVERSION:.=) + +!if $(TCLINSTALL) +TCLSH = "$(_INSTALLDIR)\bin\tclsh$(TCL_VERSION)$(SUFX).exe" +TCLSTUBLIB = "$(_INSTALLDIR)\lib\tclstub$(TCL_VERSION).lib" +TCLIMPLIB = "$(_INSTALLDIR)\lib\tcl$(TCL_VERSION)$(SUFX).lib" +TCL_LIBRARY = $(_INSTALLDIR)\lib +TCLREGLIB = "$(_INSTALLDIR)\lib\tclreg11$(SUFX:t=).lib" +TCLDDELIB = "$(_INSTALLDIR)\lib\tcldde12$(SUFX:t=).lib" +COFFBASE = \must\have\tcl\sources\to\build\this\target +TCLTOOLSDIR = \must\have\tcl\sources\to\build\this\target +!else +TCLSH = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(TCL_VERSION)$(SUFX).exe" +TCLSTUBLIB = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclstub$(TCL_VERSION).lib" +TCLIMPLIB = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)$(SUFX).lib" +TCL_LIBRARY = $(_TCLDIR)\library +TCLREGLIB = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg11$(SUFX:t=).lib" +TCLDDELIB = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tcldde12$(SUFX:t=).lib" +COFFBASE = "$(_TCLDIR)\win\coffbase.txt" +TCLTOOLSDIR = $(_TCLDIR)\tools +!endif + +!endif + + +#---------------------------------------------------------- # Display stats being used. #---------------------------------------------------------- |