Diff
Not logged in

Differences From Artifact [fd3bcb53cd]:

To Artifact [4568830e6f]:


8
9
10
11
12
13
14
15

16
17
18
19
20
21
22
8
9
10
11
12
13
14

15
16
17
18
19
20
21
22







-
+







# 
# Copyright (c) 1995-1996 Sun Microsystems, Inc.
# Copyright (c) 1998-2000 Ajuba Solutions.
# Copyright (c) 2001-2005 ActiveState Corporation.
# Copyright (c) 2001-2004 David Gravereaux.
#
#------------------------------------------------------------------------------
# RCS: @(#) $Id: makefile.vc,v 1.107.2.24 2007/09/17 15:10:56 dgp Exp $
# RCS: @(#) $Id: makefile.vc,v 1.107.2.25 2007/10/15 18:32:38 dgp Exp $
#------------------------------------------------------------------------------

# Check to see we are configured to build with MSVC (MSDEVDIR or MSVCDIR)
# or with the MS Platform SDK (MSSDK). Visual Studio .NET 2003 and 2005 define
# VCINSTALLDIR instead.
!if !defined(MSDEVDIR) && !defined(MSVCDIR) && !defined(MSSDK) && !defined(VCINSTALLDIR)
MSG = ^
99
100
101
102
103
104
105
106

107
108
109
110
111
112

113
114
115
116
117
118
119
99
100
101
102
103
104
105

106
107
108
109
110
111
112
113
114
115
116
117
118
119
120







-
+






+







#		to the core.  The default is for none.  Any combination of the
#		above may be used (comma separated).  'none' will over-ride
#		everything to nothing.
#
#		memdbg   = Enables the debugging memory allocator.
#		compdbg  = Enables byte compilation logging.
#
#	CHECKS=nodep,fullwarn,none
#	CHECKS=nodep,fullwarn,64bit,none
#		Sets special macros for checking compatability.
#
#		nodep	 = Turns off compatability macros to ensure the core
#			    isn't being built with deprecated functions. 
#		fullwarn = Builds with full compiler and link warnings enabled.
#			    Very verbose.
#		64bit    = Enable 64bit portability warnings (if available)
#
#	MACHINE=(IX86|IA64|AMD64|ALPHA)
#		Set the machine type used for the compiler, linker, and
#		resource compiler.  This hook is needed to tell the tools
#		when alternate platforms are requested.  IX86 is the default
#		when not specified.
#
171
172
173
174
175
176
177
178

179
180
181

182
183
184
185
186
187
188
189
190
191

192
193
194
195
196
197
198
172
173
174
175
176
177
178

179



180










181
182
183
184
185
186
187
188







-
+
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+







Please `cd` to its location first.
!error $(MSG)
!endif

PROJECT	= tcl
!include "rules.vc"

STUBPREFIX = $(PROJECT)stub
STUBPREFIX      = $(PROJECT)stub

!if [nmakehlp -g ../generic/tcl.h TCL_VERSION] == 85
DOTVERSION	= 8.5
DOTVERSION      = $(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)
!elseif [nmakehlp -g ../generic/tcl.h TCL_VERSION] == 86
DOTVERSION	= 8.6
!elseif [nmakehlp -g ../generic/tcl.h TCL_VERSION] == 90
DOTVERSION	= 9.0
!elseif [nmakehlp -g ../generic/tcl.h TCL_VERSION] == 0
MSG =^
Cannot get version string from ../generic/tcl.h
!error $(MSG)
!endif
VERSION = $(DOTVERSION:.=)
VERSION         = $(TCL_MAJOR_VERSION)$(TCL_MINOR_VERSION)

DDEDOTVERSION = 1.3
DDEVERSION = $(DDEDOTVERSION:.=)

REGDOTVERSION = 1.2
REGVERSION = $(REGDOTVERSION:.=)

248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
238
239
240
241
242
243
244


245
246
247
248
249
250
251







-
-







	$(TMP_DIR)\testMain.obj

TCLOBJS = \
	$(TMP_DIR)\regcomp.obj \
	$(TMP_DIR)\regerror.obj \
	$(TMP_DIR)\regexec.obj \
	$(TMP_DIR)\regfree.obj \
	$(TMP_DIR)\strtoll.obj \
	$(TMP_DIR)\strtoull.obj \
	$(TMP_DIR)\tclAlloc.obj \
	$(TMP_DIR)\tclAsync.obj \
	$(TMP_DIR)\tclBasic.obj \
	$(TMP_DIR)\tclBinary.obj \
	$(TMP_DIR)\tclCkalloc.obj \
	$(TMP_DIR)\tclClock.obj \
	$(TMP_DIR)\tclCmdAH.obj \
426
427
428
429
430
431
432
433

434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456

457

458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
414
415
416
417
418
419
420

421
422
423






424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439

440


441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458




459
460
461
462
463
464
465







-
+


-
-
-
-
-
-















+
-
+
-
-


















-
-
-
-







### Warnings are too many, can't support warnings into errors.
cdebug	= -Zi -Od $(DEBUGFLAGS)
!else
cdebug	= -Zi -WX $(DEBUGFLAGS)
!endif

### Declarations common to all compiler options
cwarn = -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE
cwarn = $(WARNINGS) -D _CRT_SECURE_NO_DEPRECATE -D _CRT_NONSTDC_NO_DEPRECATE
cflags = -nologo -c $(COMPILERFLAGS) $(cwarn) -Fp$(TMP_DIR)^\

!if $(FULLWARNINGS)
cflags = $(cflags) -W4
!else
cflags = $(cflags) -W3
!endif

!if $(MSVCRT)
!if $(DEBUG) && !$(UNCHECKED)
crt = -MDd
!else
crt = -MD
!endif
!else
!if $(DEBUG) && !$(UNCHECKED)
crt = -MTd
!else
crt = -MT
!endif
!endif

TCL_INCLUDES	= -I"$(WINDIR)" -I"$(GENERICDIR)" -I"$(TOMMATHDIR)"
TCL_DEFINES	= -DTCL_PIPE_DLL=\"$(TCLPIPEDLLNAME)\" -DTCL_TOMMATH -DMP_PREC=4 -Dinline=__inline
BASE_CFLAGS	= $(cflags) $(cdebug) $(crt) $(TCL_INCLUDES) \
BASE_CFLAGS	= $(cflags) $(cdebug) $(crt) $(TCL_INCLUDES) $(TCL_DEFINES)
			-DTCL_PIPE_DLL=\"$(TCLPIPEDLLNAME)\" -DTCL_TOMMATH \
			-DMP_PREC=4 -Dinline=__inline
CON_CFLAGS	= $(cflags) $(cdebug) $(crt) -DCONSOLE
TCL_CFLAGS	= $(BASE_CFLAGS) $(OPTDEFINES)
STUB_CFLAGS     = $(cflags) $(cdebug) $(OPTDEFINES)


#---------------------------------------------------------------------
# Link flags
#---------------------------------------------------------------------

!if $(DEBUG)
ldebug	= -debug:full -debugtype:cv
!else
ldebug	= -release -opt:ref -opt:icf,3
!endif

### Declarations common to all linker options
lflags	= -nologo -machine:$(MACHINE) $(LINKERFLAGS) $(ldebug)

!if $(FULLWARNINGS)
lflags = $(lflags) -warn:3
!endif

!if $(PROFILE)
lflags	= $(lflags) -profile
!endif

!if $(ALIGN98_HACK) && !$(STATIC_BUILD)
### Align sections for PE size savings.
lflags	= $(lflags) -opt:nowin98
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
622
623
624
625
626
627
628

















629
630
631
632
633
634
635







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-







	@echo Build tclsh first!
!else
	$(TCLSH) "$(TOOLSDIR:\=/)/fix_tommath_h.tcl" \
		"$(TOMMATHDIR:\=/)/tommath.h" \
		> "$(GENERICDIR)\tclTomMath.h"
!endif

#---------------------------------------------------------------------
# Generate the makefile depedancies.
#---------------------------------------------------------------------

depend:
!if !exist($(TCLSH))
	@echo Build tclsh first!
!else
	$(TCLSH) $(TOOLSDIR:\=/)/mkdepend.tcl -vc32 -out:"$(OUT_DIR)\depend.mk" \
		-passthru:"-DBUILD_tcl $(TCL_INCLUDES:"="")" $(GENERICDIR) \
		$(COMPATDIR) $(WINDIR) @<<
$(TCLOBJS)
<<
!endif

#" for emacs font-locking.

#---------------------------------------------------------------------
# Build the windows help file.
#---------------------------------------------------------------------

TCLHLPBASE	= $(PROJECT)$(VERSION)
HELPFILE	= $(OUT_DIR)\$(TCLHLPBASE).hlp
HELPCNT		= $(OUT_DIR)\$(TCLHLPBASE).cnt
792
793
794
795
796
797
798

799
800
801
802
803

804
805
806
807
808
809
810
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772







+





+







@TCL_SHARED_BUILD@   0
!else
@TCL_SHARED_BUILD@   1
!endif
<<


#---------------------------------------------------------------------
# The following target generates the file generic/tclDate.c 
# from the yacc grammar found in generic/tclGetDate.y.  This is
# only run by hand as yacc is not available in all environments.
# The name of the .c file is different than the name of the .y file
# so that make doesn't try to automatically regenerate the .c file.
#---------------------------------------------------------------------

gendate:
	bison --output-file=$(GENERICDIR)/tclDate.c \
	--name-prefix=TclDate \
	$(GENERICDIR)/tclGetDate.y

#---------------------------------------------------------------------
860
861
862
863
864
865
866
867

868
869
870
871
872






873













874
875

876
877
878
879
880
881
882
822
823
824
825
826
827
828

829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855

856
857
858
859
860
861
862
863







-
+





+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+

-
+







	$(cc32) $(TCL_CFLAGS) -DTCL_THREADS=1 -DSTATIC_BUILD -Fo$@ $?
!else
	$(cc32) $(TCL_CFLAGS) -DTCL_THREADS=1 -DUSE_TCL_STUBS -Fo$@ $?
!endif


### The following objects are part of the stub library and should not
### be built as DLL objects.  -Zl is used to avoid a dependancy on any
### be built as DLL objects.  -Zl is used to avoid a dependency on any
### specific C run-time.

$(TMP_DIR)\tclStubLib.obj: $(GENERICDIR)\tclStubLib.c
	$(cc32) $(STUB_CFLAGS) -Zl -DSTATIC_BUILD $(TCL_INCLUDES) -Fo$@ $?

#---------------------------------------------------------------------
# Generate the source dependencies.  Having dependency rules will
# improve incrimental build accuracy without having to resort to a
# full rebuild just because some non-global header file like tclCompile.h
# was changed.  These rules aren't needed when building from scratch.
#---------------------------------------------------------------------

depend:
!if !exist($(TCLSH))
	@echo Build tclsh first!
!else
	$(TCLSH) $(TOOLSDIR:\=/)/mkdepend.tcl -vc32 -out:"$(OUT_DIR)\depend.mk" \
		-passthru:"-DBUILD_tcl $(TCL_INCLUDES:"=""")" $(GENERICDIR),$$(GENERICDIR) \
		$(COMPATDIR),$$(COMPATDIR) $(TOMMATHDIR),$$(TOMMATHDIR) $(WINDIR),$$(WINDIR) @<<
$(TCLOBJS)
<<
!endif

#" emacs fix

#---------------------------------------------------------------------
# Dedependency rules
# Dependency rules
#---------------------------------------------------------------------

$(GENERICDIR)\regcomp.c: \
	$(GENERICDIR)\regguts.h \
	$(GENERICDIR)\regc_lex.c \
	$(GENERICDIR)\regc_color.c \
	$(GENERICDIR)\regc_nfa.c \
1035
1036
1037
1038
1039
1040
1041


1042
1043
1044
1045
1046
1047
1048
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031







+
+







	@$(CPY) "$(TCLREGLIB)" "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"
	@$(CPY) "$(ROOT)\library\reg\pkgIndex.tcl" \
	    "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"
!endif
	@echo Installing encodings
	@$(CPY) "$(ROOT)\library\encoding\*.enc" \
		"$(SCRIPT_INSTALL_DIR)\encoding\"

#" emacs fix

install-tzdata:
	@echo Installing time zone data
	@set TCL_LIBRARY=$(ROOT)/library
	@$(TCLSH) "$(ROOT)/tools/installData.tcl" \
	    "$(ROOT)/library/tzdata" "$(SCRIPT_INSTALL_DIR)/tzdata"