]> git.sur5r.net Git - openldap/blobdiff - libraries/liblmdb/Makefile
Setup for gcov/coverage testing
[openldap] / libraries / liblmdb / Makefile
index 7c3903bdffc4e68d5fc8af1c506de6da9d2f0831..bb0b1e8c72a37411cafc874769dd38facd096d91 100644 (file)
@@ -1,23 +1,44 @@
+# Makefile for liblmdb (Lightning memory-mapped database library).
+
+########################################################################
+# Configuration. The compiler options must enable threaded compilation.
+#
+# Preprocessor macros (for CPPFLAGS) of interest...
+# Note that the defaults should already be correct for most
+# platforms; you should not need to change any of these.
+# Read their descriptions in mdb.c if you do:
+#
+# - MDB_USE_POSIX_SEM
+# - MDB_DSYNC
+# - MDB_FDATASYNC
+# - MDB_USE_PWRITEV
+#
+# There may be other macros in mdb.c of interest. You should
+# read mdb.c before changing any of them.
+#
 CC     = gcc
 W      = -W -Wall -Wno-unused-parameter -Wbad-function-cast
+THREADS = -pthread
 OPT = -O2 -g
-CFLAGS = -pthread $(OPT) $(W) $(XCFLAGS)
+CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS)
 LDLIBS =
 SOLIBS =
 prefix = /usr/local
 
+########################################################################
+
 IHDRS  = lmdb.h
 ILIBS  = liblmdb.a liblmdb.so
-IPROGS = mdb_stat mdb_copy
-IDOCS  = mdb_stat.1 mdb_copy.1
+IPROGS = mdb_stat mdb_copy mdb_dump mdb_load
+IDOCS  = mdb_stat.1 mdb_copy.1 mdb_dump.1 mdb_load.1
 PROGS  = $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5
 all:   $(ILIBS) $(PROGS)
 
 install: $(ILIBS) $(IPROGS) $(IHDRS)
-       cp $(IPROGS) $(DESTDIR)$(prefix)/bin
-       cp $(ILIBS) $(DESTDIR)$(prefix)/lib
-       cp $(IHDRS) $(DESTDIR)$(prefix)/include
-       cp $(IDOCS) $(DESTDIR)$(prefix)/man/man1
+       for f in $(IPROGS); do cp $$f $(DESTDIR)$(prefix)/bin; done
+       for f in $(ILIBS); do cp $$f $(DESTDIR)$(prefix)/lib; done
+       for f in $(IHDRS); do cp $$f $(DESTDIR)$(prefix)/include; done
+       for f in $(IDOCS); do cp $$f $(DESTDIR)$(prefix)/man/man1; done
 
 clean:
        rm -rf $(PROGS) *.[ao] *.so *~ testdb
@@ -30,10 +51,13 @@ liblmdb.a:  mdb.o midl.o
        ar rs $@ mdb.o midl.o
 
 liblmdb.so:    mdb.o midl.o
+#      $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS)
        $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.o midl.o $(SOLIBS)
 
 mdb_stat: mdb_stat.o liblmdb.a
 mdb_copy: mdb_copy.o liblmdb.a
+mdb_dump: mdb_dump.o liblmdb.a
+mdb_load: mdb_load.o liblmdb.a
 mtest:    mtest.o    liblmdb.a
 mtest2:        mtest2.o liblmdb.a
 mtest3:        mtest3.o liblmdb.a
@@ -52,3 +76,18 @@ midl.o: midl.c midl.h
 
 %.o:   %.c lmdb.h
        $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+
+coverage: xmtest
+       -rm -rf testdb; mkdir testdb
+       ./xmtest
+       gcov xmdb.c
+       gcov xmidl.c
+
+xmtest:        mtest.o xmdb.o xmidl.o
+       gcc -o xmtest mtest.o xmdb.o xmidl.o -pthread -fprofile-arcs -ftest-coverage
+
+xmdb.o: mdb.c lmdb.h midl.h
+       $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -O0 -fprofile-arcs -ftest-coverage -c mdb.c -o $@
+
+xmidl.o: midl.c midl.h
+       $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -O0 -fprofile-arcs -ftest-coverage -c midl.c -o $@