Skip to contentSkip to conversation

Make libxenstore a versioned library

PATCH New Mark McLoughlin 1 participant 1 message Jul 20, 2006

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Make libxenstore a versioned library

Hi,
Unlike libxenguest and libxenctl, libxenstore is unversioned.

Attaching a patch which rectifies that.

Cheers,
Mark.

tools/xenstore/Makefile renamed from tools/xenstore/Makefile.versioned-lib +19 -5
@@ -2,6 +2,9 @@
 include $(XEN_ROOT)/tools/Rules.mk
 XEN_LIBXC          = $(XEN_ROOT)/tools/libxc
 
+MAJOR = 3.0
+MINOR = 0
+
 INSTALL         = install
 INSTALL_DATA	= $(INSTALL) -m0644
 INSTALL_PROG    = $(INSTALL) -m0755
@@ -35,7 +38,7 @@
 XENSTORED_OBJS += $(XENSTORED_$(OS))
 
 .PHONY: all
-all: libxenstore.so xenstored $(CLIENTS) xs_tdb_dump xenstore-control xenstore-ls
+all: libxenstore.so libxenstore.a xenstored $(CLIENTS) xs_tdb_dump xenstore-control xenstore-ls
 
 test_interleaved_transactions: test_interleaved_transactions.o
 	$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -L. -lxenstore -o $@
@@ -87,12 +90,20 @@
 talloc_test.o: talloc.c
 	$(COMPILE.c) -o $@ $<
 
-libxenstore.so: xs.opic xs_lib.opic
-	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenstore.so -shared -o $@ $^ -lpthread
+libxenstore.a: xs.o xs_lib.o
+	$(AR) rc $@ $^
+
+libxenstore.so: libxenstore.so.$(MAJOR)
+	ln -sf $< $@
+libxenstore.so.$(MAJOR): libxenstore.so.$(MAJOR).$(MINOR)
+	ln -sf $< $@
+
+libxenstore.so.$(MAJOR).$(MINOR): xs.opic xs_lib.opic
+	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenstore.so.$(MAJOR) -shared -o $@ $^ -lpthread
 
 .PHONY: clean
 clean: testsuite-clean
-	rm -f *.o *.opic *.so
+	rm -f *.o *.opic *.so*
 	rm -f xenstored xs_random xs_stress xs_crashme
 	rm -f xs_test xenstored_test xs_tdb_dump xenstore-control xenstore-ls
 	rm -f $(CLIENTS)
@@ -172,7 +183,10 @@
 	$(INSTALL_PROG) xenstore-control $(DESTDIR)/usr/bin
 	$(INSTALL_PROG) xenstore-ls $(DESTDIR)/usr/bin
 	$(INSTALL_DIR) -p $(DESTDIR)/usr/$(LIBDIR)
-	$(INSTALL_LIBS) libxenstore.so $(DESTDIR)/usr/$(LIBDIR)
+	$(INSTALL_LIBS) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)
+	$(INSTALL_LIBS) libxenstore.a $(DESTDIR)/usr/$(LIBDIR)
+	ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxenstore.so.$(MAJOR)
+	ln -sf libxenstore.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxenstore.so
 	$(INSTALL_DATA) xs.h $(DESTDIR)/usr/include
 	$(INSTALL_DATA) xs_lib.h $(DESTDIR)/usr/include
 

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel