+#!gmake
#
# Makefile for tdb directory
#
-CFLAGS = -Iinclude @CFLAGS@
CC = @CC@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
includedir = @includedir@
libdir = @libdir@
+VPATH = @srcdir@:@libreplacedir@
+srcdir = @srcdir@
+builddir = @builddir@
+CFLAGS = -I$(srcdir)/include -Iinclude -I@libreplacedir@ @CFLAGS@
PROGS = bin/tdbtool bin/tdbtorture
-TDB_OBJ = common/tdb.o common/dump.o common/io.o common/lock.o \
- common/open.o common/traverse.o common/freelist.o common/error.o \
- common/transaction.o
+TDB_OBJ = @TDBOBJ@ @LIBREPLACEOBJ@
-all: $(PROGS)
+DIRS = lib bin common tools examples
+
+all: dirs $(PROGS)
.c.o:
@echo Compiling $*.c
+ @mkdir -p `dirname $@`
@$(CC) $(CFLAGS) -c $< -o $@
+dirs:
+ @mkdir -p $(DIRS)
+
install: all
mkdir -p $(bindir)
mkdir -p $(includedir)
- mkdir -p $(libdir)
+ mkdir -p $(libdir)
+ mkdir -p $(libdir)/pkgconfig
cp $(PROGS) $(bindir)
- cp include/tdb.h $(includedir)
+ cp $(srcdir)/include/tdb.h $(includedir)
cp tdb.pc $(libdir)/pkgconfig
-bin/tdbtest: tools/tdbtest.o $(TDB_OBJ)
- $(CC) $(CFLAGS) -o bin/tdbtest tools/tdbtest.o $(TDB_OBJ) -lgdbm
+libtdb.a: $(TDB_OBJ)
+ ar -rv libtdb.a $(TDB_OBJ)
+
+bin/tdbtest: tools/tdbtest.o libtdb.a
+ $(CC) $(CFLAGS) -o bin/tdbtest tools/tdbtest.o -L. -ltdb -lgdbm
-bin/tdbtool: tools/tdbtool.o $(TDB_OBJ)
- $(CC) $(CFLAGS) -o bin/tdbtool tools/tdbtool.o $(TDB_OBJ)
+bin/tdbtool: tools/tdbtool.o libtdb.a
+ $(CC) $(CFLAGS) -o bin/tdbtool tools/tdbtool.o -L. -ltdb
-bin/tdbtorture: tools/tdbtorture.o $(TDB_OBJ)
- $(CC) $(CFLAGS) -o bin/tdbtorture tools/tdbtorture.o $(TDB_OBJ)
+bin/tdbtorture: tools/tdbtorture.o libtdb.a
+ $(CC) $(CFLAGS) -o bin/tdbtorture tools/tdbtorture.o -L. -ltdb
-bin/tdbdump: tools/tdbdump.o $(TDB_OBJ)
- $(CC) $(CFLAGS) -o bin/tdbdump tools/tdbdump.o $(TDB_OBJ)
+bin/tdbdump: tools/tdbdump.o libtdb.a
+ $(CC) $(CFLAGS) -o bin/tdbdump tools/tdbdump.o -L. -ltdb
-bin/tdbbackup: tools/tdbbackup.o $(TDB_OBJ)
- $(CC) $(CFLAGS) -o bin/tdbbackup tools/tdbbackup.o $(TDB_OBJ)
+bin/tdbbackup: tools/tdbbackup.o libtdb.a
+ $(CC) $(CFLAGS) -o bin/tdbbackup tools/tdbbackup.o -L. -ltdb
clean:
rm -f $(PROGS) common/*.o tools/*.o *~ *.bak */*~ */*.bak *% core test.db test.tdb test.gdbm