1 2# ------------------------------------------------------------------------ 3# Makefile for static version of BLT library 4# ------------------------------------------------------------------------ 5 6# ------------------------------------------------------------------------ 7# C Compiler options 8# ------------------------------------------------------------------------ 9 10BLT_LIBRARY = @BLT_LIBRARY@ 11TCLLIBPATH = @TCL_LIB_DIR@/tcl@TCL_VERSION@ 12CC = @CC@ 13CFLAGS = @CFLAGS@ 14DEFINES = @DEFINES@ 15EXTRA_CFLAGS = @GCCFLAGS@ 16LDFLAGS = @LDFLAGS@ @LD_RUN_PATH@ 17version = @BLT_MAJOR_VERSION@@BLT_MINOR_VERSION@ 18 19# ------------------------------------------------------------------------ 20# Source and targer installation directories 21# ------------------------------------------------------------------------ 22 23bindir = $(exec_prefix)/bin 24exec_prefix = @exec_prefix@ 25incdir = $(prefix)/include 26libdir = @libdir@ 27scriptdir = $(exec_prefix)/lib 28 29prefix = @prefix@ 30srcdir = @srcdir@ 31 32instdirs = $(prefix) $(exec_prefix) $(bindir) $(libdir) $(incdir) 33 34# ------------------------------------------------------------------------ 35# Directories containing Tcl and Tk include files and libraries 36# ------------------------------------------------------------------------ 37 38INCLUDES = -I. -I$(srcdir) @INCLUDES@ 39 40# ------------------------------------------------------------------------ 41# Libraries directives for Tcl, Tk, X11, and BLT 42# ------------------------------------------------------------------------ 43 44LIBS = @LIB_SPECS@ @EXTRA_LIB_SPECS@ 45TCL_ONLY_LIBS = @TCL_ONLY_LIB_SPECS@ @EXTRA_LIB_SPECS@ 46 47# ------------------------------------------------------------------------ 48# You don't need to edit anything beyond this point 49# ------------------------------------------------------------------------ 50 51N_OBJS = bltTed.o 52V3_OBJS = bltTri.o bltGrMt.o 53 54TK_OBJS = tkButton.o tkFrame.o bltScrollbar.o 55 56GRAPH_OBJS = bltGrAxis.o \ 57 bltGrBar.o \ 58 bltGrElem.o \ 59 bltGrGrid.o \ 60 bltGrHairs.o \ 61 bltGrLegd.o \ 62 bltGrLine.o \ 63 bltGrMarker.o \ 64 bltGrMisc.o \ 65 bltGrPen.o \ 66 bltGrPs.o \ 67 bltGraph.o 68 69 70ifeq ($(ARCH),WIN32) 71 72DND_OBJS = 73IMAGE_OBJS = bltWinImage.o 74PIPE_OBJS = bltWinPipe.o \ 75 bltWinUtil.o \ 76 bltWinDde.o \ 77 bltWinDraw.o \ 78 bltWinPrnt.o 79 80else 81 82DND_OBJS = bltUnixDnd.o 83IMAGE_OBJS = bltUnixImage.o 84PIPE_OBJS = bltUnixPipe.o 85 86endif 87 88TCL_ONLY_OBJS = bltAlloc.o \ 89 bltArrayObj.o \ 90 bltBgexec.o \ 91 bltChain.o \ 92 bltDebug.o \ 93 bltHash.o \ 94 bltList.o \ 95 bltNsUtil.o \ 96 bltParse.o \ 97 bltPool.o \ 98 bltSpline.o \ 99 bltSwitch.o \ 100 bltTree.o \ 101 bltTreeCmd.o \ 102 $(PIPE_OBJS) \ 103 bltUtil.o \ 104 bltVector.o \ 105 bltVecMath.o \ 106 bltVecCmd.o \ 107 bltVecObjCmd.o \ 108 bltStubLib.o \ 109 bltStubInit.o \ 110 bltWatch.o 111 112OBJS = $(GRAPH_OBJS) \ 113 $(TCL_ONLY_OBJS) \ 114 bltBeep.o \ 115 bltBind.o \ 116 bltBitmap.o \ 117 bltBusy.o \ 118 bltCanvEps.o \ 119 bltColor.o \ 120 bltConfig.o \ 121 bltContainer.o \ 122 bltCutbuffer.o \ 123 bltDragdrop.o \ 124 bltHierbox.o \ 125 bltHtext.o \ 126 bltImage.o \ 127 $(IMAGE_OBJS) \ 128 bltPs.o \ 129 bltTable.o \ 130 bltTabnotebook.o \ 131 bltTabset.o \ 132 bltText.o \ 133 bltTile.o \ 134 bltTreeView.o \ 135 bltTreeViewCmd.o \ 136 bltTreeViewEdit.o \ 137 bltTreeViewColumn.o \ 138 bltTreeViewStyle.o \ 139 $(DND_OBJS) \ 140 bltWindow.o \ 141 bltObjConfig.o \ 142 bltWinop.o \ 143 $(TK_OBJS) $(N_OBJS) 144 145# GNU Make-specific macro 146SRCS = $(patsubst %.o,$(srcdir)/%.c,$(OBJS)) 147 148bltwish = bltwish 149bltsh = bltsh 150headers = $(srcdir)/blt.h \ 151 $(srcdir)/bltOldConfig.h \ 152 $(srcdir)/bltBind.h \ 153 $(srcdir)/bltChain.h \ 154 bltHash.h \ 155 $(srcdir)/bltList.h \ 156 $(srcdir)/bltPool.h \ 157 $(srcdir)/bltTree.h \ 158 $(srcdir)/bltDecls.h \ 159 $(srcdir)/bltVector.h 160 161lib_a = libBLT.a 162libvers_a = libBLT$(version).a 163tcl_only_lib_a = libBLTlite.a 164tcl_only_libvers_a = libBLTlite$(version).a 165stub_a = libBLTstub.a 166stub_libvers_a = libBLTstub$(version).a 167 168CC_SWITCHES = $(EXTRA_CFLAGS) $(CFLAGS) $(DEFINES) $(INCLUDES) 169INSTALL = @INSTALL@ 170INSTALL_DATA = @INSTALL_DATA@ 171INSTALL_ROOT = ${DESTDIR} 172RANLIB = @RANLIB@ 173SHELL = /bin/sh 174AR = ar rc 175RM = rm -f 176LINT = lint 177LINTFLAGS = -axhbns 178XREF = cxref 179XREFFLAGS = -dltR 180LN_S = @LN_S@ 181VPATH = $(srcdir) 182 183all: $(bltsh) $(bltwish) @SHLIB_TARGET@ 184#all: $(bltwish) @SHLIB_TARGET@ 185 186build_shared: 187 (cd shared; $(MAKE) CFLAGS="$(CFLAGS)" all) 188 189$(bltwish): $(lib_a) $(srcdir)/bltUnixMain.c 190 $(RM) $(bltwish) 191 $(CC) $(CC_SWITCHES) $(LDFLAGS) -o $(bltwish) \ 192 -DTCLLIBPATH=\"$(TCLLIBPATH)\" \ 193 $(srcdir)/bltUnixMain.c $(lib_a) $(LIBS) 194 195$(bltsh): $(tcl_only_lib_a) $(srcdir)/bltUnixMain.c 196 $(RM) $(bltsh) 197 $(CC) $(CC_SWITCHES) $(LDFLAGS) -DTCL_ONLY -o $(bltsh) \ 198 -DTCLLIBPATH=\"$(TCLLIBPATH)\" \ 199 $(srcdir)/bltUnixMain.c $(tcl_only_lib_a) $(TCL_ONLY_LIBS) 200 201$(lib_a): $(OBJS) $(srcdir)/bltInit.c 202 $(CC) -c $(CC_SWITCHES) -DBLT_LIBRARY=\"$(BLT_LIBRARY)\" \ 203 $(srcdir)/bltInit.c 204 $(RM) $@ 205 $(AR) $@ $(OBJS) bltInit.o 206 $(RANLIB) $@ 207 208$(tcl_only_lib_a): $(TCL_ONLY_OBJS) $(srcdir)/bltInit.c 209 $(CC) -c $(CC_SWITCHES) -DTCL_ONLY -DBLT_LIBRARY=\"$(BLT_LIBRARY)\" \ 210 $(srcdir)/bltInit.c 211 $(RM) $@ 212 $(AR) $@ $(TCL_ONLY_OBJS) bltInit.o 213 $(RANLIB) $@ 214 215install: mkdirs install-lib install-demo install-headers 216 217install-demo: $(bltwish) $(bltsh) 218 $(INSTALL) -m 0755 $(bltwish) $(INSTALL_ROOT)$(bindir) 219 $(INSTALL) -m 0755 $(bltsh) $(INSTALL_ROOT)$(bindir) 220 221install-lib: $(lib_a) $(tcl_only_lib_a) $(stub_a) 222 $(INSTALL_DATA) $(lib_a) $(INSTALL_ROOT)$(libdir)/$(libvers_a) 223 (cd $(INSTALL_ROOT)$(libdir); $(RM) $(lib_a) ; $(LN_S) $(libvers_a) $(lib_a)) 224 $(RANLIB) $(INSTALL_ROOT)$(libdir)/$(libvers_a) 225 $(INSTALL_DATA) $(tcl_only_lib_a) $(INSTALL_ROOT)$(libdir)/$(tcl_only_libvers_a) 226 (cd $(INSTALL_ROOT)$(libdir); $(RM) $(tcl_only_lib_a) ; $(LN_S) $(tcl_only_libvers_a) $(tcl_only_lib_a)) 227 $(RANLIB) $(INSTALL_ROOT)$(libdir)/$(tcl_only_libvers_a) 228 $(INSTALL_DATA) $(stub_a) $(INSTALL_ROOT)$(libdir)/$(stub_libvers_a) 229 (cd $(INSTALL_ROOT)$(libdir); $(RM) $(stub_a) ; $(LN_S) $(stub_libvers_a) $(stub_a)) 230 (cd shared; $(MAKE) install) 231 232mkdirs: 233 @for i in $(instdirs) ; do \ 234 if test -d $(INSTALL_ROOT)$$i ; then \ 235 : ; \ 236 else \ 237 echo " mkdir $(INSTALL_ROOT)$$i" ; \ 238 mkdir $(INSTALL_ROOT)$$i ; \ 239 fi ; \ 240 done 241 242install-headers: 243 @for i in $(headers) ; do \ 244 echo "installing $$i..." ; \ 245 $(INSTALL_DATA) -m 0444 $$i $(INSTALL_ROOT)$(incdir) ; \ 246 done 247 248lint: 249 $(LINT) $(LINTFLAGS) $(DEFINES) $(INCLUDES) $(SRCS) 250 251libBLTstub.a: 252 $(CC) -fPIC -I$(srcdir) @INCLUDES@ -c $(srcdir)/bltStubLib.c 253 $(AR) libBLTstub.a bltStubLib.o 254 $(RANLIB) libBLTstub.a 255 256 257genstubs: 258 tclsh $(TCLLIBPATH)/tools/genStubs.tcl $(srcdir) blt.decl 259 260xref: 261 $(XREF) $(XREFFLAGS) $(DEFINES) $(INCLUDES) $(SRCS) 262 263clean: 264 $(RM) $(OBJS) bltInit.o $(lib_a) $(tcl_only_lib_a) \ 265 $(bltsh)* $(bltwish)* 266 (cd shared; $(MAKE) clean) 267 268distclean: clean 269 $(RM) $(srcdir)/*.bak $(srcdir)/*\~ $(srcdir)/"#"* Makefile 270 $(RM) bltConfig.h Makefile TAGS 271 272.c.o: 273 $(CC) -c $(CC_SWITCHES) $< 274 275QUANTIFYFLAGS= 276quant: $(lib_a) 277 $(QUANTIFYHOME)/quantify $(QUANTIFYFLAGS) $(CC) $(CC_SWITCHES) \ 278 $(srcdir)/bltUnixMain.c -o bltwish $(lib_a) $(LIBS) 279