Fix imported build of Tcl/Tk 8.6.11 (previous version was actually 8.6.10)
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
# compiler switches, defining common targets and macros. The Tcl makefile
|
||||
# directly includes this. Extensions include it via "rules-ext.vc".
|
||||
#
|
||||
# See TIP 477 (https://core.tcl-lang.org/tips/doc/trunk/tip/477.md) for
|
||||
# See TIP 477 (https://core.tcl-lang.org/tips/doc/main/tip/477.md) for
|
||||
# detailed documentation.
|
||||
#
|
||||
# See the file "license.terms" for information on usage and redistribution
|
||||
@@ -24,7 +24,7 @@ _RULES_VC = 1
|
||||
# For modifications that are not backward-compatible, you *must* change
|
||||
# the major version.
|
||||
RULES_VERSION_MAJOR = 1
|
||||
RULES_VERSION_MINOR = 4
|
||||
RULES_VERSION_MINOR = 8
|
||||
|
||||
# The PROJECT macro must be defined by parent makefile.
|
||||
!if "$(PROJECT)" == ""
|
||||
@@ -302,7 +302,7 @@ TCLDIR = $(_INSTALLDIR)\..
|
||||
_TCLDIR = $(_INSTALLDIR)\..
|
||||
_TCL_H = $(_TCLDIR)\include\tcl.h
|
||||
|
||||
!else # exist(...) && ! $(NEED_TCL_SOURCE)
|
||||
!else # exist(...) && !$(NEED_TCL_SOURCE)
|
||||
|
||||
!if [echo _TCLDIR = \> nmakehlp.out] \
|
||||
|| [nmakehlp -L generic\tcl.h >> nmakehlp.out]
|
||||
@@ -313,7 +313,7 @@ TCLINSTALL = 0
|
||||
TCLDIR = $(_TCLDIR)
|
||||
_TCL_H = $(_TCLDIR)\generic\tcl.h
|
||||
|
||||
!endif # exist(...) && ! $(NEED_TCL_SOURCE)
|
||||
!endif # exist(...) && !$(NEED_TCL_SOURCE)
|
||||
|
||||
!endif # TCLDIR
|
||||
|
||||
@@ -415,9 +415,6 @@ _INSTALLDIR=$(_INSTALLDIR)\lib
|
||||
# NATIVE_ARCH - set to IX86 or AMD64 for the host machine
|
||||
# MACHINE - same as $(ARCH) - legacy
|
||||
# _VC_MANIFEST_EMBED_{DLL,EXE} - commands for embedding a manifest if needed
|
||||
# CFG_ENCODING - set to an character encoding.
|
||||
# TBD - this is passed to compiler as TCL_CFGVAL_ENCODING but can't
|
||||
# see where it is used
|
||||
|
||||
cc32 = $(CC) # built-in default.
|
||||
link32 = link
|
||||
@@ -503,10 +500,6 @@ _VC_MANIFEST_EMBED_EXE=if exist $@.manifest mt -nologo -manifest $@.manifest -ou
|
||||
_VC_MANIFEST_EMBED_DLL=if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2
|
||||
!endif
|
||||
|
||||
!ifndef CFG_ENCODING
|
||||
CFG_ENCODING = \"cp1252\"
|
||||
!endif
|
||||
|
||||
################################################################
|
||||
# 4. Build the nmakehlp program
|
||||
# This is a helper app we need to overcome nmake's limiting
|
||||
@@ -514,7 +507,7 @@ CFG_ENCODING = \"cp1252\"
|
||||
# information about supported compiler options etc.
|
||||
#
|
||||
# Tcl itself will always use the nmakehlp.c program which is
|
||||
# in its own source. This is the "master" copy and kept updated.
|
||||
# in its own source. It will be kept updated there.
|
||||
#
|
||||
# Extensions built against an installed Tcl will use the installed
|
||||
# copy of Tcl's nmakehlp.c if there is one and their own version
|
||||
@@ -537,7 +530,7 @@ NMAKEHLPC = nmakehlp.c
|
||||
!if exist("$(_TCLDIR)\lib\nmake\nmakehlp.c")
|
||||
NMAKEHLPC = $(_TCLDIR)\lib\nmake\nmakehlp.c
|
||||
!endif
|
||||
!else # ! $(TCLINSTALL)
|
||||
!else # !$(TCLINSTALL)
|
||||
!if exist("$(_TCLDIR)\win\nmakehlp.c")
|
||||
NMAKEHLPC = $(_TCLDIR)\win\nmakehlp.c
|
||||
!endif
|
||||
@@ -659,8 +652,130 @@ LINKERFLAGS = $(LINKERFLAGS) -ltcg
|
||||
!endif
|
||||
!endif
|
||||
|
||||
|
||||
################################################################
|
||||
# 6. Extract various version numbers from headers
|
||||
# For Tcl and Tk, version numbers are extracted from tcl.h and tk.h
|
||||
# respectively. For extensions, versions are extracted from the
|
||||
# configure.in or configure.ac from the TEA configuration if it
|
||||
# exists, and unset otherwise.
|
||||
# Sets the following macros:
|
||||
# TCL_MAJOR_VERSION
|
||||
# TCL_MINOR_VERSION
|
||||
# TCL_RELEASE_SERIAL
|
||||
# TCL_PATCH_LEVEL
|
||||
# TCL_PATCH_LETTER
|
||||
# TCL_VERSION
|
||||
# TK_MAJOR_VERSION
|
||||
# TK_MINOR_VERSION
|
||||
# TK_RELEASE_SERIAL
|
||||
# TK_PATCH_LEVEL
|
||||
# TK_PATCH_LETTER
|
||||
# TK_VERSION
|
||||
# DOTVERSION - set as (for example) 2.5
|
||||
# VERSION - set as (for example 25)
|
||||
#--------------------------------------------------------------
|
||||
|
||||
!if [echo REM = This file is generated from rules.vc > versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_MAJOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TCL_H)" TCL_MAJOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_MINOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TCL_H)" TCL_MINOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_RELEASE_SERIAL = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TCL_H)" TCL_RELEASE_SERIAL >> versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_PATCH_LEVEL = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TCL_H)" TCL_PATCH_LEVEL >> versions.vc]
|
||||
!endif
|
||||
|
||||
!if defined(_TK_H)
|
||||
!if [echo TK_MAJOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V $(_TK_H) TK_MAJOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TK_MINOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V $(_TK_H) TK_MINOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TK_RELEASE_SERIAL = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TK_H)" TK_RELEASE_SERIAL >> versions.vc]
|
||||
!endif
|
||||
!if [echo TK_PATCH_LEVEL = \>> versions.vc] \
|
||||
&& [nmakehlp -V $(_TK_H) TK_PATCH_LEVEL >> versions.vc]
|
||||
!endif
|
||||
!endif # _TK_H
|
||||
|
||||
!include versions.vc
|
||||
|
||||
TCL_VERSION = $(TCL_MAJOR_VERSION)$(TCL_MINOR_VERSION)
|
||||
TCL_DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
|
||||
!if [nmakehlp -f $(TCL_PATCH_LEVEL) "a"]
|
||||
TCL_PATCH_LETTER = a
|
||||
!elseif [nmakehlp -f $(TCL_PATCH_LEVEL) "b"]
|
||||
TCL_PATCH_LETTER = b
|
||||
!else
|
||||
TCL_PATCH_LETTER = .
|
||||
!endif
|
||||
|
||||
!if defined(_TK_H)
|
||||
|
||||
TK_VERSION = $(TK_MAJOR_VERSION)$(TK_MINOR_VERSION)
|
||||
TK_DOTVERSION = $(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)
|
||||
!if [nmakehlp -f $(TK_PATCH_LEVEL) "a"]
|
||||
TK_PATCH_LETTER = a
|
||||
!elseif [nmakehlp -f $(TK_PATCH_LEVEL) "b"]
|
||||
TK_PATCH_LETTER = b
|
||||
!else
|
||||
TK_PATCH_LETTER = .
|
||||
!endif
|
||||
|
||||
!endif
|
||||
|
||||
# Set DOTVERSION and VERSION
|
||||
!if $(DOING_TCL)
|
||||
|
||||
DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
|
||||
VERSION = $(TCL_VERSION)
|
||||
|
||||
!elseif $(DOING_TK)
|
||||
|
||||
DOTVERSION = $(TK_DOTVERSION)
|
||||
VERSION = $(TK_VERSION)
|
||||
|
||||
!else # Doing a non-Tk extension
|
||||
|
||||
# If parent makefile has not defined DOTVERSION, try to get it from TEA
|
||||
# first from a configure.in file, and then from configure.ac
|
||||
!ifndef DOTVERSION
|
||||
!if [echo DOTVERSION = \> versions.vc] \
|
||||
|| [nmakehlp -V $(ROOT)\configure.in ^[$(PROJECT)^] >> versions.vc]
|
||||
!if [echo DOTVERSION = \> versions.vc] \
|
||||
|| [nmakehlp -V $(ROOT)\configure.ac ^[$(PROJECT)^] >> versions.vc]
|
||||
!error *** Could not figure out extension version. Please define DOTVERSION in parent makefile before including rules.vc.
|
||||
!endif
|
||||
!endif
|
||||
!include versions.vc
|
||||
!endif # DOTVERSION
|
||||
VERSION = $(DOTVERSION:.=)
|
||||
|
||||
!endif # $(DOING_TCL) ... etc.
|
||||
|
||||
# Windows RC files have 3 version components. Ensure this irrespective
|
||||
# of how many components the package has specified. Basically, ensure
|
||||
# minimum 4 components by appending 4 0's and then pick out the first 4.
|
||||
# Also take care of the fact that DOTVERSION may have "a" or "b" instead
|
||||
# of "." separating the version components.
|
||||
DOTSEPARATED=$(DOTVERSION:a=.)
|
||||
DOTSEPARATED=$(DOTSEPARATED:b=.)
|
||||
!if [echo RCCOMMAVERSION = \> versions.vc] \
|
||||
|| [for /f "tokens=1,2,3,4,5* delims=." %a in ("$(DOTSEPARATED).0.0.0.0") do echo %a,%b,%c,%d >> versions.vc]
|
||||
!error *** Could not generate RCCOMMAVERSION ***
|
||||
!endif
|
||||
!include versions.vc
|
||||
|
||||
########################################################################
|
||||
# 6. Parse the OPTS macro to work out the requested build configuration.
|
||||
# 7. Parse the OPTS macro to work out the requested build configuration.
|
||||
# Based on this, we will construct the actual switches to be passed to the
|
||||
# compiler and linker using the macros defined in the previous section.
|
||||
# The following macros are defined by this section based on OPTS
|
||||
@@ -674,9 +789,10 @@ LINKERFLAGS = $(LINKERFLAGS) -ltcg
|
||||
# MSVCRT - 1 -> link to dynamic C runtime even when building static Tcl build
|
||||
# 0 -> link to static C runtime for static Tcl build.
|
||||
# Does not impact shared Tcl builds (STATIC_BUILD == 0)
|
||||
# Default: 1 for Tcl 8.7 and up, 0 otherwise.
|
||||
# TCL_USE_STATIC_PACKAGES - 1 -> statically link the registry and dde extensions
|
||||
# in the Tcl shell. 0 -> keep them as shared libraries
|
||||
# Does not impact shared Tcl builds.
|
||||
# in the Tcl and Wish shell. 0 -> keep them as shared libraries. Does
|
||||
# not impact shared Tcl builds. Implied by STATIC_BUILD since Tcl 8.7.
|
||||
# USE_THREAD_ALLOC - 1 -> Use a shared global free pool for allocation.
|
||||
# 0 -> Use the non-thread allocator.
|
||||
# UNCHECKED - 1 -> when doing a debug build with symbols, use the release
|
||||
@@ -685,7 +801,9 @@ LINKERFLAGS = $(LINKERFLAGS) -ltcg
|
||||
# CONFIG_CHECK - 1 -> check current build configuration against Tcl
|
||||
# configuration (ignored for Tcl itself)
|
||||
# _USE_64BIT_TIME_T - forces a build using 64-bit time_t for 32-bit build
|
||||
# (CRT library should support this)
|
||||
# (CRT library should support this, not needed for Tcl 9.x)
|
||||
# TCL_UTF_MAX=4 - forces a build allowing 4-byte UTF-8 sequences internally.
|
||||
# (Not needed for Tcl 9.x)
|
||||
# Further, LINKERFLAGS are modified based on above.
|
||||
|
||||
# Default values for all the above
|
||||
@@ -728,11 +846,8 @@ MSVCRT = 0
|
||||
!else
|
||||
!if [nmakehlp -f $(OPTS) "msvcrt"]
|
||||
!message *** Doing msvcrt
|
||||
MSVCRT = 1
|
||||
!else
|
||||
!if !$(STATIC_BUILD)
|
||||
MSVCRT = 1
|
||||
!else
|
||||
!if $(TCL_MAJOR_VERSION) == 8 && $(TCL_MINOR_VERSION) < 7 && $(STATIC_BUILD)
|
||||
MSVCRT = 0
|
||||
!endif
|
||||
!endif
|
||||
@@ -741,24 +856,26 @@ MSVCRT = 0
|
||||
!if [nmakehlp -f $(OPTS) "staticpkg"] && $(STATIC_BUILD)
|
||||
!message *** Doing staticpkg
|
||||
TCL_USE_STATIC_PACKAGES = 1
|
||||
!else
|
||||
TCL_USE_STATIC_PACKAGES = 0
|
||||
!endif
|
||||
|
||||
!if [nmakehlp -f $(OPTS) "nothreads"]
|
||||
!message *** Compile explicitly for non-threaded tcl
|
||||
TCL_THREADS = 0
|
||||
USE_THREAD_ALLOC= 0
|
||||
!else
|
||||
TCL_THREADS = 1
|
||||
USE_THREAD_ALLOC= 1
|
||||
!endif
|
||||
|
||||
!if $(TCL_MAJOR_VERSION) == 8
|
||||
!if [nmakehlp -f $(OPTS) "time64bit"]
|
||||
!message *** Force 64-bit time_t
|
||||
_USE_64BIT_TIME_T = 1
|
||||
!endif
|
||||
|
||||
!if [nmakehlp -f $(OPTS) "utfmax"]
|
||||
!message *** Force allowing 4-byte UTF-8 sequences internally
|
||||
TCL_UTF_MAX = 4
|
||||
!endif
|
||||
!endif
|
||||
|
||||
# Yes, it's weird that the "symbols" option controls DEBUG and
|
||||
# the "pdbs" option controls SYMBOLS. That's historical.
|
||||
!if [nmakehlp -f $(OPTS) "symbols"]
|
||||
@@ -842,7 +959,7 @@ This compiler does not support profile guided optimization.
|
||||
!endif
|
||||
|
||||
################################################################
|
||||
# 7. Parse the STATS macro to configure code instrumentation
|
||||
# 8. Parse the STATS macro to configure code instrumentation
|
||||
# The following macros are set by this section:
|
||||
# TCL_MEM_DEBUG - 1 -> enables memory allocation instrumentation
|
||||
# 0 -> disables
|
||||
@@ -872,7 +989,7 @@ TCL_COMPILE_DEBUG = 0
|
||||
!endif
|
||||
|
||||
####################################################################
|
||||
# 8. Parse the CHECKS macro to configure additional compiler checks
|
||||
# 9. Parse the CHECKS macro to configure additional compiler checks
|
||||
# The following macros are set by this section:
|
||||
# WARNINGS - compiler switches that control the warnings level
|
||||
# TCL_NO_DEPRECATED - 1 -> disable support for deprecated functions
|
||||
@@ -904,86 +1021,6 @@ WARNINGS = $(WARNINGS) -Wp64
|
||||
|
||||
!endif
|
||||
|
||||
################################################################
|
||||
# 9. Extract various version numbers
|
||||
# For Tcl and Tk, version numbers are extracted from tcl.h and tk.h
|
||||
# respectively. For extensions, versions are extracted from the
|
||||
# configure.in or configure.ac from the TEA configuration if it
|
||||
# exists, and unset otherwise.
|
||||
# Sets the following macros:
|
||||
# TCL_MAJOR_VERSION
|
||||
# TCL_MINOR_VERSION
|
||||
# TCL_PATCH_LEVEL
|
||||
# TCL_VERSION
|
||||
# TK_MAJOR_VERSION
|
||||
# TK_MINOR_VERSION
|
||||
# TK_PATCH_LEVEL
|
||||
# TK_VERSION
|
||||
# DOTVERSION - set as (for example) 2.5
|
||||
# VERSION - set as (for example 25)
|
||||
#--------------------------------------------------------------
|
||||
|
||||
!if [echo REM = This file is generated from rules.vc > versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_MAJOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TCL_H)" TCL_MAJOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_MINOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TCL_H)" TCL_MINOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TCL_PATCH_LEVEL = \>> versions.vc] \
|
||||
&& [nmakehlp -V "$(_TCL_H)" TCL_PATCH_LEVEL >> versions.vc]
|
||||
!endif
|
||||
|
||||
!if defined(_TK_H)
|
||||
!if [echo TK_MAJOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V $(_TK_H) TK_MAJOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TK_MINOR_VERSION = \>> versions.vc] \
|
||||
&& [nmakehlp -V $(_TK_H) TK_MINOR_VERSION >> versions.vc]
|
||||
!endif
|
||||
!if [echo TK_PATCH_LEVEL = \>> versions.vc] \
|
||||
&& [nmakehlp -V $(_TK_H) TK_PATCH_LEVEL >> versions.vc]
|
||||
!endif
|
||||
!endif # _TK_H
|
||||
|
||||
!include versions.vc
|
||||
|
||||
TCL_VERSION = $(TCL_MAJOR_VERSION)$(TCL_MINOR_VERSION)
|
||||
TCL_DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
|
||||
!if defined(_TK_H)
|
||||
TK_VERSION = $(TK_MAJOR_VERSION)$(TK_MINOR_VERSION)
|
||||
TK_DOTVERSION = $(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)
|
||||
!endif
|
||||
|
||||
# Set DOTVERSION and VERSION
|
||||
!if $(DOING_TCL)
|
||||
|
||||
DOTVERSION = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
|
||||
VERSION = $(TCL_VERSION)
|
||||
|
||||
!elseif $(DOING_TK)
|
||||
|
||||
DOTVERSION = $(TK_DOTVERSION)
|
||||
VERSION = $(TK_VERSION)
|
||||
|
||||
!else # Doing a non-Tk extension
|
||||
|
||||
# If parent makefile has not defined DOTVERSION, try to get it from TEA
|
||||
# first from a configure.in file, and then from configure.ac
|
||||
!ifndef DOTVERSION
|
||||
!if [echo DOTVERSION = \> versions.vc] \
|
||||
|| [nmakehlp -V $(ROOT)\configure.in ^[$(PROJECT)^] >> versions.vc]
|
||||
!if [echo DOTVERSION = \> versions.vc] \
|
||||
|| [nmakehlp -V $(ROOT)\configure.ac ^[$(PROJECT)^] >> versions.vc]
|
||||
!error *** Could not figure out extension version. Please define DOTVERSION in parent makefile before including rules.vc.
|
||||
!endif
|
||||
!endif
|
||||
!include versions.vc
|
||||
!endif # DOTVERSION
|
||||
VERSION = $(DOTVERSION:.=)
|
||||
|
||||
!endif # $(DOING_TCL) ... etc.
|
||||
|
||||
################################################################
|
||||
# 10. Construct output directory and file paths
|
||||
@@ -1029,7 +1066,7 @@ BUILDDIRTOP =$(BUILDDIRTOP)_$(MACHINE)
|
||||
BUILDDIRTOP =$(BUILDDIRTOP)_VC$(VCVER)
|
||||
!endif
|
||||
|
||||
!if !$(DEBUG) || $(DEBUG) && $(UNCHECKED)
|
||||
!if !$(DEBUG) || $(TCL_VERSION) > 86 || $(DEBUG) && $(UNCHECKED)
|
||||
SUFX = $(SUFX:g=)
|
||||
!endif
|
||||
|
||||
@@ -1080,20 +1117,35 @@ OUT_DIR = $(TMP_DIR)
|
||||
# The name of the stubs library for the project being built
|
||||
STUBPREFIX = $(PROJECT)stub
|
||||
|
||||
#
|
||||
# Set up paths to various Tcl executables and libraries needed by extensions
|
||||
!if $(DOING_TCL)
|
||||
#
|
||||
|
||||
# TIP 430. Unused for 8.6 but no harm defining it to allow a common rules.vc
|
||||
!if "$(TCL_PATCH_LETTER)" == "."
|
||||
TCLSCRIPTZIPNAME = libtcl_$(TCL_MAJOR_VERSION)_$(TCL_MINOR_VERSION)_$(TCL_RELEASE_SERIAL).zip
|
||||
!else
|
||||
TCLSCRIPTZIPNAME = libtcl_$(TCL_MAJOR_VERSION)_$(TCL_MINOR_VERSION)_$(TCL_PATCH_LETTER)$(TCL_RELEASE_SERIAL).zip
|
||||
!endif
|
||||
!if "$(TK_PATCH_LETTER)" == "."
|
||||
TKSCRIPTZIPNAME = libtk_$(TK_MAJOR_VERSION)_$(TK_MINOR_VERSION)_$(TK_RELEASE_SERIAL).zip
|
||||
!else
|
||||
TKSCRIPTZIPNAME = libtk_$(TK_MAJOR_VERSION)_$(TK_MINOR_VERSION)_$(TK_PATCH_LETTER)$(TK_RELEASE_SERIAL).zip
|
||||
!endif
|
||||
|
||||
!if $(DOING_TCL)
|
||||
TCLSHNAME = $(PROJECT)sh$(VERSION)$(SUFX).exe
|
||||
TCLSH = $(OUT_DIR)\$(TCLSHNAME)
|
||||
TCLIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
|
||||
TCLLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
|
||||
TCLLIB = $(OUT_DIR)\$(TCLLIBNAME)
|
||||
TCLSCRIPTZIP = $(OUT_DIR)\$(TCLSCRIPTZIPNAME)
|
||||
|
||||
TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
|
||||
TCLSTUBLIB = $(OUT_DIR)\$(TCLSTUBLIBNAME)
|
||||
TCL_INCLUDES = -I"$(WIN_DIR)" -I"$(GENERICDIR)"
|
||||
|
||||
!else # ! $(DOING_TCL)
|
||||
!else # !$(DOING_TCL)
|
||||
|
||||
!if $(TCLINSTALL) # Building against an installed Tcl
|
||||
|
||||
@@ -1115,6 +1167,7 @@ TCLIMPLIB = $(_TCLDIR)\lib\tcl$(TCL_VERSION)t$(SUFX:t=).lib
|
||||
TCL_LIBRARY = $(_TCLDIR)\lib
|
||||
TCLREGLIB = $(_TCLDIR)\lib\tclreg13$(SUFX:t=).lib
|
||||
TCLDDELIB = $(_TCLDIR)\lib\tcldde14$(SUFX:t=).lib
|
||||
TCLSCRIPTZIP = $(_TCLDIR)\lib\$(TCLSCRIPTZIPNAME)
|
||||
TCLTOOLSDIR = \must\have\tcl\sources\to\build\this\target
|
||||
TCL_INCLUDES = -I"$(_TCLDIR)\include"
|
||||
|
||||
@@ -1134,6 +1187,7 @@ TCLIMPLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)t$(SUFX:t=).lib
|
||||
TCL_LIBRARY = $(_TCLDIR)\library
|
||||
TCLREGLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg13$(SUFX:t=).lib
|
||||
TCLDDELIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tcldde14$(SUFX:t=).lib
|
||||
TCLSCRIPTZIP = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCLSCRIPTZIPNAME)
|
||||
TCLTOOLSDIR = $(_TCLDIR)\tools
|
||||
TCL_INCLUDES = -I"$(_TCLDIR)\generic" -I"$(_TCLDIR)\win"
|
||||
|
||||
@@ -1166,7 +1220,8 @@ WISH = $(OUT_DIR)\$(WISHNAME)
|
||||
TKSTUBLIB = $(OUT_DIR)\$(TKSTUBLIBNAME)
|
||||
TKIMPLIB = $(OUT_DIR)\$(TKIMPLIBNAME)
|
||||
TKLIB = $(OUT_DIR)\$(TKLIBNAME)
|
||||
TK_INCLUDES = -I"$(WIN_DIR)" -I"$(GENERICDIR)"
|
||||
TK_INCLUDES = -I"$(WIN_DIR)" -I"$(GENERICDIR)"
|
||||
TKSCRIPTZIP = $(OUT_DIR)\$(TKSCRIPTZIPNAME)
|
||||
|
||||
!else # effectively NEED_TK
|
||||
|
||||
@@ -1181,7 +1236,10 @@ TKIMPLIBNAME = tk$(TK_VERSION)$(SUFX:t=).lib
|
||||
TKIMPLIB = $(_TKDIR)\lib\$(TKIMPLIBNAME)
|
||||
!endif
|
||||
TK_INCLUDES = -I"$(_TKDIR)\include"
|
||||
TKSCRIPTZIP = $(_TKDIR)\lib\$(TKSCRIPTZIPNAME)
|
||||
|
||||
!else # Building against Tk sources
|
||||
|
||||
WISH = $(_TKDIR)\win\$(BUILDDIRTOP)\$(WISHNAME)
|
||||
TKSTUBLIB = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKSTUBLIBNAME)
|
||||
TKIMPLIB = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKIMPLIBNAME)
|
||||
@@ -1192,7 +1250,10 @@ TKIMPLIBNAME = tk$(TK_VERSION)$(SUFX:t=).lib
|
||||
TKIMPLIB = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKIMPLIBNAME)
|
||||
!endif
|
||||
TK_INCLUDES = -I"$(_TKDIR)\generic" -I"$(_TKDIR)\win" -I"$(_TKDIR)\xlib"
|
||||
TKSCRIPTZIP = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKSCRIPTZIPNAME)
|
||||
|
||||
!endif # TKINSTALL
|
||||
|
||||
tklibs = "$(TKSTUBLIB)" "$(TKIMPLIB)"
|
||||
|
||||
!endif # $(DOING_TK)
|
||||
@@ -1233,6 +1294,7 @@ BIN_INSTALL_DIR = $(_INSTALLDIR)\bin
|
||||
DOC_INSTALL_DIR = $(_INSTALLDIR)\doc
|
||||
!if $(DOING_TCL)
|
||||
SCRIPT_INSTALL_DIR = $(_INSTALLDIR)\lib\$(PROJECT)$(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
|
||||
MODULE_INSTALL_DIR = $(_INSTALLDIR)\lib\tcl$(TCL_MAJOR_VERSION)
|
||||
!else # DOING_TK
|
||||
SCRIPT_INSTALL_DIR = $(_INSTALLDIR)\lib\$(PROJECT)$(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)
|
||||
!endif
|
||||
@@ -1277,7 +1339,15 @@ INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\..\include
|
||||
# baselibs - minimum Windows libraries required. Parent makefile can
|
||||
# define PRJ_LIBS before including rules.rc if additional libs are needed
|
||||
|
||||
OPTDEFINES = /DTCL_CFGVAL_ENCODING=$(CFG_ENCODING) /DSTDC_HEADERS
|
||||
OPTDEFINES = /DSTDC_HEADERS
|
||||
!if $(VCVERSION) > 1600
|
||||
OPTDEFINES = $(OPTDEFINES) /DHAVE_STDINT_H=1
|
||||
!else
|
||||
OPTDEFINES = $(OPTDEFINES) /DMP_NO_STDINT=1
|
||||
!endif
|
||||
!if $(VCVERSION) >= 1800
|
||||
OPTDEFINES = $(OPTDEFINES) /DHAVE_INTTYPES_H=1 /DHAVE_STDBOOL_H=1
|
||||
!endif
|
||||
|
||||
!if $(TCL_MEM_DEBUG)
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_MEM_DEBUG
|
||||
@@ -1293,6 +1363,11 @@ OPTDEFINES = $(OPTDEFINES) /DUSE_THREAD_ALLOC=1
|
||||
!endif
|
||||
!if $(STATIC_BUILD)
|
||||
OPTDEFINES = $(OPTDEFINES) /DSTATIC_BUILD
|
||||
!elseif $(TCL_VERSION) > 86
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_WITH_EXTERNAL_TOMMATH
|
||||
!if "$(MACHINE)" == "AMD64"
|
||||
OPTDEFINES = $(OPTDEFINES) /DMP_64BIT
|
||||
!endif
|
||||
!endif
|
||||
!if $(TCL_NO_DEPRECATED)
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_NO_DEPRECATED
|
||||
@@ -1301,7 +1376,7 @@ OPTDEFINES = $(OPTDEFINES) /DTCL_NO_DEPRECATED
|
||||
!if $(USE_STUBS)
|
||||
# Note we do not define USE_TCL_STUBS even when building tk since some
|
||||
# test targets in tk do not use stubs
|
||||
!if ! $(DOING_TCL)
|
||||
!if !$(DOING_TCL)
|
||||
USE_STUBS_DEFS = /DUSE_TCL_STUBS /DUSE_TCLOO_STUBS
|
||||
!if $(NEED_TK)
|
||||
USE_STUBS_DEFS = $(USE_STUBS_DEFS) /DUSE_TK_STUBS
|
||||
@@ -1322,15 +1397,20 @@ OPTDEFINES = $(OPTDEFINES) /DTCL_CFG_PROFILED
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_CFG_DO64BIT
|
||||
!endif
|
||||
!if $(VCVERSION) < 1300
|
||||
OPTDEFINES = $(OPTDEFINES) /DNO_STRTOI64
|
||||
OPTDEFINES = $(OPTDEFINES) /DNO_STRTOI64=1
|
||||
!endif
|
||||
|
||||
!if "$(TCL_MAJOR_VERSION)" == "8"
|
||||
!if "$(_USE_64BIT_TIME_T)" == "1"
|
||||
OPTDEFINES = $(OPTDEFINES) /D_USE_64BIT_TIME_T
|
||||
OPTDEFINES = $(OPTDEFINES) /D_USE_64BIT_TIME_T=1
|
||||
!endif
|
||||
!if "$(TCL_UTF_MAX)" == "4"
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_UTF_MAX=4
|
||||
!endif
|
||||
|
||||
# _ATL_XP_TARGETING - Newer SDK's need this to build for XP
|
||||
COMPILERFLAGS = /D_ATL_XP_TARGETING
|
||||
!endif
|
||||
|
||||
# Like the TEA system only set this non empty for non-Tk extensions
|
||||
# Note: some extensions use PACKAGE_NAME and others use PACKAGE_TCLNAME
|
||||
@@ -1455,18 +1535,6 @@ lflags = -nologo -machine:$(MACHINE) $(LINKERFLAGS) $(ldebug)
|
||||
lflags = $(lflags) -nodefaultlib:libucrt.lib
|
||||
!endif
|
||||
|
||||
# Old linkers (Visual C++ 6 in particular) will link for fast loading
|
||||
# on Win98. Since we do not support Win98 any more, we specify nowin98
|
||||
# as recommended for NT and later. However, this is only required by
|
||||
# IX86 on older compilers and only needed if we are not doing a static build.
|
||||
|
||||
!if "$(MACHINE)" == "IX86" && !$(STATIC_BUILD)
|
||||
!if [nmakehlp -l -opt:nowin98 $(LINKER_TESTFLAGS)]
|
||||
# Align sections for PE size savings.
|
||||
lflags = $(lflags) -opt:nowin98
|
||||
!endif
|
||||
!endif
|
||||
|
||||
dlllflags = $(lflags) -dll
|
||||
conlflags = $(lflags) -subsystem:console
|
||||
guilflags = $(lflags) -subsystem:windows
|
||||
@@ -1508,7 +1576,7 @@ GUIEXECMD = $(link32) $(guilflags) -out:$@ $(baselibs) $(tcllibs) $(tklibs)
|
||||
RESCMD = $(rc32) -fo $@ -r -i "$(GENERICDIR)" -i "$(TMP_DIR)" \
|
||||
$(TCL_INCLUDES) \
|
||||
/DDEBUG=$(DEBUG) -d UNCHECKED=$(UNCHECKED) \
|
||||
/DCOMMAVERSION=$(DOTVERSION:.=,),0 \
|
||||
/DCOMMAVERSION=$(RCCOMMAVERSION) \
|
||||
/DDOTVERSION=\"$(DOTVERSION)\" \
|
||||
/DVERSION=\"$(VERSION)\" \
|
||||
/DSUFX=\"$(SUFX)\" \
|
||||
@@ -1524,11 +1592,11 @@ default-target: $(DEFAULT_BUILD_TARGET)
|
||||
!if $(MULTIPLATFORM_INSTALL)
|
||||
default-pkgindex:
|
||||
@echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \
|
||||
[list load [file join $$dir $(PLATFORM_IDENTIFY) $(PRJLIBNAME)]] > $(OUT_DIR)\pkgIndex.tcl
|
||||
[list load [file join $$dir $(PLATFORM_IDENTIFY) $(PRJLIBNAME)] [string totitle $(PRJ_PACKAGE_TCLNAME)]] > $(OUT_DIR)\pkgIndex.tcl
|
||||
!else
|
||||
default-pkgindex:
|
||||
@echo package ifneeded $(PRJ_PACKAGE_TCLNAME) $(DOTVERSION) \
|
||||
[list load [file join $$dir $(PRJLIBNAME)]] > $(OUT_DIR)\pkgIndex.tcl
|
||||
[list load [file join $$dir $(PRJLIBNAME)] [string totitle $(PRJ_PACKAGE_TCLNAME)]] > $(OUT_DIR)\pkgIndex.tcl
|
||||
!endif
|
||||
|
||||
default-pkgindex-tea:
|
||||
@@ -1574,6 +1642,8 @@ default-install-pdbs:
|
||||
@if not exist "$(LIB_INSTALL_DIR)" mkdir "$(LIB_INSTALL_DIR)"
|
||||
@$(CPY) "$(OUT_DIR)\*.pdb" "$(LIB_INSTALL_DIR)\"
|
||||
|
||||
# "emacs font-lock highlighting fix
|
||||
|
||||
default-install-docs-html:
|
||||
@echo Installing documentation files to '$(DOC_INSTALL_DIR)'
|
||||
@if not exist "$(DOC_INSTALL_DIR)" mkdir "$(DOC_INSTALL_DIR)"
|
||||
@@ -1636,7 +1706,7 @@ default-shell: default-setup $(PROJECT)
|
||||
!ifdef RCFILE
|
||||
|
||||
# Note: don't use $** in below rule because there may be other dependencies
|
||||
# and only the "master" rc must be passed to the resource compiler
|
||||
# and only the "main" rc must be passed to the resource compiler
|
||||
$(TMP_DIR)\$(PROJECT).res: $(RCDIR)\$(PROJECT).rc
|
||||
$(RESCMD) $(RCDIR)\$(PROJECT).rc
|
||||
|
||||
@@ -1690,7 +1760,7 @@ DISABLE_IMPLICIT_RULES = 0
|
||||
|
||||
!if !$(DISABLE_IMPLICIT_RULES)
|
||||
# Implicit rule definitions - only for building library objects. For stubs and
|
||||
# main application, the master makefile should define explicit rules.
|
||||
# main application, the makefile should define explicit rules.
|
||||
|
||||
{$(ROOT)}.c{$(TMP_DIR)}.obj::
|
||||
$(CCPKGCMD) @<<
|
||||
@@ -1731,15 +1801,15 @@ $<
|
||||
# When building an extension, certain configuration options should
|
||||
# match the ones used when Tcl was built. Here we check and
|
||||
# warn on a mismatch.
|
||||
!if ! $(DOING_TCL)
|
||||
!if !$(DOING_TCL)
|
||||
|
||||
!if $(TCLINSTALL) # Building against an installed Tcl
|
||||
!if exist("$(_TCLDIR)\lib\nmake\tcl.nmake")
|
||||
TCLNMAKECONFIG = "$(_TCLDIR)\lib\nmake\tcl.nmake"
|
||||
!endif
|
||||
!else # ! $(TCLINSTALL) - building against Tcl source
|
||||
!if exist("$(OUT_DIR)\tcl.nmake")
|
||||
TCLNMAKECONFIG = "$(OUT_DIR)\tcl.nmake"
|
||||
!else # !$(TCLINSTALL) - building against Tcl source
|
||||
!if exist("$(_TCLDIR)\win\$(BUILDDIRTOP)\tcl.nmake")
|
||||
TCLNMAKECONFIG = "$(_TCLDIR)\win\$(BUILDDIRTOP)\tcl.nmake"
|
||||
!endif
|
||||
!endif # TCLINSTALL
|
||||
|
||||
@@ -1760,7 +1830,7 @@ TCLNMAKECONFIG = "$(OUT_DIR)\tcl.nmake"
|
||||
|
||||
!endif # TCLNMAKECONFIG
|
||||
|
||||
!endif # ! $(DOING_TCL)
|
||||
!endif # !$(DOING_TCL)
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user