include /env.mak

WITH_BTREE=y
WITH_HASH=n
WITH_RECNO=n

SUBDIRS-$(WITH_BTREE)+=btree
SUBDIRS-$(WITH_HASH)+=hash
SUBDIRS-$(WITH_RECNO)+=recno
SUBDIRS=db mpool
SUBDIRS+=$(SUBDIRS-y)


DEFS=-D__DBINTERFACE_PRIVATE
DEFS+= $(shell echo $(addprefix -DWITH_,$(SUBDIRS-y)) | tr "[a-z]" "[A-Z]")
INCS = $(addprefix -I./,$(SUBDIRS))

CFLAGS := -I./include $(CFLAGS) -O2 -pipe -Wall ${DEFS} ${INCS} -g -Wshadow -Wredundant-decls -Wpointer-arith -fno-strict-aliasing -Wcast-align -Wconversion

SRCS=

include $(addsuffix /Makefile,$(SUBDIRS))

OBJS=${SRCS:.c=.o}
LIBOBJLIST=$(SRCS:%.c=$(CURDIR)/%.o)

LIB=bdb
SHLIB_MAJOR=1

LIBRARIES=lib$(LIB).a
LIBRARIES+=lib$(LIB).so.$(SHLIB_MAJOR)

.PHONY: all clean
.SUFFIXES: .c .o

.c.o:
	${CC} ${CFLAGS} -fPIC -DPIC -c -o $*.o $?

all: $(LIBRARIES)

lib$(LIB).a: $(OBJS)
	rm -f $@ lib$(LIB).a.cachelist
	$(AR) $(ARFLAGS) $@ $^
	$(RANLIB) $@
	@for i in $^; do \
		echo $(ToolChainSysRoot)$(CURDIR)/$$i >> lib$(LIB).a.cachelist; \
	done


lib$(LIB).so.$(SHLIB_MAJOR): $(OBJS)
	rm -f $@
	$(CC) -Wl,-O1 -Wl,-nostdlib -Wl,-x -shared -Wl,-soname,$@ -shared -o $@ $^
	ln -sf $@ lib$(LIB).so

clean:
	rm -f $(LIBRARIES) lib$(LIB).so $(OBJS) $(SOBJS)

install:
	[ -d $(DESTDIR)/lib ] || install -d $(DESTDIR)/lib
	install -c -m 644 lib$(LIB).so.$(SHLIB_MAJOR) $(DESTDIR)/lib/lib$(LIB).so
#ifndef	NOSTRIP
	$(STRIP) $(DESTDIR)/lib/lib$(LIB).so
#endif
