Group :: System/Libraries
RPM: liblmdb
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: liblmdb-0.9.18-alt-deb-add-soname-fix-install.patch
Download
Download
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 $<