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