summaryrefslogtreecommitdiffstats
path: root/win/rules.vc
diff options
context:
space:
mode:
authordavygrvy <davygrvy@pobox.com>2002-03-27 21:15:43 (GMT)
committerdavygrvy <davygrvy@pobox.com>2002-03-27 21:15:43 (GMT)
commit64498b577d1955dd0f2b6458753a1a4ead7c94ca (patch)
tree7d275598a37046675c0e975116a22aadfde9af9e /win/rules.vc
parente3cea75b71cf20329aa594fbd4c50fd84c3939e7 (diff)
downloadtcl-64498b577d1955dd0f2b6458753a1a4ead7c94ca.zip
tcl-64498b577d1955dd0f2b6458753a1a4ead7c94ca.tar.gz
tcl-64498b577d1955dd0f2b6458753a1a4ead7c94ca.tar.bz2
* win/.cvsignore:
* win/buildall.vc.bat: * win/coffbase.txt: * win/makefile.vc: * win/nmakehlp.c (new): * win/rules.vc: First draft fix for [Bug 527941]. More changes need to done to the makehelp target to get to stop leaving build files in the tools/ directory. This does not address the syntax errors in the man files. Having the contents of tcl.hpj(.in) inside makefile.vc allows for version numbers to be replaced with macros. The new nmakehlp.c is built by rules.vc in preprocessing and removes the need to use tricky shell syntax that wasn't compatible on Win9x systems. This is a first draft repair for [Bug 533862].
Diffstat (limited to 'win/rules.vc')
-rw-r--r--win/rules.vc58
1 files changed, 28 insertions, 30 deletions
diff --git a/win/rules.vc b/win/rules.vc
index 00e4255..1c0db8e 100644
--- a/win/rules.vc
+++ b/win/rules.vc
@@ -7,10 +7,10 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# Copyright (c) 2001 Tomasoft Engineering.
+# Copyright (c) 2001-2002 David Gravereaux.
#
#------------------------------------------------------------------------------
-# RCS: @(#) $Id: rules.vc,v 1.6 2002/02/21 18:37:27 davygrvy Exp $
+# RCS: @(#) $Id: rules.vc,v 1.7 2002/03/27 21:15:43 davygrvy Exp $
#------------------------------------------------------------------------------
!ifndef _RULES_VC
@@ -31,19 +31,22 @@ MACHINE = IX86
!message ===============================================================================
-
#----------------------------------------------------------
-# Test for compiler features
+# build the helper app we need to overcome nmake's limiting
+# environment.
#----------------------------------------------------------
-### Just display the compiler and linker versions to the output
-!if [$(cc32) 2>&1 | find "(R)"]
+!if !exist(nmakehlp.exe)
+!if [$(cc32) -nologo -ML nmakehlp.c -link -subsystem:console > nul]
!endif
-!if [$(link32) 2>&1 | find "(R)"]
!endif
+#----------------------------------------------------------
+# Test for compiler features
+#----------------------------------------------------------
+
### test for optimizations
-!if [$(cc32) -Ox -nologo -c -Zs -TC -Fdtemp nul 2>&1 | find "D4002" > nul]
+!if [nmakehlp -c -Ox]
!message *** Compiler has 'Optimizations'
OPTIMIZING = 1
!else
@@ -51,16 +54,17 @@ OPTIMIZING = 1
OPTIMIZING = 0
!endif
-### test for pentium errata
!if "$(MACHINE)" == "IX86"
-!if [$(cc32) -QI0f -nologo -c -Zs -TC -Fdtemp nul 2>&1 | find "D4002" > nul]
+### test for pentium errata
+!if [nmakehlp -c -QI0f]
!message *** Compiler has 'Pentium 0x0f fix'
PENT_0F_ERRATA = 1
!else
!message *** Compiler doesn't have 'Pentium 0x0f fix'
PENT_0F_ERRATA = 0
!endif
-!if [$(link32) -nologo -opt:nowin98 2>&1 | find "LNK1117" > nul]
+### test for -align:4096, when align:512 will do.
+!if [nmakehlp -l -opt:nowin98]
!message *** Linker has 'Win98 alignment problem'
ALIGN98_HACK = 1
!else
@@ -72,9 +76,9 @@ PENT_0F_ERRATA = 0
ALIGN98_HACK = 0
!endif
-### test for Itanium errata
!if "$(MACHINE)" == "IA64"
-!if [$(cc32) -QIA64_Bx -nologo -c -Zs -TC -Fdtemp nul 2>&1 | find "D4002" > nul]
+### test for Itanium errata
+!if [nmakehlp -c -QIA64_Bx]
!message *** Compiler has 'B-stepping errata workarounds'
ITAN_B_ERRATA = 1
!else
@@ -85,16 +89,11 @@ ITAN_B_ERRATA = 0
ITAN_B_ERRATA = 0
!endif
-### Clean-up temp files after tests.
-!if [@for %d in (temp.idb temp.pdb) do @if exist %d del %d]
-!endif
-
-
#----------------------------------------------------------
# Decode the options requested.
#----------------------------------------------------------
-!if "$(OPTS)" == "" || ![echo "$(OPTS)" | find /i "none" > nul]
+!if "$(OPTS)" == "" || [nmakehlp -f "$(OPTS)" "none"]
STATIC_BUILD = 0
TCL_THREADS = 0
DEBUG = 0
@@ -103,43 +102,43 @@ MSVCRT = 0
LOIMPACT = 0
TCL_LINKWITHEXTENSIONS = 0
!else
-!if ![echo $(OPTS) | find /i "static" > nul]
+!if [nmakehlp -f $(OPTS) "static"]
!message *** Doing static
STATIC_BUILD = 1
!else
STATIC_BUILD = 0
!endif
-!if ![echo $(OPTS) | find /i "msvcrt" > nul]
+!if [nmakehlp -f $(OPTS) "msvcrt"]
!message *** Doing msvcrt
MSVCRT = 1
!else
MSVCRT = 0
!endif
-!if ![echo $(OPTS) | find /i "linkexten" > nul]
+!if [nmakehlp -f $(OPTS) "linkexten"]
!message *** Doing linkexten
TCL_LINKWITHEXTENSIONS = 1
!else
TCL_LINKWITHEXTENSIONS = 0
!endif
-!if ![echo $(OPTS) | find /i "threads" > nul]
+!if [nmakehlp -f $(OPTS) "threads"]
!message *** Doing threads
TCL_THREADS = 1
!else
TCL_THREADS = 0
!endif
-!if ![echo $(OPTS) | find /i "symbols" > nul]
+!if [nmakehlp -f $(OPTS) "symbols"]
!message *** Doing symbols
DEBUG = 1
!else
DEBUG = 0
!endif
-!if ![echo $(OPTS) | find /i "profile" > nul]
+!if [nmakehlp -f $(OPTS) "profile"]
!message *** Doing profile
PROFILE = 1
!else
PROFILE = 0
!endif
-!if ![echo $(OPTS) | find /i "loimpact" > nul]
+!if [nmakehlp -f $(OPTS) "loimpact"]
!message *** Doing loimpact
LOIMPACT = 1
!else
@@ -213,17 +212,17 @@ OUT_DIR = $(TMP_DIR)
# Decode the statistics requested.
#----------------------------------------------------------
-!if "$(STATS)" == "" || ![echo "$(STATS)" | find /i "none" > nul]
+!if "$(STATS)" == "" || [nmakehlp -f "$(STATS)" "none"]
TCL_MEM_DEBUG = 0
TCL_COMPILE_DEBUG = 0
!else
-!if ![echo $(STATS) | find /i "memdbg" > nul]
+!if [nmakehlp -f $(STATS) "memdbg"]
!message *** Doing memdbg
TCL_MEM_DEBUG = 1
!else
TCL_MEM_DEBUG = 0
!endif
-!if ![echo $(STATS) | find /i "compdbg" > nul]
+!if [nmakehlp -f $(STATS) "compdbg"]
!message *** Doing compdbg
TCL_COMPILE_DEBUG = 1
!else
@@ -259,6 +258,5 @@ OPTDEFINES = $(OPTDEFINES) -DSTATIC_BUILD
!message *** Output directory will be '$(OUT_DIR)'
!message *** Suffix for binaries will be '$(SUFX)'
!message *** Optional defines are '$(OPTDEFINES)'
-!message
!endif