[dconf] Tweak shared library installation



commit cb0ba1707abac22794c86b845c936c4947b5dd9e
Author: Ryan Lortie <desrt desrt ca>
Date:   Sun Aug 8 11:26:29 2010 -0400

    Tweak shared library installation
    
    ldconfig gets angry if it finds the soname not to be a symlink.
    
    So, install libdconf.so.0.0.0 and symlink libdconf.so.0 to that.

 client/.gitignore  |    1 +
 client/Makefile.am |   25 +++++++++++++++----------
 2 files changed, 16 insertions(+), 10 deletions(-)
---
diff --git a/client/.gitignore b/client/.gitignore
index bb66dd5..6b4b55c 100644
--- a/client/.gitignore
+++ b/client/.gitignore
@@ -4,3 +4,4 @@ dconf-client.c
 *.deps
 libdconf.so
 libdconf.so.0
+libdconf.so.0.0.0
diff --git a/client/Makefile.am b/client/Makefile.am
index 4677a48..bb07ec0 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -1,7 +1,7 @@
 if HAVE_INTROSPECTION
 include $(INTROSPECTION_MAKEFILE)
 
-dconf-1.0.gir: libdconf.so
+dconf-1.0.gir: libdconf.so.0 libdconf.so
 dconf_1_0_gir_INCLUDES = Gio-2.0
 dconf_1_0_gir_CFLAGS = $(INCLUDES)
 dconf_1_0_gir_LIBS = dconf
@@ -20,27 +20,32 @@ AM_CFLAGS = -std=c89 -Wall -Wmissing-prototypes -Wwrite-strings -D__dconf_h__ -f
 INCLUDES = -I$(top_srcdir)/common -I$(top_srcdir)/gvdb -I$(top_srcdir)/engine $(gio_CFLAGS)
 
 shlibdir=$(libdir)
-shlib_PROGRAMS = libdconf.so.0
-noinst_DATA = libdconf.so
+shlib_PROGRAMS = libdconf.so.0.0.0
+nodist_noinst_DATA = libdconf.so.0 libdconf.so
 
-libdconf.so: libdconf.so.0
-	ln -fs libdconf.so.0 libdconf.so
+libdconf.so.0 libdconf.so: libdconf.so.0.0.0
+	$(AM_V_GEN) ln -fs libdconf.so.0.0.0 $@
 
 install-data-hook:
-	ln -fs libdconf.so.0 $(DESTDIR)$(shlibdir)/libdconf.so
+	ln -fs libdconf.so.0.0.0 $(DESTDIR)$(shlibdir)/libdconf.so.0
+	ln -fs libdconf.so.0.0.0 $(DESTDIR)$(shlibdir)/libdconf.so
+
+uninstall-hook:
+	rm -f $(DESTDIR)$(shlibdir)/libdconf.so.0
+	rm -f $(DESTDIR)$(shlibdir)/libdconf.so
 
 dconfinclude_HEADERS = \
 	dconf-client.h	\
 	dconf.h
 
-libdconf_so_0_LDFLAGS = -shared -Wl,-soname=libdconf.so.0 $(gio_LIBS)
-libdconf_so_0_SOURCES = \
+libdconf_so_0_0_0_LDFLAGS = -shared -Wl,-soname=libdconf.so.0 $(gio_LIBS)
+libdconf_so_0_0_0_SOURCES = \
 	../common/dconf-shmdir.c	\
 	../common/dconf-paths.c		\
 	../engine/dconf-engine.c	\
 	../gvdb/gvdb-reader.c		\
 	dconf-client.vala engine.vapi
-libdconf_so_0_VALAFLAGS = --library dconf --pkg=gio-2.0
+libdconf_so_0_0_0_VALAFLAGS = --library dconf --pkg=gio-2.0
 
 EXTRA_DIST = dconf.vapi extra-docs.c
 dconf.vapi: libdconf.so.0
@@ -54,4 +59,4 @@ vapidir = $(datadir)/vala/vapi
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = dconf.pc
 
-CLEANFILES = $(dist_gir_DATA) $(typelib_DATA) dconf.deps
+CLEANFILES = $(dist_gir_DATA) $(typelib_DATA) dconf.deps libdconf.so.0 libdconf.so



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]