1# -*- makefile -*- 2# Makefile for Generic Unix with GCC compiler 3 4FAULT_TOLERANT=0 5 6# Default install directory 7PREFIX ?= /usr/local 8 9# Place where to copy GastDB header files 10INCSPATH=$(PREFIX)/include/fastdb 11 12#Place where to copy Fastdb library 13LIBSPATH=$(PREFIX)/lib 14 15#Place where to copy Fastdb subsql utility 16BINSPATH=$(PREFIX)/bin 17 18ifdef NO_PTHREADS 19OBJS = class.o compiler.o database.o xml.o hashtab.o file.o symtab.o ttree.o rtree.o container.o \ 20 cursor.o query.o wwwapi.o unisock.o sync.o localcli.o stdtp.o 21else 22OBJS = class.o compiler.o database.o xml.o hashtab.o file.o symtab.o ttree.o rtree.o container.o \ 23 cursor.o query.o wwwapi.o unisock.o sync.o localcli.o stdtp.o server.o 24endif 25 26CLI_OBJS = cli.o unisock.o repsock.o stdtp.o 27 28INCS = inc/fastdb.h inc/stdtp.h inc/config.h inc/class.h inc/database.h inc/cursor.h inc/reference.h inc/wwwapi.h \ 29 inc/cli.h inc/array.h inc/file.h inc/hashtab.h inc/ttree.h inc/rtree.h inc/container.h inc/sync.h inc/sync_unix.h \ 30 inc/query.h inc/datetime.h inc/harray.h inc/timeseries.h inc/rectangle.h inc/exception.h 31 32# 33# threads settings - please comment this lines for single-threaded libs 34# 35ifdef NO_PTHREADS 36TFLAGS=-DNO_PTHREADS 37THRLIBS= 38SUFF= 39else 40TFLAGS=-pthread 41THRLIBS= 42SUFF=_r 43endif 44 45STDLIBS = -lm $(THRLIBS) 46SOCKLIBS = 47 48VERSION=2 49FASTDB_LIB = libfastdb$(SUFF).a 50FASTDB_SHARED = libfastdb$(SUFF).${VERSION}.dylib 51CLI_LIB = libcli$(SUFF).a 52CLI_SHARED = libcli$(SUFF).${VERSION}.dylib 53 54EXES = subsql forcerecovery cleanupsem 55#FASTDB_LIBS=-L. -lfastdb$(SUFF) 56#CLI_LIBS=-L. -lcli$(SUFF) 57FASTDB_LIBS=$(FASTDB_LIB) 58CLI_LIBS=$(CLI_LIB) 59 60EXAMPLES = guess testdb testleak testjoin testddl testperf testsync testconc testiref testtrav testidx clitest clitest2 testalter testraw localclitest testharr testspat testtl 61 62WEB_EXAMPLES = cgistub bugdb clidb 63 64CC = g++ 65 66# DEFS macro is deprecatred, edit inc/config.h file instead 67DEFS = 68 69#CFLAGS = $(TFLAGS) -c -Iinc -Wall -O5 -g -fPIC $(DEFS) 70CFLAGS = -c -Iinc -Wall -O0 -g -fPIC $(DEFS) $(TFLAGS) 71#CFLAGS = -c -Iinc -Wall -O0 -fPIC -DFASTDB_DEBUG=DEBUG_TRACE -g $(DEFS) $(TFLAGS) 72 73#SHFLAGS=-shared -Wl,-soname,$@ 74SHFLAGS=-dynamiclib 75 76 77LD = $(CC) 78LDFLAGS = -g $(TFLAGS) 79 80AR = ar 81ARFLAGS = -cru 82 83RANLIB = ranlib 84 85ifneq (0,$(FAULT_TOLERANT)) 86STDLIBS += $(SOCKLIBS) 87DEFS += -DREPLICATION_SUPPORT 88endif 89 90 91all: static shared bins 92 93static: $(FASTDB_LIB) $(CLI_LIB) 94 95shared: $(FASTDB_SHARED) $(CLI_SHARED) 96 97bins: $(EXES) $(EXAMPLES) 98 99www: $(FASTDB_SHARED) $(WEB_EXAMPLES) 100 101 102class.o: src/class.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 103 $(CC) $(CFLAGS) src/class.cpp 104 105compiler.o: src/compiler.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 106 $(CC) $(CFLAGS) src/compiler.cpp 107 108query.o: src/query.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 109 $(CC) $(CFLAGS) src/query.cpp 110 111database.o: src/database.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 112 $(CC) $(CFLAGS) src/database.cpp 113 114xml.o: src/xml.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 115 $(CC) $(CFLAGS) src/xml.cpp 116 117localcli.o: src/localcli.cpp inc/compiler.h inc/compiler.d inc/symtab.h inc/localcli.h $(INCS) 118 $(CC) $(CFLAGS) src/localcli.cpp 119 120cursor.o: src/cursor.cpp inc/compiler.h inc/compiler.d $(INCS) 121 $(CC) $(CFLAGS) src/cursor.cpp 122 123hashtab.o: src/hashtab.cpp $(INCS) 124 $(CC) $(CFLAGS) src/hashtab.cpp 125 126file.o: src/file.cpp $(INCS) 127 $(CC) $(CFLAGS) src/file.cpp 128 129stdtp.o: src/stdtp.cpp $(INCS) 130 $(CC) $(CFLAGS) src/stdtp.cpp 131 132sync.o: src/sync.cpp $(INCS) 133 $(CC) $(CFLAGS) src/sync.cpp 134 135symtab.o: src/symtab.cpp inc/symtab.h $(INCS) 136 $(CC) $(CFLAGS) src/symtab.cpp 137 138ttree.o: src/ttree.cpp $(INCS) 139 $(CC) $(CFLAGS) src/ttree.cpp 140 141rtree.o: src/rtree.cpp $(INCS) 142 $(CC) $(CFLAGS) src/rtree.cpp 143 144container.o: src/container.cpp $(INCS) 145 $(CC) $(CFLAGS) src/container.cpp 146 147wwwapi.o: src/wwwapi.cpp inc/wwwapi.h inc/sockio.h inc/stdtp.h inc/sync.h inc/config.h inc/sync_unix.h 148 $(CC) $(CFLAGS) src/wwwapi.cpp 149 150unisock.o: src/unisock.cpp inc/unisock.h inc/sockio.h inc/stdtp.h 151 $(CC) $(CFLAGS) src/unisock.cpp 152 153repsock.o: src/repsock.cpp inc/unisock.h inc/sockio.h inc/stdtp.h inc/sync.h inc/sync_unix.h inc/config.h 154 $(CC) $(CFLAGS) src/repsock.cpp 155 156cli.o: src/cli.cpp inc/cli.h inc/cliproto.h 157 $(CC) $(CFLAGS) src/cli.cpp 158 159$(FASTDB_LIB): $(OBJS) 160 rm -f $(FASTDB_LIB) 161 $(AR) $(ARFLAGS) $(FASTDB_LIB) $(OBJS) 162 $(RANLIB) $(FASTDB_LIB) 163 164$(FASTDB_SHARED): $(OBJS) 165 rm -f $(FASTDB_SHARED) 166 $(CC) $(SHFLAGS) -o $(FASTDB_SHARED) $(OBJS) $(THRLIBS) 167 ln -f -s $(FASTDB_SHARED) libfastdb$(SUFF).so 168 169$(CLI_LIB): $(CLI_OBJS) 170 rm -f $(CLI_LIB) 171 $(AR) $(ARFLAGS) $(CLI_LIB) $(CLI_OBJS) 172 $(RANLIB) $(CLI_LIB) 173 174$(CLI_SHARED): $(CLI_OBJS) 175 rm -f $(CLI_SHARED) 176 $(CC) $(SHFLAGS) -o $(CLI_SHARED) $(CLI_OBJS) $(THRLIBS) 177 ln -f -s $(CLI_SHARED) libcli$(SUFF).so 178 179 180clitest.o: examples/clitest.c inc/cli.h 181 $(CC) $(CFLAGS) examples/clitest.c 182 183clitest: clitest.o $(CLI_LIB) 184 $(LD) $(LDFLAGS) -o clitest clitest.o $(CLI_LIBS) $(STDLIBS) $(SOCKLIBS) 185 186clitest2.o: examples/clitest2.c inc/cli.h 187 $(CC) $(CFLAGS) examples/clitest2.c 188 189clitest2: clitest2.o $(FASTDB_LIB) 190 $(LD) $(LDFLAGS) -o clitest2 clitest2.o $(FASTDB_LIB) $(STDLIBS) 191 192testalter.o: examples/testalter.c inc/cli.h 193 $(CC) $(CFLAGS) examples/testalter.c 194 195testalter: testalter.o $(FASTDB_LIB) 196 $(LD) $(LDFLAGS) -o testalter testalter.o $(FASTDB_LIB) $(STDLIBS) 197 198localclitest: clitest.o $(FASTDB_LIB) 199 $(LD) $(LDFLAGS) -o localclitest clitest.o $(FASTDB_LIB) $(STDLIBS) 200 201subsql.o: src/subsql.cpp inc/subsql.h inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 202 $(CC) $(CFLAGS) src/subsql.cpp 203 204server.o: src/server.cpp inc/server.h inc/cli.h inc/cliproto.h inc/subsql.h inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 205 $(CC) $(CFLAGS) src/server.cpp 206 207subsql: subsql.o $(FASTDB_LIB) 208 $(LD) $(LDFLAGS) -o subsql subsql.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 209 210bugdb.o: examples/bugdb.cpp examples/bugdb.h $(INCS) 211 $(CC) $(CFLAGS) examples/bugdb.cpp 212 213bugdb: bugdb.o $(FASTDB_LIB) 214 $(LD) $(LDFLAGS) -o bugdb bugdb.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 215 216clidb.o: examples/clidb.cpp examples/clidb.h $(INCS) 217 $(CC) $(CFLAGS) examples/clidb.cpp 218 219clidb: clidb.o $(FASTDB_LIB) 220 $(LD) $(LDFLAGS) -o clidb clidb.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 221 222cgistub.o: src/cgistub.cpp inc/stdtp.h inc/sockio.h 223 $(CC) $(CFLAGS) src/cgistub.cpp 224 225cgistub: cgistub.o 226 $(LD) $(LDFLAGS) -o cgistub cgistub.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 227 228 229forcerecovery.o: src/forcerecovery.cpp inc/database.h 230 $(CC) $(CFLAGS) src/forcerecovery.cpp 231 232forcerecovery: forcerecovery.o 233 $(LD) $(LDFLAGS) -o forcerecovery forcerecovery.o 234 235cleanupsem.o: src/cleanupsem.cpp inc/database.h 236 $(CC) $(CFLAGS) src/cleanupsem.cpp 237 238cleanupsem: cleanupsem.o 239 $(LD) $(LDFLAGS) -o cleanupsem cleanupsem.o 240 241 242guess.o: examples/guess.cpp $(INCS) 243 $(CC) $(CFLAGS) examples/guess.cpp 244 245guess: guess.o $(FASTDB_LIB) 246 $(LD) $(LDFLAGS) -o guess guess.o $(FASTDB_LIBS) $(STDLIBS) 247 248testharr.o: examples/testharr.cpp $(INCS) 249 $(CC) $(CFLAGS) examples/testharr.cpp 250 251testharr: testharr.o $(FASTDB_LIB) 252 $(LD) $(LDFLAGS) -o testharr testharr.o $(FASTDB_LIBS) $(STDLIBS) 253 254testdb.o: examples/testdb.cpp $(INCS) 255 $(CC) $(CFLAGS) examples/testdb.cpp 256 257testdb: testdb.o $(FASTDB_LIB) 258 $(LD) $(LDFLAGS) -o testdb testdb.o $(FASTDB_LIBS) $(STDLIBS) 259 260testraw.o: examples/testraw.cpp $(INCS) 261 $(CC) $(CFLAGS) examples/testraw.cpp 262 263testraw: testraw.o $(FASTDB_LIB) 264 $(LD) $(LDFLAGS) -o testraw testraw.o $(FASTDB_LIBS) $(STDLIBS) 265 266testleak.o: examples/testleak.cpp $(INCS) 267 $(CC) $(CFLAGS) examples/testleak.cpp 268 269testleak: testleak.o $(FASTDB_LIB) 270 $(LD) $(LDFLAGS) -o testleak testleak.o $(FASTDB_LIBS) $(STDLIBS) 271 272testjoin.o: examples/testjoin.cpp $(INCS) 273 $(CC) $(CFLAGS) examples/testjoin.cpp 274 275testjoin: testjoin.o $(FASTDB_LIB) 276 $(LD) $(LDFLAGS) -o testjoin testjoin.o $(FASTDB_LIBS) $(STDLIBS) 277 278testddl.o: examples/testddl.cpp $(INCS) 279 $(CC) $(CFLAGS) examples/testddl.cpp 280 281testddl: testddl.o $(FASTDB_LIB) 282 $(LD) $(LDFLAGS) -o testddl testddl.o $(FASTDB_LIBS) $(STDLIBS) 283 284testperf.o: examples/testperf.cpp $(INCS) 285 $(CC) $(CFLAGS) examples/testperf.cpp 286 287testperf: testperf.o $(FASTDB_LIB) 288 $(LD) $(LDFLAGS) -o testperf testperf.o $(FASTDB_LIBS) $(STDLIBS) 289 290testidx.o: examples/testidx.cpp $(INCS) 291 $(CC) $(CFLAGS) examples/testidx.cpp 292 293testidx: testidx.o $(FASTDB_LIB) 294 $(LD) $(LDFLAGS) -o testidx testidx.o $(FASTDB_LIBS) $(STDLIBS) 295 296testtl.o: examples/testtl.cpp $(INCS) 297 $(CC) $(CFLAGS) examples/testtl.cpp 298 299testtl: testtl.o $(FASTDB_LIB) 300 $(LD) $(LDFLAGS) -o testtl testtl.o $(FASTDB_LIBS) $(STDLIBS) 301 302testspat.o: examples/testspat.cpp $(INCS) 303 $(CC) $(CFLAGS) examples/testspat.cpp 304 305testspat: testspat.o $(FASTDB_LIB) 306 $(LD) $(LDFLAGS) -o testspat testspat.o $(FASTDB_LIBS) $(STDLIBS) 307 308testsync.o: examples/testsync.cpp $(INCS) 309 $(CC) $(CFLAGS) examples/testsync.cpp 310 311testsync: testsync.o $(FASTDB_LIB) 312 $(LD) $(LDFLAGS) -o testsync testsync.o $(FASTDB_LIBS) $(STDLIBS) 313 314testconc.o: examples/testconc.cpp $(INCS) 315 $(CC) $(CFLAGS) examples/testconc.cpp 316 317testconc: testconc.o $(FASTDB_LIB) 318 $(LD) $(LDFLAGS) -o testconc testconc.o $(FASTDB_LIBS) $(STDLIBS) 319 320testiref.o: examples/testiref.cpp $(INCS) 321 $(CC) $(CFLAGS) examples/testiref.cpp 322 323testiref: testiref.o $(FASTDB_LIB) 324 $(LD) $(LDFLAGS) -o testiref testiref.o $(FASTDB_LIBS) $(STDLIBS) 325 326testtrav.o: examples/testtrav.cpp $(INCS) 327 $(CC) $(CFLAGS) examples/testtrav.cpp 328 329testtrav: testtrav.o $(FASTDB_LIB) 330 $(LD) $(LDFLAGS) -o testtrav testtrav.o $(FASTDB_LIBS) $(STDLIBS) 331 332 333 334install: subsql installlib 335 mkdir -p $(BINSPATH) 336 cp subsql $(BINSPATH) 337 strip $(BINSPATH)/subsql 338 339installlib: $(FASTDB_LIB) $(CLI_LIB) $(FASTDB_SHARED) $(CLI_SHARED) 340 mkdir -p $(INCSPATH) 341 cp $(INCS) $(INCSPATH) 342 mkdir -p $(LIBSPATH) 343 cp $(FASTDB_LIB) $(CLI_LIB) $(FASTDB_SHARED) $(CLI_SHARED) $(LIBSPATH) 344 cd $(LIBSPATH); ln -f -s $(FASTDB_SHARED) libfastdb$(SUFF).so 345 cd $(LIBSPATH); ln -f -s $(CLI_SHARED) libcli$(SUFF).so 346 347 348 349uninstall: 350 rm -fr $(INCSPATH) 351 cd $(LIBSPATH); rm -f $(FASTDB_LIB) $(CLI_LIB) $(FASTDB_SHARED) $(CLI_SHARED) libfastdb$(SUFF).so libcli$(SUFF).so 352 rm $(BINSPATH)/subsql 353 354cleanobj: 355 rm -fr *.o *.tgz core *~ cxx_repository 356 357cleandbs: 358 rm -f *.fdb 359 360 361clean: cleanobj cleandbs 362 rm -f *.a *.so *.so.* $(EXAMPLES) $(WEB_EXAMPLES) $(EXES) 363 364tgz: clean 365 cd ..; tar cvzf fastdb.tgz fastdb 366 367copytgz: tgz 368 mcopy -o ../fastdb.tgz a: 369