CFLAGS = -pthread $(OPT) $(W) $(XCFLAGS)
LDLIBS =
-all: mtest mdb_stat
+PROGS = mdb_stat mtest mtest2 mtest3
+all: libmdb.a libmdb.so $(PROGS)
clean:
- rm -f mtest mdb_stat *.[ao] *~ testdb
+ rm -rf $(PROGS) *.[ao] *.so *~ testdb
test: all
+ mkdir testdb
./mtest && ./mdb_stat testdb
-mdb_stat: mdb_stat.o mdb.o idl.o
-mtest: mtest.o mdb.o idl.o
+libmdb.a: mdb.o midl.o
+ ar rs $@ mdb.o midl.o
-%: %.o mdb.o
+libmdb.so: mdb.o midl.o
+ gcc -shared -o $@ mdb.o midl.o
+
+mdb_stat: mdb_stat.o libmdb.a
+mtest: mtest.o libmdb.a
+mtest2: mtest2.o libmdb.a
+mtest3: mtest3.o libmdb.a
+
+mdb.o: mdb.c mdb.h midl.h
+ $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c mdb.c
+
+midl.o: midl.c midl.h
+ $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c midl.c
+
+%: %.o
$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
%.o: %.c mdb.h