1 2# ------------------------------------------------------------------------ 3# Makefile for BLT library using BCC55. 4# ------------------------------------------------------------------------ 5 6.SUFFIXES: .obj .c 7 8!include ..\win\makedefs 9 10prefix = C:\Program Files\Tcl 11exec_prefix = $(prefix) 12includedir = $(prefix)\include 13bindir = $(prefix)\bin 14libdir = $(prefix)\lib 15scriptdir = $(libdir)\blt$(BLT_VERSION) 16BLT_LIBRARY = $(libdir)\blt$(BLT_VERSION) 17TCLLIBPATH = $(libdir)\tcl$(v1) 18 19SHLIB_SUFFIX = .dll 20 21SHELL = bash.exe 22RM = -del 23 24TOOLS32 = c:\Borland\BCC55 25 26AR = $(TOOLS32)\bin\implib.exe 27LD = $(TOOLS32)\bin\ilink32.exe 28CC = $(TOOLS32)\bin\bcc32.exe 29rc32 = $(TOOLS32)\bin\rc.exe 30 31!if ($(WITH_JPEG) == 0) 32EXTRA_DEFINES = 33!endif 34!if ($(WITH_JPEG) == 1) 35EXTRA_DEFINES = -DHAVE_JPEGLIB_H=1 36JPEGDIR = $(srcdir)\..\..\jpeg-6b 37JPEGLIB = $(JPEGDIR)\libjpeg.lib 38JPEGINC = $(JPEGDIR) 39!endif 40!if ($(WITH_JPEG) == 2) 41EXTRA_DEFINES = -DHAVE_IJL_H=1 42JPEGDIR = c:\Program\ Files\Intel\IJL 43JPEGLIB = $(JPEGDIR)\lib\ijl15l.lib 44JPEGINC = $(JPEGDIR)\Include 45!endif 46 47# ------------------------------------------------------------------------ 48# C Compiler options 49# ------------------------------------------------------------------------ 50 51DEFINES = -D__STDC__ -DWIN32 -DCONSOLE -D_MT -DNO_STRICT -D_NO_VCL \ 52 $(DEBUG_DEFINES) $(SHLIB_DEFINES) $(EXTRA_DEFINES) 53 54!if ($(SHARED) == 1) 55SHLIB_DEFINES = -D_DLL 56SHLIB_TARGET = build-dll 57LIBS = $(COMMON_LIBS) $(EXTRA_LIBS) 58!else 59SHLIB_CFLAGS = 60SHLIB_DEFINES = 61LIBS = $(COMMON_LIBS) $(EXTRA_LIBS) 62!endif 63 64!if ($(DEBUG) == 1) 65# -Od Disable all optimizations. 66# -k Turn on standard stack frame. 67# -r- Disable use of registers. 68# -v Turn on source debugging. 69# -vG All code guard options on. 70# -vi- Turn off expansion of inline functions. 71# -y Debug line numbers on. 72DEBUG_CFLAGS = -v -k -Od -vi- -y -r- -lv -tW -tWM 73# -v Turn on source debugging. 74DEBUG_LDFLAGS = -v 75DEBUG_DEFINES = -DUSE_TCLALLOC=0 76DEBUG_DEFINES = 77TK_LIB = $(TKDIR)\win\Debug\tk$(v2)d.lib 78TCL_LIB = $(TCLDIR)\win\Debug\tcl$(v2)d.lib 79MSVCRT = 80!else 81# -v- Turn off source debugging. 82# -vi- Turn off expansion of inline functions. 83# -O2 Generate fastest code possible. 84DEBUG_CFLAGS = -v- -vi- -O2 -D_DEBUG 85DEBUG_LDFLAGS = 86TK_LIB = $(TKDIR)\win\Release\tk$(v2).lib 87TCL_LIB = $(TCLDIR)\win\Release\tcl$(v2).lib 88MSVCRT = 89!endif 90 91# Turn off the following bcc warnings: 92# -w-pro Call to function with no prototype 93# -w-par Parameter is never used. 94# -w-sus Suspicious pointer conversion (bltCanvEps.c). 95# 96WARNINGS = -w-pro -w-par -w-eff -w-sus 97 98# -q Suppress compiler identification banner. 99# -g1 Stop after the first warning. 100# -tWC Target is a Windows console application. 101# -X Disable compiler autodependency output. 102# -ps Use stdcall calling convention. 103 104EXTRA_CFLAGS = -q -g1 -tWC -X 105 106CFLAGS = $(WARNINGS) $(DEBUG_CFLAGS) $(SHLIB_CFLAGS) $(EXTRA_CFLAGS) 107 108# ------------------------------------------------------------------------ 109# Linker flags and options 110# ------------------------------------------------------------------------ 111 112# -D Save specified description. 113# -w Turn on warnings. 114# -c Treate case as significant in symbols. 115# -x 116# -Gi Generate .lib file. 117# -r Verbose linking. 118# -x Suppresses map creation. 119COMMON_LDFLAGS = -D"" -w -c -x $(DEBUG_LDFLAGS) -L$(TOOLS32)\lib 120 121SHLIB_LDFLAGS = $(COMMON_LDFLAGS) -x -Gi -Tpd $(TOOLS32)\lib\c0d32 122 123LDFLAGS = $(COMMON_LDFLAGS) -x -Tpe -S:2400000 124 125COMMON_LIBS = $(TK_LIB) $(TCL_LIB) import32 cw32 126 127EXTRA_LIBS = $(OLELIB) \ 128 $(JPEGLIB) 129 130TCL_ONLY_COMMON_LIBS = $(TCL_LIB) import32 cw32 131TCL_ONLY_LIBS = $(TCL_ONLY_COMMON_LIBS) $(EXTRA_LIBS) 132 133# ------------------------------------------------------------------------ 134# Source and target installation directories 135# ------------------------------------------------------------------------ 136 137srcdir = . 138instdirs = $(prefix) $(exec_prefix) $(bindir) $(libdir) $(includedir) 139instdirs = $(exec_prefix) $(prefix) $(libdir) 140 141# ------------------------------------------------------------------------ 142# Directories containing Tcl and Tk include files and libraries 143# ------------------------------------------------------------------------ 144 145TCLDIR = $(srcdir)\..\..\tcl$(v3) 146TKDIR = $(srcdir)\..\..\tk$(v3) 147INCLUDES = -I. -I$(srcdir) \ 148 -I$(TOOLS32)\include \ 149 -I$(JPEGINC) \ 150 -I$(TCLDIR)\win -I$(TCLDIR)\generic \ 151 -I$(TKDIR)\win -I$(TKDIR)\generic -I$(TKDIR)\xlib \ 152 153SHLIB_LD_LIBS = $(COMMON_LIBS) $(EXTRA_LIBS) 154SHLIB_TCL_ONLY_LIBS = $(COMMON_LIBS) $(EXTRA_LIBS) 155 156# ------------------------------------------------------------------------ 157# You don't need to edit anything beyond this point 158# ------------------------------------------------------------------------ 159 160N_OBJS = bltTed.obj 161V3_OBJS = bltTri.obj bltGrMt.obj 162 163TK_OBJS = tkButton.obj tkFrame.obj tkScrollbar.obj 164 165GRAPH_OBJS = bltGrAxis.obj \ 166 bltGrBar.obj \ 167 bltGrElem.obj \ 168 bltGrGrid.obj \ 169 bltGrHairs.obj \ 170 bltGrLegd.obj \ 171 bltGrLine.obj \ 172 bltGrMarker.obj \ 173 bltGrMisc.obj \ 174 bltGrPen.obj \ 175 bltGrPs.obj \ 176 bltGraph.obj 177 178TCL_ONLY_OBJS = bltAlloc.obj \ 179 bltArrayObj.obj \ 180 bltBgexec.obj \ 181 bltChain.obj \ 182 bltDebug.obj \ 183 bltHash.obj \ 184 bltList.obj \ 185 bltNsUtil.obj \ 186 bltParse.obj \ 187 bltPool.obj \ 188 bltSpline.obj \ 189 bltSwitch.obj \ 190 bltTree.obj \ 191 bltTreeCmd.obj \ 192 bltUtil.obj \ 193 bltVecCmd.obj \ 194 bltVecMath.obj \ 195 bltVecObjCmd.obj \ 196 bltVector.obj \ 197 bltWatch.obj \ 198 bltWinPipe.obj \ 199 bltWinUtil.obj \ 200 bltWinDde.obj 201 202 203DEMO_OBJS = tkConsole.obj bltWinMain.obj 204 205OBJS = $(GRAPH_OBJS) \ 206 $(TCL_ONLY_OBJS) \ 207 bltBeep.obj \ 208 bltBind.obj \ 209 bltBitmap.obj \ 210 bltBusy.obj \ 211 bltCanvEps.obj \ 212 bltConfig.obj \ 213 bltContainer.obj \ 214 bltDragdrop.obj \ 215 bltHierbox.obj \ 216 bltHtext.obj \ 217 bltImage.obj \ 218 bltWinImage.obj \ 219 bltPs.obj \ 220 bltTable.obj \ 221 bltTabnotebook.obj \ 222 bltTabset.obj \ 223 bltText.obj \ 224 bltTile.obj \ 225 bltTreeView.obj \ 226 bltTreeViewCmd.obj \ 227 bltTreeViewEdit.obj \ 228 bltTreeViewColumn.obj \ 229 bltTreeViewStyle.obj \ 230 bltWinDraw.obj \ 231 bltWinPrnt.obj \ 232 bltWindow.obj \ 233 bltObjConfig.obj \ 234 bltWinop.obj \ 235 $(TK_OBJS) $(N_OBJS) 236 237NOT_YET = bltContainer.obj bltCutBuffer.obj bltColor.obj 238 239HEADERS = blt.h bltChain.h bltVector.h bltTree.h bltPool.h bltHash.h 240 241# GNU Make-specific macro 242SRCS = $(patsubst %.obj,$(srcdir)\%.c,$(OBJS)) 243 244shell_name = bltwish 245version = $(BLT_MAJOR_VERSION)$(BLT_MINOR_VERSION) 246bltwish = bltwish.exe 247bltsh = bltsh.exe 248 249lib_name = BLT$(version) 250lib_a = BLT$(version).lib 251lib_so = BLT$(version).dll 252tcl_only_lib_a = BLTlite$(version).lib 253tcl_only_lib_so = BLTlite$(version).dll 254 255CC_SWITCHES = $(CFLAGS) $(DEFINES) $(INCLUDES) 256VPATH = $(srcdir) 257 258all: build-library build-demos 259 260build-demos: $(bltsh) $(bltwish) 261 262build-library: $(lib_a) $(tcl_only_lib_a) 263 264build-dll: build-library $(lib_so) $(tcl_only_lib_so) 265 266$(bltwish): $(lib_a) tkConsole.obj bltWinMain.c 267 -del $(bltwish) 2>nul 268 $(CC) -c $(CC_SWITCHES) -DTCLLIBPATH="\"$(TCLLIBPATH)\"" \ 269 -obltWinMain.obj $(srcdir)\bltWinMain.c 270 $(LD) $(LDFLAGS) -aa $(TOOLS32)\lib\c0w32 \ 271 tkConsole.obj bltWinMain.obj, \ 272 $(bltwish),, $(lib_a) $(LIBS) 273 274$(bltsh): $(tcl_only_lib_a) bltWinMain.c 275 -del $(bltsh) 2>nul 276 $(CC) -c $(CC_SWITCHES) -DTCL_ONLY \ 277 -DTCLLIBPATH="\"$(TCLLIBPATH)\"" \ 278 -obltWinMain.obj $(srcdir)\bltWinMain.c 279 $(LD) $(LDFLAGS) -ap $(TOOLS32)\lib\c0x32 bltWinMain.obj, \ 280 $(bltsh),, $(tcl_only_lib_a) $(TCL_ONLY_LIBS) 281 282$(lib_a): $(lib_so) bltHash.h $(OBJS) bltInit.c 283 -del bltInit.obj 2>nul 284 $(CC) -c $(CC_SWITCHES) -DBLT_LIBRARY="\"$(BLT_LIBRARY)\"" \ 285 -obltInit.obj $(srcdir)\bltInit.c 286 -del $@ 2>nul 287 $(AR) $@ $(lib_so) 288 289$(lib_so): $(OBJS) bltInit.c 290 -del bltInit.obj 2>nul 291 $(CC) -c $(CC_SWITCHES) -DBLT_LIBRARY="\"$(BLT_LIBRARY)\"" \ 292 -obltInit.obj $(srcdir)\bltInit.c 293 -del $@ 2>nul 294 $(LD) $(SHLIB_LDFLAGS) bltInit.obj $(OBJS), $@,, $(LIBS) 295 296$(tcl_only_lib_a): $(tcl_only_lib_so) bltHash.h $(TCL_ONLY_OBJS) bltInit.c 297 -del bltInit.obj 2>nul 298 $(CC) -c $(CC_SWITCHES) -DTCL_ONLY -DBLT_LIBRARY="\"$(BLT_LIBRARY)\"" \ 299 -obltInit.obj $(srcdir)\bltInit.c 300 -del $@ 2>nul 301 $(AR) $@ $(tcl_only_lib_so) 302 303$(tcl_only_lib_so): $(TCL_ONLY_OBJS) bltInit.c 304 -del bltInit.obj 2>nul 305 $(CC) -c $(CC_SWITCHES) -DTCL_ONLY -DBLT_LIBRARY="\"$(BLT_LIBRARY)\"" \ 306 -obltInit.obj $(srcdir)\bltInit.c 307 -del $@ 2>nul 308 $(LD) $(SHLIB_LDFLAGS) bltInit.obj $(TCL_ONLY_OBJS), $@, -x, \ 309 $(TCL_ONLY_LIBS),, 310 311bltHash.h: bltHash.h.in 312 sed -e 's/@SIZEOF_VOID_P@/4/' \ 313 -e 's/@SIZEOF_INT@/4/' \ 314 -e 's/@SIZEOF_LONG@/4/' \ 315 -e 's/@SIZEOF_LONG_LONG@/8/' \ 316 -e 's/@HAVE_INTTYPES_H@/0/' \ 317 bltHash.h.in > bltHash.h 318 319clean: 320 -del *.obj 2>nul 321 -del *.pdb 2>nul 322 -del *.exp 2>nul 323 -del $(lib_a) 2>nul 324 -del $(lib_so) 2>nul 325 -del $(tcl_only_lib_a) 2>nul 326 -del $(tcl_only_lib_so) 2>nul 327 -del $(bltwish) 2>nul 328 -del $(bltsh) 2>nul 329 -del $(srcdir)\*.bak 2>nul 330 -del $(srcdir)\*~ 2>nul 331 -del $(srcdir)\"#"* 2>nul 332 -del *.pdb 2>nul 333 -del *.ilf 2>nul 334 -del *.ils 2>nul 335 -del *.ilc 2>nul 336 -del *.ild 2>nul 337 -del *.tds 2>nul 338 -del *.td2 2>nul 339 -del *.TR2 2>nul 340 341.c.obj: 342 $(CC) -c $(CC_SWITCHES) $< 343 344