1# -*- makefile -*- 2# Makefile for Solaris with GCC compiler 3 4FAULT_TOLERANT?=0 5DEBUG?=1 6 7# Default install directory 8PREFIX ?= /usr/local 9 10# Place where to copy FastDB header files 11INCSPATH=$(PREFIX)/include/fastdb 12 13#Place where to copy Fastdb library 14LIBSPATH=$(PREFIX)/lib 15 16#Place where to copy Fastdb subsql utility 17BINSPATH=$(PREFIX)/bin 18 19ifdef NO_PTHREADS 20OBJS = class.o compiler.o database.o xml.o hashtab.o file.o symtab.o ttree.o rtree.o container.o \ 21 cursor.o query.o wwwapi.o unisock.o sync.o localcli.o stdtp.o 22else 23OBJS = class.o compiler.o database.o xml.o hashtab.o file.o symtab.o ttree.o rtree.o container.o \ 24 cursor.o query.o wwwapi.o unisock.o sync.o localcli.o stdtp.o server.o 25endif 26 27CLI_OBJS = cli.o unisock.o repsock.o stdtp.o 28 29INCS = inc/fastdb.h inc/stdtp.h inc/config.h inc/class.h inc/database.h inc/cursor.h inc/reference.h inc/wwwapi.h \ 30 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 \ 31 inc/query.h inc/datetime.h inc/harray.h inc/rectangle.h inc/timeseries.h inc/exception.h 32 33# 34# threads settings - please comment this lines for single-threaded libs 35# 36ifdef NO_PTHREADS 37TFLAGS=-DNO_PTHREADS 38THRLIBS= 39SUFF= 40else 41TFLAGS=-pthreads 42THRLIBS=-pthreads 43SUFF=_r 44endif 45 46STDLIBS = -lm $(THRLIBS) 47SOCKLIBS = -lnsl -lsocket 48TFLAGS += -fPIC 49 50 51VERSION=2 52FASTDB_LIB = libfastdb$(SUFF).a 53FASTDB_SHARED = libfastdb$(SUFF).so.${VERSION} 54CLI_LIB = libcli$(SUFF).a 55JNI_LIB = libjnicli$(SUFF).so.${VERSION} 56CLI_SHARED = libcli$(SUFF).so.${VERSION} 57 58EXES = subsql forcerecovery cleanupsem 59#FASTDB_LIBS=-L. -lfastdb$(SUFF) 60#CLI_LIBS=-L. -lcli$(SUFF) 61FASTDB_LIBS=$(FASTDB_LIB) 62CLI_LIBS=$(CLI_LIB) 63 64EXAMPLES = guess testdb testleak testfrag testjoin testddl testperf testpar testindex testfuzzy testsync testconc testiref testtrav testidx clitest clitest2 testrect testalter testraw localclitest testharr testspat testtimeseries testwcs testtl 65 66WEB_EXAMPLES = cgistub bugdb clidb 67 68CC = g++ 69 70# DEFS macro is deprecatred, edit config.h file instead 71DEFS = -Wno-invalid-offsetof 72 73ifeq ($(DEBUG), 1) 74CFLAGS = -c -Iinc -Wall -O0 -g -fPIC $(DEFS) $(TFLAGS) 75else 76CFLAGS = -c -Iinc -Wall -O5 -g -fPIC $(DEFS) $(TFLAGS) 77endif 78 79#SHFLAGS=-shared -Wl,-soname,$@ 80SHFLAGS=-shared 81 82 83LD = $(CC) 84LDFLAGS = -g $(TFLAGS) 85 86AR = ar 87ARFLAGS = -cru 88RANLIB = true 89 90ifneq (0,$(FAULT_TOLERANT)) 91STDLIBS += $(SOCKLIBS) 92DEFS += -DREPLICATION_SUPPORT 93endif 94 95 96all: static shared bins 97 98static: $(FASTDB_LIB) $(CLI_LIB) 99 100shared: $(FASTDB_SHARED) $(CLI_SHARED) 101 102bins: $(EXES) $(EXAMPLES) 103 104www: $(FASTDB_SHARED) $(WEB_EXAMPLES) 105 106 107class.o: src/class.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 108 $(CC) $(CFLAGS) src/class.cpp 109 110compiler.o: src/compiler.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 111 $(CC) $(CFLAGS) src/compiler.cpp 112 113query.o: src/query.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 114 $(CC) $(CFLAGS) src/query.cpp 115 116database.o: src/database.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 117 $(CC) $(CFLAGS) src/database.cpp 118 119xml.o: src/xml.cpp inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 120 $(CC) $(CFLAGS) src/xml.cpp 121 122localcli.o: src/localcli.cpp inc/compiler.h inc/compiler.d inc/symtab.h inc/localcli.h $(INCS) 123 $(CC) $(CFLAGS) src/localcli.cpp 124 125cursor.o: src/cursor.cpp inc/compiler.h inc/compiler.d $(INCS) 126 $(CC) $(CFLAGS) src/cursor.cpp 127 128hashtab.o: src/hashtab.cpp $(INCS) 129 $(CC) $(CFLAGS) src/hashtab.cpp 130 131file.o: src/file.cpp $(INCS) 132 $(CC) $(CFLAGS) src/file.cpp 133 134stdtp.o: src/stdtp.cpp $(INCS) 135 $(CC) $(CFLAGS) src/stdtp.cpp 136 137sync.o: src/sync.cpp $(INCS) 138 $(CC) $(CFLAGS) src/sync.cpp 139 140symtab.o: src/symtab.cpp inc/symtab.h $(INCS) 141 $(CC) $(CFLAGS) src/symtab.cpp 142 143ttree.o: src/ttree.cpp $(INCS) 144 $(CC) $(CFLAGS) src/ttree.cpp 145 146rtree.o: src/rtree.cpp $(INCS) 147 $(CC) $(CFLAGS) src/rtree.cpp 148 149container.o: src/container.cpp $(INCS) 150 $(CC) $(CFLAGS) src/container.cpp 151 152wwwapi.o: src/wwwapi.cpp inc/wwwapi.h inc/sockio.h inc/stdtp.h inc/sync.h inc/config.h inc/sync_unix.h 153 $(CC) $(CFLAGS) src/wwwapi.cpp 154 155unisock.o: src/unisock.cpp inc/unisock.h inc/sockio.h inc/stdtp.h 156 $(CC) $(CFLAGS) src/unisock.cpp 157 158repsock.o: src/repsock.cpp inc/unisock.h inc/sockio.h inc/stdtp.h inc/sync.h inc/sync_unix.h inc/config.h 159 $(CC) $(CFLAGS) src/repsock.cpp 160 161cli.o: src/cli.cpp inc/cli.h inc/cliproto.h 162 $(CC) $(CFLAGS) src/cli.cpp 163 164$(FASTDB_LIB): $(OBJS) 165 rm -f $(FASTDB_LIB) 166 $(AR) $(ARFLAGS) $(FASTDB_LIB) $(OBJS) 167 $(RANLIB) $(FASTDB_LIB) 168 169$(FASTDB_SHARED): $(OBJS) 170 rm -f $(FASTDB_SHARED) 171 $(CC) $(SHFLAGS) -o $(FASTDB_SHARED) $(OBJS) $(THRLIBS) 172 ln -f -s $(FASTDB_SHARED) libfastdb$(SUFF).so 173 174$(CLI_LIB): $(CLI_OBJS) 175 rm -f $(CLI_LIB) 176 $(AR) $(ARFLAGS) $(CLI_LIB) $(CLI_OBJS) 177 $(RANLIB) $(CLI_LIB) 178 179$(CLI_SHARED): $(CLI_OBJS) 180 rm -f $(CLI_SHARED) 181 $(CC) $(SHFLAGS) -o $(CLI_SHARED) $(CLI_OBJS) $(THRLIBS) 182 ln -f -s $(CLI_SHARED) libcli$(SUFF).so 183 184 185clitest.o: examples/clitest.c inc/cli.h 186 $(CC) $(CFLAGS) examples/clitest.c 187 188clitest: clitest.o $(CLI_LIB) 189 $(LD) $(LDFLAGS) -o clitest clitest.o $(CLI_LIBS) $(STDLIBS) $(SOCKLIBS) 190 191clitest2.o: examples/clitest2.c inc/cli.h 192 $(CC) $(CFLAGS) examples/clitest2.c 193 194clitest2: clitest2.o $(FASTDB_LIB) 195 $(LD) $(LDFLAGS) -o clitest2 clitest2.o $(FASTDB_LIB) $(STDLIBS) 196 197testalter.o: examples/testalter.c inc/cli.h 198 $(CC) $(CFLAGS) examples/testalter.c 199 200testalter: testalter.o $(FASTDB_LIB) 201 $(LD) $(LDFLAGS) -o testalter testalter.o $(FASTDB_LIB) $(STDLIBS) 202 203localclitest: clitest.o $(FASTDB_LIB) 204 $(LD) $(LDFLAGS) -o localclitest clitest.o $(FASTDB_LIB) $(STDLIBS) 205 206testrect.o: examples/testrect.c inc/cli.h 207 $(CC) $(CFLAGS) examples/testrect.c 208 209testrect: testrect.o $(FASTDB_LIB) 210 $(LD) $(LDFLAGS) -o testrect testrect.o $(FASTDB_LIB) $(STDLIBS) 211 212subsql.o: src/subsql.cpp inc/subsql.h inc/compiler.h inc/compiler.d inc/symtab.h $(INCS) 213 $(CC) $(CFLAGS) src/subsql.cpp 214 215server.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) 216 $(CC) $(CFLAGS) src/server.cpp 217 218subsql: subsql.o $(FASTDB_LIB) 219 $(LD) $(LDFLAGS) -o subsql subsql.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 220 221bugdb.o: examples/bugdb.cpp examples/bugdb.h $(INCS) 222 $(CC) $(CFLAGS) examples/bugdb.cpp 223 224bugdb: bugdb.o $(FASTDB_LIB) 225 $(LD) $(LDFLAGS) -o bugdb bugdb.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 226 227clidb.o: examples/clidb.cpp examples/clidb.h $(INCS) 228 $(CC) $(CFLAGS) examples/clidb.cpp 229 230clidb: clidb.o $(FASTDB_LIB) 231 $(LD) $(LDFLAGS) -o clidb clidb.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 232 233cgistub.o: src/cgistub.cpp inc/stdtp.h inc/sockio.h 234 $(CC) $(CFLAGS) src/cgistub.cpp 235 236cgistub: cgistub.o 237 $(LD) $(LDFLAGS) -o cgistub cgistub.o $(FASTDB_LIBS) $(STDLIBS) $(SOCKLIBS) 238 239 240forcerecovery.o: src/forcerecovery.cpp inc/database.h 241 $(CC) $(CFLAGS) src/forcerecovery.cpp 242 243forcerecovery: forcerecovery.o 244 $(LD) $(LDFLAGS) -o forcerecovery forcerecovery.o 245 246cleanupsem.o: src/cleanupsem.cpp inc/database.h 247 $(CC) $(CFLAGS) src/cleanupsem.cpp 248 249cleanupsem: cleanupsem.o 250 $(LD) $(LDFLAGS) -o cleanupsem cleanupsem.o 251 252 253guess.o: examples/guess.cpp $(INCS) 254 $(CC) $(CFLAGS) examples/guess.cpp 255 256guess: guess.o $(FASTDB_LIB) 257 $(LD) $(LDFLAGS) -o guess guess.o $(FASTDB_LIBS) $(STDLIBS) 258 259testharr.o: examples/testharr.cpp $(INCS) 260 $(CC) $(CFLAGS) examples/testharr.cpp 261 262testharr: testharr.o $(FASTDB_LIB) 263 $(LD) $(LDFLAGS) -o testharr testharr.o $(FASTDB_LIBS) $(STDLIBS) 264 265testdb.o: examples/testdb.cpp $(INCS) 266 $(CC) $(CFLAGS) examples/testdb.cpp 267 268testdb: testdb.o $(FASTDB_LIB) 269 $(LD) $(LDFLAGS) -o testdb testdb.o $(FASTDB_LIBS) $(STDLIBS) 270 271testraw.o: examples/testraw.cpp $(INCS) 272 $(CC) $(CFLAGS) examples/testraw.cpp 273 274testraw: testraw.o $(FASTDB_LIB) 275 $(LD) $(LDFLAGS) -o testraw testraw.o $(FASTDB_LIBS) $(STDLIBS) 276 277testleak.o: examples/testleak.cpp $(INCS) 278 $(CC) $(CFLAGS) examples/testleak.cpp 279 280testleak: testleak.o $(FASTDB_LIB) 281 $(LD) $(LDFLAGS) -o testleak testleak.o $(FASTDB_LIBS) $(STDLIBS) 282 283testfrag.o: examples/testfrag.cpp $(INCS) 284 $(CC) $(CFLAGS) examples/testfrag.cpp 285 286testfrag: testfrag.o $(FASTDB_LIB) 287 $(LD) $(LDFLAGS) -o testfrag testfrag.o $(FASTDB_LIBS) $(STDLIBS) 288 289testjoin.o: examples/testjoin.cpp $(INCS) 290 $(CC) $(CFLAGS) examples/testjoin.cpp 291 292testjoin: testjoin.o $(FASTDB_LIB) 293 $(LD) $(LDFLAGS) -o testjoin testjoin.o $(FASTDB_LIBS) $(STDLIBS) 294 295testddl.o: examples/testddl.cpp $(INCS) 296 $(CC) $(CFLAGS) examples/testddl.cpp 297 298testddl: testddl.o $(FASTDB_LIB) 299 $(LD) $(LDFLAGS) -o testddl testddl.o $(FASTDB_LIBS) $(STDLIBS) 300 301testperf.o: examples/testperf.cpp $(INCS) 302 $(CC) $(CFLAGS) examples/testperf.cpp 303 304testperf: testperf.o $(FASTDB_LIB) 305 $(LD) $(LDFLAGS) -o testperf testperf.o $(FASTDB_LIBS) $(STDLIBS) 306 307testwcs.o: examples/testwcs.cpp $(INCS) 308 $(CC) $(CFLAGS) examples/testwcs.cpp 309 310testwcs: testwcs.o $(FASTDB_LIB) 311 $(LD) $(LDFLAGS) -o testwcs testwcs.o $(FASTDB_LIBS) $(STDLIBS) 312 313testpar.o: examples/testpar.cpp $(INCS) 314 $(CC) $(CFLAGS) examples/testpar.cpp 315 316testpar: testpar.o $(FASTDB_LIB) 317 $(LD) $(LDFLAGS) -o testpar testpar.o $(FASTDB_LIBS) $(STDLIBS) 318 319testindex.o: examples/testindex.cpp $(INCS) 320 $(CC) $(CFLAGS) examples/testindex.cpp 321 322testindex: testindex.o $(FASTDB_LIB) 323 $(LD) $(LDFLAGS) -o testindex testindex.o $(FASTDB_LIBS) $(STDLIBS) 324 325testspat.o: examples/testspat.cpp $(INCS) 326 $(CC) $(CFLAGS) examples/testspat.cpp 327 328testspat: testspat.o $(FASTDB_LIB) 329 $(LD) $(LDFLAGS) -o testspat testspat.o $(FASTDB_LIBS) $(STDLIBS) 330 331testtimeseries.o: examples/testtimeseries.cpp $(INCS) 332 $(CC) $(CFLAGS) examples/testtimeseries.cpp 333 334testtimeseries: testtimeseries.o $(FASTDB_LIB) 335 $(LD) $(LDFLAGS) -o testtimeseries testtimeseries.o $(FASTDB_LIBS) $(STDLIBS) 336 337testfuzzy.o: examples/testfuzzy.cpp $(INCS) 338 $(CC) $(CFLAGS) examples/testfuzzy.cpp 339 340testfuzzy: testfuzzy.o $(FASTDB_LIB) 341 $(LD) $(LDFLAGS) -o testfuzzy testfuzzy.o $(FASTDB_LIBS) $(STDLIBS) 342 343testidx.o: examples/testidx.cpp $(INCS) 344 $(CC) $(CFLAGS) examples/testidx.cpp 345 346testidx: testidx.o $(FASTDB_LIB) 347 $(LD) $(LDFLAGS) -o testidx testidx.o $(FASTDB_LIBS) $(STDLIBS) 348 349testtl.o: examples/testtl.cpp $(INCS) 350 $(CC) $(CFLAGS) examples/testtl.cpp 351 352testtl: testtl.o $(FASTDB_LIB) 353 $(LD) $(LDFLAGS) -o testtl testtl.o $(FASTDB_LIBS) $(STDLIBS) 354 355testsync.o: examples/testsync.cpp $(INCS) 356 $(CC) $(CFLAGS) examples/testsync.cpp 357 358testsync: testsync.o $(FASTDB_LIB) 359 $(LD) $(LDFLAGS) -o testsync testsync.o $(FASTDB_LIBS) $(STDLIBS) 360 361testconc.o: examples/testconc.cpp $(INCS) 362 $(CC) $(CFLAGS) examples/testconc.cpp 363 364testconc: testconc.o $(FASTDB_LIB) 365 $(LD) $(LDFLAGS) -o testconc testconc.o $(FASTDB_LIBS) $(STDLIBS) 366 367testreplic.o: examples/testreplic.cpp $(INCS) 368 $(CC) $(CFLAGS) examples/testreplic.cpp 369 370testreplic: testreplic.o $(FASTDB_LIB) 371 $(LD) $(LDFLAGS) -o testreplic testreplic.o $(FASTDB_LIBS) $(STDLIBS) 372 373testiref.o: examples/testiref.cpp $(INCS) 374 $(CC) $(CFLAGS) examples/testiref.cpp 375 376testiref: testiref.o $(FASTDB_LIB) 377 $(LD) $(LDFLAGS) -o testiref testiref.o $(FASTDB_LIBS) $(STDLIBS) 378 379testtrav.o: examples/testtrav.cpp $(INCS) 380 $(CC) $(CFLAGS) examples/testtrav.cpp 381 382testtrav: testtrav.o $(FASTDB_LIB) 383 $(LD) $(LDFLAGS) -o testtrav testtrav.o $(FASTDB_LIBS) $(STDLIBS) 384 385 386java: javacli.jar jnicli.jar $(JNI_LIB) examples/JniTestIndex.class examples/JniTestRelations.class examples/TestIndex.class examples/CliTest.class 387 388jnicli.o: jnicli/jnicli.cpp 389 $(CC) $(CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -I. jnicli/jnicli.cpp 390 391$(JNI_LIB): jnicli.o $(GB_LIB) 392 $(CC) $(SHFLAGS) -o $(JNI_LIB) jnicli.o $(FASTDB_LIB) 393 ln -f -s $(JNI_LIB) libjnicli.so 394 395javacli.jar: javacli/*.java 396 javac -g javacli/*.java 397 jar cvf javacli.jar javacli/*.class 398 javadoc -d javacli/docs -public javacli/*.java 399 400jnicli.jar: jnicli/*.java 401 javac -g jnicli/*.java 402 jar cvf jnicli.jar jnicli/*.class 403 javadoc -d jnicli/docs -public jnicli/*.java 404 405examples/JniTestIndex.class: examples/JniTestIndex.java jnicli.jar 406 javac -classpath jnicli.jar examples/JniTestIndex.java 407 408examples/JniTestRelations.class: examples/JniTestRelations.java jnicli.jar 409 javac -classpath jnicli.jar examples/JniTestRelations.java 410 411examples/CliTest.class: examples/CliTest.java javacli.jar 412 javac -classpath .;javacli.jar examples/CliTest.java 413 414examples/TestIndex.class: examples/TestIndex.java javacli.jar 415 javac -classpath .;javacli.jar examples/TestIndex.java 416 417install: subsql cleanupsem installlib 418 mkdir -p $(BINSPATH) 419 cp subsql $(BINSPATH) 420 strip $(BINSPATH)/subsql 421 cp cleanupsem $(BINSPATH) 422 strip $(BINSPATH)/cleanupsem 423 424installlib: $(FASTDB_LIB) $(CLI_LIB) $(FASTDB_SHARED) $(CLI_SHARED) 425 mkdir -p $(INCSPATH) 426 cp $(INCS) $(INCSPATH) 427 mkdir -p $(LIBSPATH) 428 cp $(FASTDB_LIB) $(CLI_LIB) $(FASTDB_SHARED) $(CLI_SHARED) $(LIBSPATH) 429 (cd $(LIBSPATH) && ln -f -s $(FASTDB_SHARED) libfastdb$(SUFF).so \ 430 && ln -f -s $(CLI_SHARED) libcli$(SUFF).so) 431 if [ -f $(JNI_LIB) ]; then cp $(JNI_LIB) $(LIBSPATH); \ 432 cd $(LIBSPATH) && ln -f -s $(JNI_LIB) libjnicli.so; fi 433 434uninstall: 435 rm -fr $(INCSPATH) 436 cd $(LIBSPATH); rm -f $(FASTDB_LIB) $(CLI_LIB) $(FASTDB_SHARED) $(CLI_SHARED) $(JNI_LIB) libfastdb$(SUFF).so libjnicli.so libcli$(SUFF).so 437 rm $(BINSPATH)/subsql 438 439cleanobj: 440 rm -fr *.o *.tgz examples/*.class javacli/*~ javacli/*.class jnicli/*~ jnicli/*.class jnicli/*.o jnicli/*.so core *~ cxx_repository 441 442cleandbs: 443 rm -f *.fdb 444 445 446clean: cleanobj cleandbs 447 rm -f *.a *.so *.so.* $(EXAMPLES) $(WEB_EXAMPLES) $(EXES) 448 449tgz: clean 450 chmod +x configure genauto.sh 451 cd ..; tar cvzf fastdb.tgz fastdb 452 453copytgz: tgz 454 mcopy -o ../fastdb.tgz a: 455