Tcl UDP

Check-in [032223d40a]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update to V1.1 of nmake rules
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 032223d40aa2de5cd68af24d9344aeec09d6dbdcc2d5737a32d0a4c6ab178cb4
User & Date: apnadkarni 2017-12-23 10:22:53
Context
2017-12-26
14:27
Store HTML docs in repo since generation at install time mandates availability of mpexpand check-in: d9c46224c6 user: apnadkarni tags: trunk
2017-12-23
10:22
Update to V1.1 of nmake rules check-in: 032223d40a user: apnadkarni tags: trunk
2017-12-14
11:45
Do not generate / install documentation. This is as per hypnotoad's commit on the closed trunk which commented out that code, presumably because it requires doctools to be installed. check-in: d4b9c796de user: apnadkarni tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Added .fossil-settings/crlf-glob.

            1  +win/*.vc
            2  +win/README.win

Added .fossil-settings/ignore-glob.

            1  +win/Debug*
            2  +win/Release*
            3  +win/version*.vc
            4  +win/nmakehlp.exe
            5  +win/nmakehlp.obj
            6  +win/nmakehlp.out
            7  +win/_junk.pch
            8  +

Changes to win/rules-ext.vc.


Changes to win/rules.vc.

    20     20   !ifndef _RULES_VC
    21     21   _RULES_VC = 1
    22     22   
    23     23   # The following macros define the version of the rules.vc nmake build system
    24     24   # For modifications that are not backward-compatible, you *must* change
    25     25   # the major version.
    26     26   RULES_VERSION_MAJOR = 1
    27         -RULES_VERSION_MINOR = 0
           27  +RULES_VERSION_MINOR = 1
    28     28   
    29     29   # The PROJECT macro must be defined by parent makefile.
    30     30   !if "$(PROJECT)" == ""
    31     31   !error *** Error: Macro PROJECT not defined! Please define it before including rules.vc
    32     32   !endif
    33     33   
    34     34   !if "$(PRJ_PACKAGE_TCLNAME)" == ""
................................................................................
   531    531   !endif # $(TCLINSTALL)
   532    532   !endif # !$(DOING_TCL)
   533    533   
   534    534   !endif # NMAKEHLPC
   535    535   
   536    536   # We always build nmakehlp even if it exists since we do not know
   537    537   # what source it was built from.
   538         -!message *** Using $(NMAKEHLPC)
   539    538   !if [$(cc32) -nologo "$(NMAKEHLPC)" -link -subsystem:console > nul]
   540    539   !endif
   541    540   
   542    541   ################################################################
   543    542   # 5. Test for compiler features
   544    543   # Visual C++ compiler options have changed over the years. Check
   545    544   # which options are supported by the compiler in use.
................................................................................
   586    585   # /O2 documentation is misleading as its stack probes are simply the
   587    586   # default page size locals allocation probes and not what is implied
   588    587   # by an explicit /Gs option.
   589    588   
   590    589   OPTIMIZATIONS = $(FPOPTS)
   591    590   
   592    591   !if [nmakehlp -c -O2]
   593         -!message *** Compiler has 'Optimizations'
   594    592   OPTIMIZING = 1
   595    593   OPTIMIZATIONS   = $(OPTIMIZATIONS) -O2
   596    594   !else
   597    595   # Legacy, really. All modern compilers support this
   598    596   !message *** Compiler does not have 'Optimizations'
   599    597   OPTIMIZING = 0
   600    598   !endif
................................................................................
  1073   1071   TCLSTUBLIB	= $(OUT_DIR)\$(TCLSTUBLIBNAME)
  1074   1072   TCL_INCLUDES    = -I"$(WINDIR)" -I"$(GENERICDIR)"
  1075   1073   
  1076   1074   !else # ! $(DOING_TCL)
  1077   1075   
  1078   1076   !if $(TCLINSTALL) # Building against an installed Tcl
  1079   1077   
         1078  +# When building extensions, we need to locate tclsh. Depending on version
         1079  +# of Tcl we are building against, this may or may not have a "t" suffix.
         1080  +# Try various possibilities in turn.
  1080   1081   TCLSH		= $(_TCLDIR)\bin\tclsh$(TCL_VERSION)$(SUFX).exe
  1081   1082   !if !exist("$(TCLSH)") && $(TCL_THREADS)
  1082   1083   TCLSH           = $(_TCLDIR)\bin\tclsh$(TCL_VERSION)t$(SUFX).exe
  1083   1084   !endif
         1085  +!if !exist("$(TCLSH)")
         1086  +TCLSH           = $(_TCLDIR)\bin\tclsh$(TCL_VERSION)$(SUFX:t=).exe
         1087  +!endif
         1088  +
  1084   1089   TCLSTUBLIB	= $(_TCLDIR)\lib\tclstub$(TCL_VERSION).lib
  1085   1090   TCLIMPLIB	= $(_TCLDIR)\lib\tcl$(TCL_VERSION)$(SUFX).lib
         1091  +# When building extensions, may be linking against Tcl that does not add
         1092  +# "t" suffix (e.g. 8.5 or 8.7). If lib not found check for that possibility.
         1093  +!if !exist("$(TCLIMPLIB)")
         1094  +TCLIMPLIB	= $(_TCLDIR)\lib\tcl$(TCL_VERSION)$(SUFX:t=).lib
         1095  +!endif
  1086   1096   TCL_LIBRARY	= $(_TCLDIR)\lib
  1087   1097   TCLREGLIB	= $(_TCLDIR)\lib\tclreg13$(SUFX:t=).lib
  1088   1098   TCLDDELIB	= $(_TCLDIR)\lib\tcldde14$(SUFX:t=).lib
  1089   1099   TCLTOOLSDIR	= \must\have\tcl\sources\to\build\this\target
  1090   1100   TCL_INCLUDES    = -I"$(_TCLDIR)\include"
  1091   1101   
  1092   1102   !else # Building against Tcl sources
  1093   1103   
  1094   1104   TCLSH		= $(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(TCL_VERSION)$(SUFX).exe
  1095   1105   !if !exist($(TCLSH)) && $(TCL_THREADS)
  1096   1106   TCLSH		= $(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(TCL_VERSION)t$(SUFX).exe
  1097   1107   !endif
         1108  +!if !exist($(TCLSH))
         1109  +TCLSH		= $(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(TCL_VERSION)$(SUFX:t=).exe
         1110  +!endif
  1098   1111   TCLSTUBLIB	= $(_TCLDIR)\win\$(BUILDDIRTOP)\tclstub$(TCL_VERSION).lib
  1099   1112   TCLIMPLIB	= $(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)$(SUFX).lib
         1113  +# When building extensions, may be linking against Tcl that does not add
         1114  +# "t" suffix (e.g. 8.5 or 8.7). If lib not found check for that possibility.
         1115  +!if !exist("$(TCLIMPLIB)")
         1116  +TCLIMPLIB	= $(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)$(SUFX:t=).lib
         1117  +!endif
  1100   1118   TCL_LIBRARY	= $(_TCLDIR)\library
  1101   1119   TCLREGLIB	= $(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg13$(SUFX:t=).lib
  1102   1120   TCLDDELIB	= $(_TCLDIR)\win\$(BUILDDIRTOP)\tcldde14$(SUFX:t=).lib
  1103   1121   TCLTOOLSDIR	= $(_TCLDIR)\tools
  1104   1122   TCL_INCLUDES	= -I"$(_TCLDIR)\generic" -I"$(_TCLDIR)\win"
  1105   1123   
  1106   1124   !endif # TCLINSTALL
................................................................................
  1136   1154   
  1137   1155   !else # effectively NEED_TK
  1138   1156   
  1139   1157   !if $(TKINSTALL) # Building against installed Tk
  1140   1158   WISH		= $(_TKDIR)\bin\$(WISHNAME)
  1141   1159   TKSTUBLIB	= $(_TKDIR)\lib\$(TKSTUBLIBNAME)
  1142   1160   TKIMPLIB	= $(_TKDIR)\lib\$(TKIMPLIBNAME)
         1161  +# When building extensions, may be linking against Tk that does not add
         1162  +# "t" suffix (e.g. 8.5 or 8.7). If lib not found check for that possibility.
         1163  +!if !exist("$(TKIMPLIB)")
         1164  +TKIMPLIBNAME	= tk$(TK_VERSION)$(SUFX:t=).lib
         1165  +TKIMPLIB	= $(_TKDIR)\lib\$(TKIMPLIBNAME)
         1166  +!endif
  1143   1167   TK_INCLUDES     = -I"$(_TKDIR)\include"
  1144   1168   !else # Building against Tk sources
  1145   1169   WISH		= $(_TKDIR)\win\$(BUILDDIRTOP)\$(WISHNAME)
  1146   1170   TKSTUBLIB	= $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKSTUBLIBNAME)
  1147   1171   TKIMPLIB	= $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKIMPLIBNAME)
         1172  +# When building extensions, may be linking against Tk that does not add
         1173  +# "t" suffix (e.g. 8.5 or 8.7). If lib not found check for that possibility.
         1174  +!if !exist("$(TKIMPLIB)")
         1175  +TKIMPLIBNAME	= tk$(TK_VERSION)$(SUFX:t=).lib
         1176  +TKIMPLIB	= $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKIMPLIBNAME)
         1177  +!endif
  1148   1178   TK_INCLUDES     = -I"$(_TKDIR)\generic" -I"$(_TKDIR)\win" -I"$(_TKDIR)\xlib"
  1149   1179   !endif # TKINSTALL
  1150   1180   tklibs = "$(TKSTUBLIB)" "$(TKIMPLIB)"
  1151   1181   
  1152   1182   !endif # $(DOING_TK)
  1153   1183   !endif # $(DOING_TK) || $(NEED_TK)
  1154   1184   
................................................................................
  1713   1743   !if !$(DOING_TK) && $(NEED_TK)
  1714   1744   !message *** Building against Tk at '$(_TKDIR)'
  1715   1745   !endif
  1716   1746   !message *** Intermediate directory will be '$(TMP_DIR)'
  1717   1747   !message *** Output directory will be '$(OUT_DIR)'
  1718   1748   !message *** Installation, if selected, will be in '$(_INSTALLDIR)'
  1719   1749   !message *** Suffix for binaries will be '$(SUFX)'
  1720         -!message *** Compiler version $(VCVER). Target machine is $(MACHINE)
  1721         -!message *** Host architecture is $(NATIVE_ARCH)
         1750  +!message *** Compiler version $(VCVER). Target $(MACHINE), host $(NATIVE_ARCH).
  1722   1751   
  1723   1752   !endif # ifdef _RULES_VC

Changes to win/targets.vc.