
# -*- makefile -*-
# Makefile for Generic Unix with GCC compiler

# Place where to copy GastDB header files
INCSPATH=/usr/local/gigabase/inc 

#Place where to copy Gigabase library
LIBSPATH=/usr/local/gigabase/lib

#Place where to copy Gigabase subsql utility
BINSPATH=/usr/local/gigabase/bin

OBJS = class.o compiler.o database.o hashtab.o file.o symtab.o btree.o \
	cursor.o query.o pagepool.o

INCS = gigabase.h stdtp.h class.h database.h cursor.h reference.h \
	array.h file.h hashtab.h btree.h sync.h query.h datetime.h pagepool.h

LIBS = libgigabase.a 

EXES = subsql

EXAMPLES = guess testdb testddl testperf testsync testiref testtrav testidx

CC = g++
DEFS =

CFLAGS = -c -Wall -O5 -g $(DEFS)
#CFLAGS = -c -Wall -O0 -g $(DEFS)
#CFLAGS = -c -Wall -O0 -DDEBUG=DEBUG_TRACE -g $(DEFS)

LD = $(CC)
LDFLAGS = -g

AR = ar
ARFLAGS = -cru

RANLIB = true

STDLIBS = -lm


all: $(LIBS) $(EXES) $(EXAMPLES)

class.o: class.cpp compiler.h compiler.d symtab.h $(INCS)
	$(CC) $(CFLAGS) class.cpp

compiler.o: compiler.cpp compiler.h compiler.d symtab.h $(INCS)
	$(CC) $(CFLAGS) compiler.cpp

query.o: query.cpp compiler.h compiler.d symtab.h $(INCS)
	$(CC) $(CFLAGS) query.cpp

database.o: database.cpp compiler.h compiler.d symtab.h $(INCS)
	$(CC) $(CFLAGS) database.cpp

cursor.o: cursor.cpp compiler.h compiler.d $(INCS)
	$(CC) $(CFLAGS) cursor.cpp

hashtab.o: hashtab.cpp $(INCS)
	$(CC) $(CFLAGS) hashtab.cpp

pagepool.o: pagepool.cpp $(INCS)
	$(CC) $(CFLAGS) pagepool.cpp

file.o: file.cpp $(INCS)
	$(CC) $(CFLAGS) file.cpp

symtab.o: symtab.cpp symtab.h $(INCS)
	$(CC) $(CFLAGS) symtab.cpp

btree.o: btree.cpp $(INCS)
	$(CC) $(CFLAGS) btree.cpp

libgigabase.a: $(OBJS)
	rm -f libgigabase.a
	$(AR) $(ARFLAGS) libgigabase.a $(OBJS)
	$(RANLIB) libgigabase.a

subsql.o: subsql.cpp subsql.h compiler.h compiler.d symtab.h $(INCS)
	$(CC) $(CFLAGS) subsql.cpp

subsql: subsql.o $(LIBS)
	$(LD) $(LDFLAGS) -o subsql subsql.o $(LIBS) $(STDLIBS)



guess.o: guess.cpp $(INCS)
	$(CC) $(CFLAGS) guess.cpp 

guess: guess.o $(LIBS)
	$(LD) $(LDFLAGS) -o guess guess.o $(LIBS) $(STDLIBS)

testdb.o: testdb.cpp $(INCS)
	$(CC) $(CFLAGS) testdb.cpp 

testdb: testdb.o $(LIBS)
	$(LD) $(LDFLAGS) -o testdb testdb.o $(LIBS) $(STDLIBS)

testddl.o: testddl.cpp $(INCS)
	$(CC) $(CFLAGS) testddl.cpp 

testddl: testddl.o $(LIBS)
	$(LD) $(LDFLAGS) -o testddl testddl.o $(LIBS) $(STDLIBS)

testperf.o: testperf.cpp $(INCS)
	$(CC) $(CFLAGS) testperf.cpp 

testperf: testperf.o $(LIBS)
	$(LD) $(LDFLAGS) -o testperf testperf.o $(LIBS) $(STDLIBS)

testidx.o: testidx.cpp $(INCS)
	$(CC) $(CFLAGS) testidx.cpp 

testidx: testidx.o $(LIBS)
	$(LD) $(LDFLAGS) -o testidx testidx.o $(LIBS) $(STDLIBS)

testsync.o: testsync.cpp $(INCS)
	$(CC) $(CFLAGS) testsync.cpp 

testsync: testsync.o $(LIBS)
	$(LD) $(LDFLAGS) -o testsync testsync.o $(LIBS) $(STDLIBS)

testiref.o: testiref.cpp $(INCS)
	$(CC) $(CFLAGS) testiref.cpp 

testiref: testiref.o $(LIBS)
	$(LD) $(LDFLAGS) -o testiref testiref.o $(LIBS) $(STDLIBS)

testtrav.o: testtrav.cpp $(INCS)
	$(CC) $(CFLAGS) testtrav.cpp 

testtrav: testtrav.o $(LIBS)
	$(LD) $(LDFLAGS) -o testtrav testtrav.o $(LIBS) $(STDLIBS)



install: subsql $(LIBS)
	mkdir -p $(INCSPATH)
	cp $(INCS) $(INCSPATH)
	mkdir -p $(LIBSPATH)
	cp $(LIBS) $(LIBSPATH)
	mkdir -p $(BINSPATH)
	cp subsql  $(BINSPATH)



cleanobj:
	rm -fr *.o *.tgz core *~ cxx_repository

cleandbs:
	rm -f *.dbs


clean: cleanobj cleandbs
	rm -f *.a $(EXAMPLES) $(EXES)

tgz:	clean
	cd ..; tar cvzf gigabase.tgz gigabase

copytgz: tgz
	mcopy -o ../gigabase.tgz a:
