1# 2# Makefile for Borland C++ 5.5 (or C++ Builder 5), adapted from the makefile 3# for Visual C++ that came with tk 8.3.3 4# 5# Some "not so obvious" details in this makefile are preceded by a comment 6# "maintenance hint", which tries to explain what's going on. Better to 7# leave those in place. 8# Helmut Giese, July 2002 9# 10# See the file "license.terms" for information on usage and redistribution 11# of this file, and for a DISCLAIMER OF ALL WARRANTIES. 12# 13# Copyright (c) 1995-1997 Sun Microsystems, Inc. 14# Copyright (c) 1998-2000 Ajuba Solutions. 15# 16# RCS: @(#) $Id: makefile.bc,v 1.11 2002/07/16 05:01:23 davygrvy Exp $ 17 18# Does not depend on the presence of any environment variables in 19# order to compile tcl; all needed information is derived from 20# location of the compiler directories. 21 22# 23# Project directories 24# 25# ROOT = top of source tree 26# 27# TMPDIR = location where .obj files should be stored during build 28# 29# TOOLS32 = location of Borland development tools. 30# 31# TCLDIR = location of top of Tcl source hierarchy 32# 33 34ROOT = .. 35TCLDIR = ..\..\tcl8.4 36INSTALLDIR = D:\tmp\tcl 37 38# If you have C++ Builder 5 or the free Borland C++ 5.5 compiler 39# adapt the following paths as appropriate for your system 40TOOLS32 = d:\cbld5 41TOOLS32_rc = d:\cbld5 42#TOOLS32 = c:\bc55 43#TOOLS32_rc = c:\bc55 44 45cc32 = "$(TOOLS32)\bin\bcc32.exe" 46link32 = "$(TOOLS32)\bin\ilink32.exe" 47lib32 = "$(TOOLS32)\bin\tlib.exe" 48rc32 = "$(TOOLS32_rc)\bin\brcc32.exe" 49include32 = -I"$(TOOLS32)\include;$(TOOLS32)\include\mfc" 50libpath32 = -L"$(TOOLS32)\lib" 51 52# Uncomment the following line to compile with thread support 53#THREADDEFINES = -DTCL_THREADS=1 54 55# Allow definition of NDEBUG via command line 56# Set NODEBUG to 0 to compile with symbols 57!if !defined(NODEBUG) 58NODEBUG = 1 59!endif 60 61# uncomment the following two lines to compile with TCL_MEM_DEBUG 62#DEBUGDEFINES =-DTCL_MEM_DEBUG 63 64###################################################################### 65# Do not modify below this line 66###################################################################### 67 68TCLNAMEPREFIX = tcl 69TKNAMEPREFIX = tk 70WISHNAMEPREFIX = wish 71VERSION = 84 72DOTVERSION = 8.4 73 74TCLSTUBPREFIX = $(TCLNAMEPREFIX)stub 75TKSTUBPREFIX = $(TKNAMEPREFIX)stub 76 77 78BINROOT = . 79!IF "$(NODEBUG)" == "1" 80TMPDIRNAME = Release 81DBGX = 82!ELSE 83TMPDIRNAME = Debug 84DBGX = 85#DBGX = d 86!ENDIF 87TMPDIR = $(BINROOT)\$(TMPDIRNAME) 88OUTDIRNAME = $(TMPDIRNAME) 89OUTDIR = $(TMPDIR) 90 91TCLLIB = $(TCLNAMEPREFIX)$(VERSION)$(DBGX).lib 92TCLPLUGINLIB = $(TCLNAMEPREFIX)$(VERSION)p.lib 93TCLSTUBLIB = $(TCLSTUBPREFIX)$(VERSION)$(DBGX).lib 94TKDLLNAME = $(TKNAMEPREFIX)$(VERSION)$(DBGX).dll 95TKDLL = $(OUTDIR)\$(TKDLLNAME) 96TKLIB = $(OUTDIR)\$(TKNAMEPREFIX)$(VERSION)$(DBGX).lib 97TKSTUBLIBNAME = $(TKSTUBPREFIX)$(VERSION)$(DBGX).lib 98TKSTUBLIB = $(OUTDIR)\$(TKSTUBLIBNAME) 99TKPLUGINDLLNAME = $(TKNAMEPREFIX)$(VERSION)p$(DBG).dll 100TKPLUGINDLL = $(OUTDIR)\$(TKPLUGINDLLNAME) 101TKPLUGINLIB = $(OUTDIR)\$(TKNAMEPREFIX)$(VERSION)p$(DBGX).lib 102 103WISH = $(OUTDIR)\$(WISHNAMEPREFIX)$(VERSION)$(DBGX).exe 104WISHC = $(OUTDIR)\$(WISHNAMEPREFIX)c$(VERSION)$(DBGX).exe 105WISHP = $(OUTDIR)\$(WISHNAMEPREFIX)p$(VERSION)$(DBGX).exe 106TKTEST = $(OUTDIR)\$(TKNAMEPREFIX)test.exe 107CAT32 = $(TMPDIR)\cat32.exe 108 109BIN_INSTALL_DIR = $(INSTALLDIR)\bin 110INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include 111LIB_INSTALL_DIR = $(INSTALLDIR)\lib 112SCRIPT_INSTALL_DIR = $(LIB_INSTALL_DIR)\tk$(DOTVERSION) 113 114WISHOBJS = \ 115 $(TMPDIR)\winMain.obj 116 117TKTESTOBJS = \ 118 $(TMPDIR)\tkTest.obj \ 119 $(TMPDIR)\tkSquare.obj \ 120 $(TMPDIR)\testMain.obj \ 121 $(TMPDIR)\tkWinTest.obj \ 122 $(TCLLIBDIR)\tclThreadTest.obj 123 124XLIBOBJS = \ 125 $(TMPDIR)\xcolors.obj \ 126 $(TMPDIR)\xdraw.obj \ 127 $(TMPDIR)\xgc.obj \ 128 $(TMPDIR)\ximage.obj \ 129 $(TMPDIR)\xutil.obj 130 131TKOBJS = \ 132 $(TMPDIR)\tkConsole.obj \ 133 $(TMPDIR)\tkUnixMenubu.obj \ 134 $(TMPDIR)\tkUnixScale.obj \ 135 $(XLIBOBJS) \ 136 $(TMPDIR)\tkWin3d.obj \ 137 $(TMPDIR)\tkWin32Dll.obj \ 138 $(TMPDIR)\tkWinButton.obj \ 139 $(TMPDIR)\tkWinClipboard.obj \ 140 $(TMPDIR)\tkWinColor.obj \ 141 $(TMPDIR)\tkWinConfig.obj \ 142 $(TMPDIR)\tkWinCursor.obj \ 143 $(TMPDIR)\tkWinDialog.obj \ 144 $(TMPDIR)\tkWinDraw.obj \ 145 $(TMPDIR)\tkWinEmbed.obj \ 146 $(TMPDIR)\tkWinFont.obj \ 147 $(TMPDIR)\tkWinImage.obj \ 148 $(TMPDIR)\tkWinInit.obj \ 149 $(TMPDIR)\tkWinKey.obj \ 150 $(TMPDIR)\tkWinMenu.obj \ 151 $(TMPDIR)\tkWinPixmap.obj \ 152 $(TMPDIR)\tkWinPointer.obj \ 153 $(TMPDIR)\tkWinRegion.obj \ 154 $(TMPDIR)\tkWinScrlbr.obj \ 155 $(TMPDIR)\tkWinSend.obj \ 156 $(TMPDIR)\tkWinWindow.obj \ 157 $(TMPDIR)\tkWinWm.obj \ 158 $(TMPDIR)\tkWinX.obj \ 159 $(TMPDIR)\stubs.obj \ 160 $(TMPDIR)\tk3d.obj \ 161 $(TMPDIR)\tkArgv.obj \ 162 $(TMPDIR)\tkAtom.obj \ 163 $(TMPDIR)\tkBind.obj \ 164 $(TMPDIR)\tkBitmap.obj \ 165 $(TMPDIR)\tkButton.obj \ 166 $(TMPDIR)\tkCanvArc.obj \ 167 $(TMPDIR)\tkCanvBmap.obj \ 168 $(TMPDIR)\tkCanvImg.obj \ 169 $(TMPDIR)\tkCanvLine.obj \ 170 $(TMPDIR)\tkCanvPoly.obj \ 171 $(TMPDIR)\tkCanvPs.obj \ 172 $(TMPDIR)\tkCanvText.obj \ 173 $(TMPDIR)\tkCanvUtil.obj \ 174 $(TMPDIR)\tkCanvWind.obj \ 175 $(TMPDIR)\tkCanvas.obj \ 176 $(TMPDIR)\tkClipboard.obj \ 177 $(TMPDIR)\tkCmds.obj \ 178 $(TMPDIR)\tkColor.obj \ 179 $(TMPDIR)\tkConfig.obj \ 180 $(TMPDIR)\tkCursor.obj \ 181 $(TMPDIR)\tkEntry.obj \ 182 $(TMPDIR)\tkError.obj \ 183 $(TMPDIR)\tkEvent.obj \ 184 $(TMPDIR)\tkFileFilter.obj \ 185 $(TMPDIR)\tkFocus.obj \ 186 $(TMPDIR)\tkFont.obj \ 187 $(TMPDIR)\tkFrame.obj \ 188 $(TMPDIR)\tkGC.obj \ 189 $(TMPDIR)\tkGeometry.obj \ 190 $(TMPDIR)\tkGet.obj \ 191 $(TMPDIR)\tkGrab.obj \ 192 $(TMPDIR)\tkGrid.obj \ 193 $(TMPDIR)\tkImage.obj \ 194 $(TMPDIR)\tkImgBmap.obj \ 195 $(TMPDIR)\tkImgGIF.obj \ 196 $(TMPDIR)\tkImgPPM.obj \ 197 $(TMPDIR)\tkImgPhoto.obj \ 198 $(TMPDIR)\tkImgUtil.obj \ 199 $(TMPDIR)\tkListbox.obj \ 200 $(TMPDIR)\tkMacWinMenu.obj \ 201 $(TMPDIR)\tkMain.obj \ 202 $(TMPDIR)\tkMenu.obj \ 203 $(TMPDIR)\tkMenubutton.obj \ 204 $(TMPDIR)\tkMenuDraw.obj \ 205 $(TMPDIR)\tkMessage.obj \ 206 $(TMP_DIR)\tkPanedWindow.obj \ 207 $(TMPDIR)\tkObj.obj \ 208 $(TMPDIR)\tkOldConfig.obj \ 209 $(TMPDIR)\tkOption.obj \ 210 $(TMPDIR)\tkPack.obj \ 211 $(TMPDIR)\tkPlace.obj \ 212 $(TMPDIR)\tkPointer.obj \ 213 $(TMPDIR)\tkRectOval.obj \ 214 $(TMPDIR)\tkScale.obj \ 215 $(TMPDIR)\tkScrollbar.obj \ 216 $(TMPDIR)\tkSelect.obj \ 217 $(TMPDIR)\tkText.obj \ 218 $(TMPDIR)\tkTextBTree.obj \ 219 $(TMPDIR)\tkTextDisp.obj \ 220 $(TMPDIR)\tkTextImage.obj \ 221 $(TMPDIR)\tkTextIndex.obj \ 222 $(TMPDIR)\tkTextMark.obj \ 223 $(TMPDIR)\tkTextTag.obj \ 224 $(TMPDIR)\tkTextWind.obj \ 225 $(TMPDIR)\tkTrig.obj \ 226 $(TMPDIR)\tkUtil.obj \ 227 $(TMPDIR)\tkVisual.obj \ 228 $(TMPDIR)\tkStubInit.obj \ 229 $(TMPDIR)\tkStubLib.obj \ 230 $(TMPDIR)\tkWindow.obj 231 232# Maintenance hint: Please have multiple members of TKSTUBOBJS be separated 233# by exactly one ' ' (see below the rule for making TKSTUBLIB) 234TKSTUBOBJS = $(TMPDIR)\tkStubLib.obj $(TMPDIR)\tkStubImg.obj 235 236WINDIR = $(ROOT)\win 237GENERICDIR = $(ROOT)\generic 238XLIBDIR = $(ROOT)\xlib 239BITMAPDIR = $(ROOT)\bitmaps 240TCLLIBDIR = $(TCLDIR)\win\$(OUTDIRNAME) 241RCDIR = $(WINDIR)\rc 242 243TK_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) -I$(BITMAPDIR) -I$(XLIBDIR) \ 244 -I$(TCLDIR)\generic 245 246TK_DEFINES = -D__WIN32__ $(DEBUGDEFINES) $(THREADDEFINES) 247 248###################################################################### 249# Compile flags 250###################################################################### 251 252!IF "$(NODEBUG)" == "1" 253# these macros cause maximum optimization and no symbols 254cdebug = -v- -vi- -O2 -D_DEBUG 255!ELSE 256# these macros enable debugging 257cdebug = -k -Od -r- -v -vi- -y 258!ENDIF 259 260SYSDEFINES = _MT;NO_STRICT;_NO_VCL 261 262# declarations common to all compiler options 263cbase = -3 -a4 -c -g0 -tWM -Ve -Vx -X- 264WARNINGS = -w-rch -w-pch -w-par -w-dup -w-pro -w-dpu 265 266ccons = -tWC 267 268CFLAGS = $(cdebug) $(cbase) $(WARNINGS) -D$(SYSDEFINES) 269 270CON_CFLAGS = $(CFLAGS) $(TK_DEFINES) $(include32) $(ccons) 271WISH_CFLAGS = $(CFLAGS) $(include32) $(TK_INCLUDES) $(TK_DEFINES) 272TK_CFLAGS = $(CFLAGS) $(include32) $(TK_INCLUDES) $(TK_DEFINES) \ 273 -DUSE_TCL_STUBS 274 275###################################################################### 276# Link flags 277###################################################################### 278 279!IF "$(NODEBUG)" == "1" 280ldebug = 281!ELSE 282ldebug = -v 283!ENDIF 284 285# declarations common to all linker options 286LNFLAGS = -D"" -Gn -I$(TMPDIR) -x $(ldebug) $(libpath32) 287# -Gi: create lib file (is -Gl in doc) 288# -aa: Windows app, -ap: Windows console app 289LNFLAGS_DLL = -ap -Gi -Tpd 290LNFLAGS_CONS = -ap -Tpe 291LNFLAGS_GUI = -aa -Tpe 292 293LNLIBS = import32 cw32mt 294 295 296###################################################################### 297# Project specific targets 298###################################################################### 299 300all: setup $(WISH) $(CAT32) 301install: install-binaries install-libraries 302plugin: setup $(TKPLUGINDLL) $(WISHP) 303tktest: setup $(TKTEST) $(CAT32) 304 305# Maintenance hint: We want to set environment variables before calling tktest. 306# If we do this in the form of normal commands, they will not persist up to 307# the call of tktest. Therfore we put all commands wanted into a batch file. 308# The normal way of using 'echo >x.bat' and 'echo >>x.bat' does not work here 309# because we cannot write '... > tktest.txt' this way. Hence this advanced 310# form of loop hopping: 311# - Have MAKE produce a temporary file with the content we want. 312# - Use it as input to the COPY command to produce a batch file. 313# - Run the batch file and be happy. 314# 315test: setup $(TKTEST) $(TKLIB) $(CAT32) 316 copy &&! 317 set TCL_LIBRARY=$(TCLDIR)/library 318 set PATH=$(TCLDIR)\win\$(TMPDIRNAME);$(PATH) 319 $(TKTEST) $(ROOT)/tests/all.tcl > tktest.txt 320! _test.bat 321 _test.bat 322# del _test.bat 323 324runtest: setup $(TKTEST) $(TKLIB) $(CAT32) 325 echo set TCL_LIBRARY=$(TCLDIR)/library > _test2.bat 326 echo set PATH=$(TCLDIR)\win\$(TMPDIRNAME);$(PATH) >> _test2.bat 327 echo $(TKTEST) >> _test2.bat 328 _test2.bat 329# del _test2.bat 330 331console-wish : all $(WISHC) 332 333stubs: 334 $(TCLDIR)\win\$(TMPDIRNAME)\tclsh$(VERSION)$(DBGX) \ 335 $(TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \ 336 $(GENERICDIR)\tk.decls $(GENERICDIR)\tkInt.decls 337 338setup: 339 @mkd $(TMPDIR) 340 @mkd $(OUTDIR) 341 342install-binaries: 343 @mkd "$(BIN_INSTALL_DIR)" 344 copy $(TKDLL) "$(BIN_INSTALL_DIR)" 345 copy $(WISH) "$(BIN_INSTALL_DIR)" 346 @mkd "$(LIB_INSTALL_DIR)" 347 copy $(TKLIB) "$(LIB_INSTALL_DIR)" 348 349install-libraries: 350 @mkd "$(INCLUDE_INSTALL_DIR)" 351 @mkd "$(INCLUDE_INSTALL_DIR)\X11" 352 copy "$(GENERICDIR)\tk.h" "$(INCLUDE_INSTALL_DIR)" 353 copy "$(GENERICDIR)\tkDecls.h" "$(INCLUDE_INSTALL_DIR)" 354 copy "$(GENERICDIR)\tkPlatDecls.h" "$(INCLUDE_INSTALL_DIR)" 355 copy "$(GENERICDIR)\tkIntXlibDecls.h" "$(INCLUDE_INSTALL_DIR)" 356 xcopy "$(XLIBDIR)\X11\*.h" "$(INCLUDE_INSTALL_DIR)\X11" 357 @mkd "$(SCRIPT_INSTALL_DIR)" 358 @mkd "$(SCRIPT_INSTALL_DIR)\images" 359 @mkd "$(SCRIPT_INSTALL_DIR)\demos" 360 @mkd "$(SCRIPT_INSTALL_DIR)\demos\images" 361 @mkd "$(SCRIPT_INSTALL_DIR)\msgs" 362 xcopy "$(ROOT)\library" "$(SCRIPT_INSTALL_DIR)" 363 xcopy "$(ROOT)\library\images" "$(SCRIPT_INSTALL_DIR)\images" 364 xcopy "$(ROOT)\library\demos" "$(SCRIPT_INSTALL_DIR)\demos" 365 xcopy "$(ROOT)\library\demos\images" "$(SCRIPT_INSTALL_DIR)\demos\images" 366 xcopy "$(ROOT)\library\msgs" "$(SCRIPT_INSTALL_DIR)\msgs" 367 368$(TKLIB): $(TKDLL) $(TKSTUBLIB) 369 370# Maintenance hint: The macro puts a '+-' before the first member of 371# TKSTUBOBJS, than replaces any ' ' with ' +-' - together putting '+-' in 372# front of any member of TKSTUBOBJS (provided, they are separated in their 373# defintion by just one space). 374# 375# The first time you *make* this target, you will get a warning 376# tkStubLib not found in library 377# This is (probably) because of the '-' option, telling TLIB to remove 378# 'tkStubLib' when it does not yet exist. Forcing a re-make when it already 379# exists avoids this warning. 380# 381$(TKSTUBLIB): $(TKSTUBOBJS) 382 $(lib32) $@ +-$(TKSTUBOBJS: = +-) 383 384# $(lib32) $@ @&&! 385#+-$(TKSTUBOBJS: = &^ 386#+-) 387#! 388 389$(TKDLL): $(TKOBJS) $(TMPDIR)\tk.res 390 $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 @&&! 391 $(TKOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLSTUBLIB),, $(TMPDIR)\tk.res 392! 393 394$(TKPLUGINLIB): $(TKPLUGINDLL) 395 396#$(TKPLUGINDLL): $(TKOBJS) $(TMPDIR)\tk.res 397# $(link32) $(ldebug) $(dlllflags) \ 398# -out:$@ $(TMPDIR)\tk.res $(TCLLIBDIR)\$(TCLPLUGINLIB) \ 399# $(guilibsdll) @<< 400# $(TKOBJS) 401#<< 402 403$(WISH): $(WISHOBJS) $(TKLIB) $(TMPDIR)\wish.res 404 $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_GUI) $(TOOLS32)\lib\c0x32 @&&! 405 $(WISHOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB),, $(TMPDIR)\wish.res 406! 407 408$(WISHC): $(WISHOBJS) $(TKLIB) $(TMPDIR)\wish.res 409 $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 @&&! 410 $(WISHOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB),, $(TMPDIR)\wish.res 411! 412 413$(WISHP): $(WISHOBJS) $(TKPLUGINLIB) $(TMPDIR)\wish.res 414 $(link32) $(ldebug) $(guilflags) $(TMPDIR)\wish.res -out:$@ \ 415 $(guilibsdll) $(TCLLIBDIR)\$(TCLPLUGINLIB) \ 416 $(TKPLUGINLIB) $(WISHOBJS) 417 418$(TKTEST): $(TKTESTOBJS) $(TKLIB) $(TMPDIR)\wish.res 419 $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_GUI) $(TOOLS32)\lib\c0x32 @&&! 420 $(TKTESTOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB),, $(TMPDIR)\wish.res 421! 422# $(link32) $(ldebug) $(guilflags) $(TMPDIR)\wish.res -out:$@ \ 423# $(guilibsdll) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB) $(TKTESTOBJS) 424 425#$(CAT32): $(TCLDIR)\win\cat.c 426# $(cc32) $(CON_CFLAGS) -o$(TMPDIR)\cat.obj $? 427# $(link32) $(conlflags) -out:$@ -stack:16384 $(TMPDIR)\cat.obj $(conlibs) 428 429$(CAT32): $(TCLDIR)\win\cat.c 430 $(cc32) $(CONS_CFLAGS) -o$(TMPDIR)\cat.obj $? 431 $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 \ 432 $(TMPDIR)\cat.obj, $@, -x, $(LNLIBS),, 433 434# 435# Regenerate the stubs files. 436# 437 438genstubs: 439 tclsh$(VERSION) $(TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \ 440 $(GENERICDIR)\tk.decls $(GENERICDIR)\tkInt.decls 441 442# 443# Special case object file targets 444# 445 446$(TMPDIR)\testMain.obj: $(WINDIR)\winMain.c 447 $(cc32) $(WISH_CFLAGS) -DTK_TEST -o$@ $? 448 449$(TMPDIR)\tkTest.obj: $(GENERICDIR)\tkTest.c 450 $(cc32) $(WISH_CFLAGS) -o$@ $? 451 452$(TMPDIR)\tkWinTest.obj: $(WINDIR)\tkWinTest.c 453 $(cc32) $(WISH_CFLAGS) -o$@ $? 454 455$(TMPDIR)\tkSquare.obj: $(GENERICDIR)\tkSquare.c 456 $(cc32) $(WISH_CFLAGS) -o$@ $? 457 458$(TMPDIR)\winMain.obj: $(WINDIR)\winMain.c 459 $(cc32) $(WISH_CFLAGS) -o$@ $? 460 461$(TMPDIR)\tkStubLib.obj : $(GENERICDIR)\tkStubLib.c 462 $(cc32) $(TK_CFLAGS) -DSTATIC_BUILD -o$@ $? 463 464# 465# Implicit rules 466# 467 468{$(XLIBDIR)}.c{$(TMPDIR)}.obj: 469 $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $< 470 471{$(GENERICDIR)}.c{$(TMPDIR)}.obj: 472 $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $< 473 474{$(WINDIR)}.c{$(TMPDIR)}.obj: 475 $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $< 476 477{$(ROOT)\unix}.c{$(TMPDIR)}.obj: 478 $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $< 479 480{$(RCDIR)}.rc{$(TMPDIR)}.res: 481 $(rc32) -I"$(GENERICDIR)" -I"$(TOOLS32)\include" -I"$(TCLDIR)\generic" \ 482 -D$(USERDEFINES);$(SYSDEFINES) -fo$@ $< 483 484clean: 485 -@del $(OUTDIR)\*.exp 486 -@del $(OUTDIR)\*.lib 487 -@del $(OUTDIR)\*.dll 488 -@del $(OUTDIR)\*.exe 489 -@del $(OUTDIR)\*.pdb 490 -@del $(TMPDIR)\*.pch 491 -@del $(TMPDIR)\*.obj 492 -@del $(TMPDIR)\*.res 493 -@del $(TMPDIR)\*.exe 494 -@rmd $(OUTDIR) 495 -@rmd $(TMPDIR) 496 497# dependencies 498 499$(TMPDIR)\tk.res: \ 500 $(RCDIR)\buttons.bmp \ 501 $(RCDIR)\cursor*.cur \ 502 $(RCDIR)\tk.ico 503 504$(GENERICDIR)/default.h: $(WINDIR)/tkWinDefault.h 505$(GENERICDIR)/tkButton.c: $(GENERICDIR)/default.h 506$(GENERICDIR)/tkCanvas.c: $(GENERICDIR)/default.h 507$(GENERICDIR)/tkEntry.c: $(GENERICDIR)/default.h 508$(GENERICDIR)/tkFrame.c: $(GENERICDIR)/default.h 509$(GENERICDIR)/tkListbox.c: $(GENERICDIR)/default.h 510$(GENERICDIR)/tkMenu.c: $(GENERICDIR)/default.h 511$(GENERICDIR)/tkMenubutton.c: $(GENERICDIR)/default.h 512$(GENERICDIR)/tkMessage.c: $(GENERICDIR)/default.h 513$(GENERICDIR)/tkScale.c: $(GENERICDIR)/default.h 514$(GENERICDIR)/tkScrollbar.c: $(GENERICDIR)/default.h 515$(GENERICDIR)/tkText.c: $(GENERICDIR)/default.h 516$(GENERICDIR)/tkTextIndex.c: $(GENERICDIR)/default.h 517$(GENERICDIR)/tkTextTag.c: $(GENERICDIR)/default.h 518 519$(GENERICDIR)/tkText.c: $(GENERICDIR)/tkText.h 520$(GENERICDIR)/tkTextBTree.c: $(GENERICDIR)/tkText.h 521$(GENERICDIR)/tkTextDisp.c: $(GENERICDIR)/tkText.h 522$(GENERICDIR)/tkTextDisp.c: $(GENERICDIR)/tkText.h 523$(GENERICDIR)/tkTextImage.c: $(GENERICDIR)/tkText.h 524$(GENERICDIR)/tkTextIndex.c: $(GENERICDIR)/tkText.h 525$(GENERICDIR)/tkTextMark.c: $(GENERICDIR)/tkText.h 526$(GENERICDIR)/tkTextTag.c: $(GENERICDIR)/tkText.h 527$(GENERICDIR)/tkTextWind.c: $(GENERICDIR)/tkText.h 528 529$(GENERICDIR)/tkMacWinMenu.c: $(GENERICDIR)/tkMenu.h 530$(GENERICDIR)/tkMenu.c: $(GENERICDIR)/tkMenu.h 531$(GENERICDIR)/tkMenuDraw.c: $(GENERICDIR)/tkMenu.h 532$(WINDIR)/tkWinMenu.c: $(GENERICDIR)/tkMenu.h 533 534 535 536