diff --git a/libraries/liblmdb/Makefile b/libraries/liblmdb/Makefile index 0940c49..d3d56fe 100644 --- a/libraries/liblmdb/Makefile +++ b/libraries/liblmdb/Makefile @@ -27,10 +27,11 @@ OPT = -O2 -g LDLIBS = SOLIBS = SOEXT = .so -prefix = /usr/local +SOVER = 0 +prefix = /usr exec_prefix = $(prefix) bindir = $(exec_prefix)/bin -libdir = $(exec_prefix)/lib +libdir ?= $(exec_prefix)/lib includedir = $(prefix)/include datarootdir = $(prefix)/share mandir = $(datarootdir)/man @@ -38,7 +39,7 @@ mandir = $(datarootdir)/man ######################################################################## IHDRS = lmdb.h -ILIBS = liblmdb.a liblmdb$(SOEXT) +ILIBS = liblmdb.a liblmdb$(SOEXT) liblmdb$(SOEXT).$(SOVER) liblmdb$(SOEXT).$(SOVER).0.0 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 @@ -49,35 +50,41 @@ install: $(ILIBS) $(IPROGS) $(IHDRS) mkdir -p $(DESTDIR)$(libdir) mkdir -p $(DESTDIR)$(includedir) mkdir -p $(DESTDIR)$(mandir)/man1 - for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done - for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done - for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done - for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done + for f in $(IPROGS); do cp -pP $$f $(DESTDIR)$(bindir); done + for f in $(ILIBS); do cp -pP $$f $(DESTDIR)$(libdir); done + for f in $(IHDRS); do cp -pP $$f $(DESTDIR)$(includedir); done + for f in $(IDOCS); do cp -pP $$f $(DESTDIR)$(mandir)/man1; done clean: - rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb + rm -rf $(PROGS) *.[ao] *.[ls]o *.[ls]o.* *~ testdb test: all rm -rf testdb && mkdir testdb - ./mtest && ./mdb_stat testdb + LD_LIBRARY_PATH=$(CURDIR) ./mtest && LD_LIBRARY_PATH=$(CURDIR) ./mdb_stat testdb liblmdb.a: mdb.o midl.o $(AR) rs $@ mdb.o midl.o -liblmdb$(SOEXT): mdb.lo midl.lo +liblmdb$(SOEXT).$(SOVER).0.0: 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) - -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 + $(CC) $(LDFLAGS) -fPIC -Wl,-soname,liblmdb.so.$(SOVER) -pthread -Wl,-Bsymbolic -shared -o $@ mdb.lo midl.lo $(SOLIBS) + +liblmdb.so.$(SOVER): liblmdb.so.$(SOVER).0.0 + ln -s $< $@ + +liblmdb.so: liblmdb.so.$(SOVER) + ln -s $< $@ + +mdb_stat: mdb_stat.o liblmdb.so.$(SOVER) +mdb_copy: mdb_copy.o liblmdb.so.$(SOVER) +mdb_dump: mdb_dump.o liblmdb.so.$(SOVER) +mdb_load: mdb_load.o liblmdb.so.$(SOVER) +mtest: mtest.o liblmdb.so.$(SOVER) +mtest2: mtest2.o liblmdb.so.$(SOVER) +mtest3: mtest3.o liblmdb.so.$(SOVER) +mtest4: mtest4.o liblmdb.so.$(SOVER) +mtest5: mtest5.o liblmdb.so.$(SOVER) +mtest6: mtest6.o liblmdb.so.$(SOVER) mdb.o: mdb.c lmdb.h midl.h $(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c @@ -92,7 +99,7 @@ midl.lo: midl.c midl.h $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c midl.c -o $@ %: %.o - $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@ + $(CC) $(CFLAGS) $(LDFLAGS) $< -L$(CURDIR) -llmdb $(LDLIBS) -o $@ %.o: %.c lmdb.h $(CC) $(CFLAGS) $(CPPFLAGS) -c $<