# Visual C++ 4.0 makefile
|
# Visual C++ 4.0 makefile
|
#
|
#
|
# Copyright (c) 1993-1996 Lucent Technologies
|
# Copyright (c) 1993-1996 Lucent Technologies
|
#
|
#
|
# See the file "license.terms" for information on usage and redistribution
|
# See the file "license.terms" for information on usage and redistribution
|
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
|
#
|
#
|
# Project directories
|
# Project directories
|
#
|
#
|
# ROOT = top of source tree
|
# ROOT = top of source tree
|
#
|
#
|
# TMPDIR = location where .obj files should be stored during build
|
# TMPDIR = location where .obj files should be stored during build
|
#
|
#
|
|
|
!include "..\..\Makefile.vc"
|
!include "..\..\Makefile.vc"
|
|
|
ROOT = ..
|
ROOT = ..
|
TMPDIR = .
|
TMPDIR = .
|
TARGET_LIB_ITCL = $(TARGET_LIB)\Itcl2.2
|
TARGET_LIB_ITCL = $(TARGET_LIB)\Itcl2.2
|
TARGET_DOC_ITCL = $(TARGET_DOC)\Itcl
|
TARGET_DOC_ITCL = $(TARGET_DOC)\Itcl
|
|
|
# Comment the following line to compile with symbols
|
# Comment the following line to compile with symbols
|
NODEBUG=1
|
NODEBUG=1
|
|
|
# uncomment the following two lines to compile with TCL_MEM_DEBUG
|
# uncomment the following two lines to compile with TCL_MEM_DEBUG
|
#DEBUGDEFINES = -DTCL_MEM_DEBUG
|
#DEBUGDEFINES = -DTCL_MEM_DEBUG
|
|
|
WINDIR = $(ROOT)\win
|
WINDIR = $(ROOT)\win
|
GENERICDIR = $(ROOT)\generic
|
GENERICDIR = $(ROOT)\generic
|
|
|
TCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) -I$(TCLDIR)\generic
|
TCL_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) -I$(TCLDIR)\generic
|
|
|
TCL_DEFINES = -D__WIN32__ -DUSE_TCLALLOC=0 $(DEBUGDEFINES) -Dtry=__try \
|
TCL_DEFINES = -D__WIN32__ -DUSE_TCLALLOC=0 $(DEBUGDEFINES) -Dtry=__try \
|
-Dexcept=__except
|
-Dexcept=__except
|
|
|
ITCLSHOBJS = \
|
ITCLSHOBJS = \
|
$(TMPDIR)\tclAppInit.obj
|
$(TMPDIR)\tclAppInit.obj
|
|
|
ITCLOBJS = \
|
ITCLOBJS = \
|
$(TMPDIR)\itcl_bicmds.obj \
|
$(TMPDIR)\itcl_bicmds.obj \
|
$(TMPDIR)\itcl_class.obj \
|
$(TMPDIR)\itcl_class.obj \
|
$(TMPDIR)\itcl_cmds.obj \
|
$(TMPDIR)\itcl_cmds.obj \
|
$(TMPDIR)\itcl_linkage.obj \
|
$(TMPDIR)\itcl_linkage.obj \
|
$(TMPDIR)\itcl_methods.obj \
|
$(TMPDIR)\itcl_methods.obj \
|
$(TMPDIR)\itcl_objects.obj \
|
$(TMPDIR)\itcl_objects.obj \
|
$(TMPDIR)\itcl_obsolete.obj \
|
$(TMPDIR)\itcl_obsolete.obj \
|
$(TMPDIR)\itcl_parse.obj \
|
$(TMPDIR)\itcl_parse.obj \
|
$(TMPDIR)\itcl_util.obj \
|
$(TMPDIR)\itcl_util.obj \
|
$(TMPDIR)\dllEntryPoint.obj
|
$(TMPDIR)\dllEntryPoint.obj
|
|
|
DUMPEXTS = $(TCLLIBDIR)\dumpexts.exe
|
DUMPEXTS = $(TCLLIBDIR)\dumpexts.exe
|
ITCLSH = itclsh.exe
|
ITCLSH = itclsh.exe
|
ITCLTEST = itcltest.exe
|
ITCLTEST = itcltest.exe
|
|
|
CPU = i386
|
CPU = i386
|
INCLUDE = $(TOOLS32)\include
|
INCLUDE = $(TOOLS32)\include
|
!include
|
!include
|
|
|
TCL_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) $(TCL_INCLUDES) $(TCL_DEFINES)
|
TCL_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) $(TCL_INCLUDES) $(TCL_DEFINES)
|
CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE
|
CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE
|
DOS_CFLAGS = $(cdebug) $(cflags) $(include16) -AL
|
DOS_CFLAGS = $(cdebug) $(cflags) $(include16) -AL
|
DLL16_CFLAGS = $(cdebug) $(cflags) $(include16) -ALw
|
DLL16_CFLAGS = $(cdebug) $(cflags) $(include16) -ALw
|
|
|
#
|
#
|
# Targets
|
# Targets
|
#
|
#
|
|
|
release: $(ITCLDLL) $(ITCLSH)
|
release: $(ITCLDLL) $(ITCLSH)
|
all: $(ITCLDLL) $(ITCLSH)
|
all: $(ITCLDLL) $(ITCLSH)
|
test: $(ITCLSH)
|
test: $(ITCLSH)
|
$(CP) $(TCLLIBDIR)\*.dll
|
$(CP) $(TCLLIBDIR)\*.dll
|
$(ITCLSH) <<
|
$(ITCLSH) <<
|
cd ../tests
|
cd ../tests
|
source all
|
source all
|
<<
|
<<
|
|
|
install: all
|
install: all
|
$(MKDIR) "$(TARGET_ROOT)"
|
$(MKDIR) "$(TARGET_ROOT)"
|
$(MKDIR) "$(TARGET_BIN)"
|
$(MKDIR) "$(TARGET_BIN)"
|
$(MKDIR) "$(TARGET_LIB_ROOT)"
|
$(MKDIR) "$(TARGET_LIB_ROOT)"
|
$(MKDIR) "$(TARGET_LIB)"
|
$(MKDIR) "$(TARGET_LIB)"
|
$(MKDIR) "$(TARGET_LIB_ITCL)"
|
$(MKDIR) "$(TARGET_LIB_ITCL)"
|
$(MKDIR) "$(TARGET_INCLUDE_ROOT)"
|
$(MKDIR) "$(TARGET_INCLUDE_ROOT)"
|
$(MKDIR) "$(TARGET_INCLUDE)"
|
$(MKDIR) "$(TARGET_INCLUDE)"
|
$(MKDIR) "$(TARGET_DOC)"
|
$(MKDIR) "$(TARGET_DOC)"
|
$(MKDIR) "$(TARGET_DOC_ITCL)"
|
$(MKDIR) "$(TARGET_DOC_ITCL)"
|
$(CP) $(TMPDIR)\$(ITCLSH) "$(TARGET_BIN)"
|
$(CP) $(TMPDIR)\$(ITCLSH) "$(TARGET_BIN)"
|
$(CP) $(TMPDIR)\$(ITCLDLL) "$(TARGET_BIN)"
|
$(CP) $(TMPDIR)\$(ITCLDLL) "$(TARGET_BIN)"
|
$(CP) $(ROOT)\generic\itcl.h "$(TARGET_INCLUDE)"
|
$(CP) $(ROOT)\generic\itcl.h "$(TARGET_INCLUDE)"
|
$(CP) $(ROOT)\library\*.* "$(TARGET_LIB_ITCL)"
|
$(CP) $(ROOT)\library\*.* "$(TARGET_LIB_ITCL)"
|
$(CP) $(ROOT)\win\*.tcl "$(TARGET_LIB_ITCL)"
|
$(CP) $(ROOT)\win\*.tcl "$(TARGET_LIB_ITCL)"
|
$(CP) $(ROOT)\..\html\Itcl\*.* "$(TARGET_DOC_ITCL)"
|
$(CP) $(ROOT)\..\html\Itcl\*.* "$(TARGET_DOC_ITCL)"
|
|
|
$(ITCLDLL): $(ITCLOBJS) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclvc.def $(TMPDIR)\itcl.res
|
$(ITCLDLL): $(ITCLOBJS) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclvc.def $(TMPDIR)\itcl.res
|
set LIB=$(TOOLS32)\lib
|
set LIB=$(TOOLS32)\lib
|
$(link32) $(linkdebug) $(dlllflags) -def:$(TMPDIR)\itclvc.def \
|
$(link32) $(linkdebug) $(dlllflags) -def:$(TMPDIR)\itclvc.def \
|
-out:$@ $(TMPDIR)\itcl.res $(guilibsdll) @<<
|
-out:$@ $(TMPDIR)\itcl.res $(guilibsdll) @<<
|
$(ITCLOBJS) $(TCLLIBDIR)\$(TCLLIB)
|
$(ITCLOBJS) $(TCLLIBDIR)\$(TCLLIB)
|
<<
|
<<
|
|
|
$(ITCLSH): $(ITCLSHOBJS) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclsh.res
|
$(ITCLSH): $(ITCLSHOBJS) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclsh.res
|
set LIB=$(TOOLS32)\lib
|
set LIB=$(TOOLS32)\lib
|
$(link32) $(linkdebug) $(conlflags) $(TMPDIR)\itclsh.res \
|
$(link32) $(linkdebug) $(conlflags) $(TMPDIR)\itclsh.res \
|
-out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(ITCLSHOBJS)
|
-out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(ITCLSHOBJS)
|
|
|
$(ITCLTEST): $(ITCLTESTOBJS) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclsh.res
|
$(ITCLTEST): $(ITCLTESTOBJS) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(TMPDIR)\itclsh.res
|
set LIB=$(TOOLS32)\lib
|
set LIB=$(TOOLS32)\lib
|
$(link32) $(linkdebug) $(conlflags) $(TMPDIR)\itclsh.res \
|
$(link32) $(linkdebug) $(conlflags) $(TMPDIR)\itclsh.res \
|
-out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(ITCLTESTOBJS)
|
-out:$@ $(conlibsdll) $(ITCLLIB) $(TCLLIBDIR)\$(TCLLIB) $(ITCLTESTOBJS)
|
|
|
#
|
#
|
# Special case object file targets
|
# Special case object file targets
|
#
|
#
|
|
|
$(TMPDIR)\itclvc.def: $(DUMPEXTS) $(ITCLOBJS)
|
$(TMPDIR)\itclvc.def: $(DUMPEXTS) $(ITCLOBJS)
|
$(DUMPEXTS) -o $@ $(ITCLDLL) @<<
|
$(DUMPEXTS) -o $@ $(ITCLDLL) @<<
|
$(ITCLOBJS)
|
$(ITCLOBJS)
|
<<
|
<<
|
|
|
$(TMPDIR)\testMain.obj: $(WINDIR)\tclAppInit.c
|
$(TMPDIR)\testMain.obj: $(WINDIR)\tclAppInit.c
|
$(cc32) $(TCL_CFLAGS) -DTCL_TEST -Fo$(TMPDIR)\testMain.obj $?
|
$(cc32) $(TCL_CFLAGS) -DTCL_TEST -Fo$(TMPDIR)\testMain.obj $?
|
|
|
#
|
#
|
# Implicit rules
|
# Implicit rules
|
#
|
#
|
|
|
{$(WINDIR)}.c{$(TMPDIR)}.obj:
|
{$(WINDIR)}.c{$(TMPDIR)}.obj:
|
$(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
|
$(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
|
|
|
{$(GENERICDIR)}.c{$(TMPDIR)}.obj:
|
{$(GENERICDIR)}.c{$(TMPDIR)}.obj:
|
$(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
|
$(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
|
|
|
{$(ROOT)\compat}.c{$(TMPDIR)}.obj:
|
{$(ROOT)\compat}.c{$(TMPDIR)}.obj:
|
$(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
|
$(cc32) $(TCL_CFLAGS) -Fo$(TMPDIR)\ $<
|
|
|
{$(WINDIR)}.rc{$(TMPDIR)}.res:
|
{$(WINDIR)}.rc{$(TMPDIR)}.res:
|
$(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -i $(TCLDIR)\generic $(TCL_DEFINES) $<
|
$(rc32) -fo $@ -r -i $(GENERICDIR) -i $(WINDIR) -i $(TCLDIR)\generic $(TCL_DEFINES) $<
|
|
|
clean:
|
clean:
|
-@$(RM) *.exe
|
-@$(RM) *.exe
|
-@$(RM) *.lib
|
-@$(RM) *.lib
|
-@$(RM) *.dll
|
-@$(RM) *.dll
|
-@$(RM) *.res
|
-@$(RM) *.res
|
-@$(RM) itclvc.def
|
-@$(RM) itclvc.def
|
-@$(RM) $(TMPDIR)\*.obj
|
-@$(RM) $(TMPDIR)\*.obj
|
-@$(RM) *.exp
|
-@$(RM) *.exp
|
|
|