# Patch the main Makefile to allow for a build that complies to packaging guidelines. diff -up lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile.orig lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile --- lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile.orig 2015-11-30 17:55:33.000000000 +0100 +++ lmdb-LMDB_0.9.17/libraries/liblmdb/Makefile 2015-12-03 09:31:02.901378809 +0100 @@ -26,13 +26,17 @@ OPT = -O2 -g CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS) LDLIBS = SOLIBS = +SOVERSION = 0.0.0 prefix = /usr/local -mandir = $(prefix)/man +binprefix = $(prefix)/bin +libprefix = $(prefix)/lib +includeprefix = $(prefix)/include +manprefix = $(prefix)/man ######################################################################## IHDRS = lmdb.h -ILIBS = liblmdb.a liblmdb.so +ILIBS = liblmdb.so liblmdb.so.$(SOVERSION) 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 @@ -43,13 +47,13 @@ install: $(ILIBS) $(IPROGS) $(IHDRS) mkdir -p $(DESTDIR)$(prefix)/lib mkdir -p $(DESTDIR)$(prefix)/include mkdir -p $(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)$(mandir)/man1; done + for f in $(IPROGS); do cp -a $$f $(DESTDIR)$(binprefix); done + for f in $(ILIBS); do cp -a $$f $(DESTDIR)$(libprefix); done + for f in $(IHDRS); do cp -a $$f $(DESTDIR)$(includeprefix); done + for f in $(IDOCS); do cp -a $$f $(DESTDIR)$(manprefix)/man1; done clean: - rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb + rm -rf $(PROGS) *.[ao] *.[ls]o* *~ testdb test: all rm -rf testdb && mkdir testdb @@ -58,20 +62,24 @@ test: all liblmdb.a: mdb.o midl.o $(AR) rs $@ mdb.o midl.o -liblmdb.so: mdb.lo midl.lo +liblmdb.so: liblmdb.so.$(SOVERSION) + rm -f $@ + ln -s $< $@ + +liblmdb.so.$(SOVERSION): mdb.lo midl.lo # $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS) - $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS) + $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -o $@ mdb.lo midl.lo $(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 -mtest4: mtest4.o liblmdb.a -mtest5: mtest5.o liblmdb.a -mtest6: mtest6.o liblmdb.a +mdb_stat: mdb_stat.o liblmdb.so +mdb_copy: mdb_copy.o liblmdb.so +mdb_dump: mdb_dump.o liblmdb.so +mdb_load: mdb_load.o liblmdb.so +mtest: mtest.o liblmdb.so +mtest2: mtest2.o liblmdb.so +mtest3: mtest3.o liblmdb.so +mtest4: mtest4.o liblmdb.so +mtest5: mtest5.o liblmdb.so +mtest6: mtest6.o liblmdb.so mdb.o: mdb.c lmdb.h midl.h $(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c