[Spread-cvs] commit: r398 - in trunk: . daemon libspread

jonathan at spread.org jonathan at spread.org
Mon Mar 10 00:50:29 EDT 2008


Author: jonathan
Date: 2008-03-10 00:50:28 -0400 (Mon, 10 Mar 2008)
New Revision: 398

Modified:
   trunk/configure
   trunk/configure.in
   trunk/daemon/Changelog
   trunk/libspread/Makefile.in
Log:
Set a version number and soname/install_name for all released spread libraries. 
Tested for linux (2.6) and Mac OS X (10.5), but may need tweaks for other 
platforms with unusual approaches to shared libraries. 


Modified: trunk/configure
===================================================================
--- trunk/configure	2008-03-07 18:34:30 UTC (rev 397)
+++ trunk/configure	2008-03-10 04:50:28 UTC (rev 398)
@@ -697,6 +697,8 @@
 LIBSPSO
 LIBSPCORESO
 LIBTSPCORESO
+SHLDOPTION
+SHLDNAME
 SHLDCONVERTSTATIC
 SHLDCONVERTSTATICEND
 LIBOBJS
@@ -9911,11 +9913,13 @@
 case "$host" in
 *-*-darwin*)
 	SHCC=$CC
-	SHCFLAGS="$CFLAGS -fPIC"
+	SHCFLAGS="$CFLAGS -fPIC -fno-common"
 	SHCPPFLAGS="$CPPFLAGS"
 	SHLD="$CC -dynamiclib"
 	SHLDFLAGS="$SHLDFLAGS $LDFLAGS"
 	SHLIBS=$LIBS
+	SHLDOPTION="-Wl,"
+	SHLDNAME="-headerpad_max_install_names -install_name "
 	SHLDCONVERTSTATIC=
 	SHLDCONVERTSTATICEND=
 	LIBSPSO="libspread.dylib"
@@ -9934,6 +9938,8 @@
 	SHLD="$CC -shared"
 	SHLDFLAGS="$SHLDFLAGS $LDFLAGS"
 	SHLIBS=$LIBS
+	SHLDOPTION="-Wl,"
+	SHLDNAME="-soname,"
 	SHLDCONVERTSTATIC="-Wl,-whole-archive"
 	SHLDCONVERTSTATICEND="-Wl,-no-whole-archive"
 	LIBSPSO="libspread.so"
@@ -9954,6 +9960,8 @@
 
 
 
+
+
 echo "Spread srcdir: $srcdir"
 
 if test ! "$srcdir" = "." ; then
@@ -10681,13 +10689,15 @@
 LIBSPSO!$LIBSPSO$ac_delim
 LIBSPCORESO!$LIBSPCORESO$ac_delim
 LIBTSPCORESO!$LIBTSPCORESO$ac_delim
+SHLDOPTION!$SHLDOPTION$ac_delim
+SHLDNAME!$SHLDNAME$ac_delim
 SHLDCONVERTSTATIC!$SHLDCONVERTSTATIC$ac_delim
 SHLDCONVERTSTATICEND!$SHLDCONVERTSTATICEND$ac_delim
 LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 89; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 91; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

Modified: trunk/configure.in
===================================================================
--- trunk/configure.in	2008-03-07 18:34:30 UTC (rev 397)
+++ trunk/configure.in	2008-03-10 04:50:28 UTC (rev 398)
@@ -718,11 +718,13 @@
 case "$host" in
 *-*-darwin*)
 	SHCC=$CC
-	SHCFLAGS="$CFLAGS -fPIC"
+	SHCFLAGS="$CFLAGS -fPIC -fno-common"
 	SHCPPFLAGS="$CPPFLAGS"
 	SHLD="$CC -dynamiclib"
 	SHLDFLAGS="$SHLDFLAGS $LDFLAGS"
-	SHLIBS=$LIBS	
+	SHLIBS=$LIBS
+	SHLDOPTION="-Wl,"
+	SHLDNAME="-headerpad_max_install_names -install_name "
 	SHLDCONVERTSTATIC=
 	SHLDCONVERTSTATICEND=
 	LIBSPSO="libspread.dylib"
@@ -741,6 +743,8 @@
 	SHLD="$CC -shared"
 	SHLDFLAGS="$SHLDFLAGS $LDFLAGS"
 	SHLIBS=$LIBS
+	SHLDOPTION="-Wl,"
+	SHLDNAME="-soname,"
 	SHLDCONVERTSTATIC="-Wl,-whole-archive"
 	SHLDCONVERTSTATICEND="-Wl,-no-whole-archive"
 	LIBSPSO="libspread.so"
@@ -758,6 +762,8 @@
 AC_SUBST(LIBSPSO)
 AC_SUBST(LIBSPCORESO)
 AC_SUBST(LIBTSPCORESO)
+AC_SUBST(SHLDOPTION)
+AC_SUBST(SHLDNAME)
 AC_SUBST(SHLDCONVERTSTATIC)
 AC_SUBST(SHLDCONVERTSTATICEND)
 

Modified: trunk/daemon/Changelog
===================================================================
--- trunk/daemon/Changelog	2008-03-07 18:34:30 UTC (rev 397)
+++ trunk/daemon/Changelog	2008-03-10 04:50:28 UTC (rev 398)
@@ -1,3 +1,13 @@
+Mon Mar 10 00:45:21 2008  Jonathan Stanton  <jonathan at cnds.jhu.edu>
+
+	* configure.in, libspread/Makefile.in: Add version number 
+	support to spread libraries. Set the soname (on unix) for libspread.so, 
+	libspread-core.so, and libtspread-core.so. For Mac OS X, set the
+	install_name, current_version, and compatibility_version for each
+	library. This may change the filenames and version number of the libraries
+	on some platforms and may need tweaking to support non-gcc compilers
+	or platforms with unusual shared library approaches. 
+
 Fri Mar  7 13:32:49 2008  Jonathan Stanton  <jonathan at spreadconcepts.com>
 
 	* config_gram.l, config_parse.y: Add SECURITY type of Event

Modified: trunk/libspread/Makefile.in
===================================================================
--- trunk/libspread/Makefile.in	2008-03-07 18:34:30 UTC (rev 397)
+++ trunk/libspread/Makefile.in	2008-03-10 04:50:28 UTC (rev 398)
@@ -25,9 +25,12 @@
 
 #Shared Library version -- Must be changed upon each release 
 #Rules: major  -- inc for incompatible change
-#     : minor  -- inc for bugfix or forward compatible change
+#     : minor  -- inc for backwards compatible change (add new api, but not break or remove old one)
+#     : bugfix -- inc for bugfix that is fully compatible
 
-LIBVERSION=2.0
+LIBFULLVERSION=2.0.0
+LIBCOMPATVERSION=2.0
+LIBVERSION=2
 
 PATHS= 
 
@@ -55,6 +58,8 @@
 SHCPPFLAGS=@SHCPPFLAGS@ -I$(top_srcdir)/daemon -I../daemon -I$(top_srcdir)/include $(FLUSH_INC_DIR) 
 SHLDFLAGS=@SHLDFLAGS@
 SHLIBS=@SHLIBS@
+SHLDOPTION=@SHLDOPTION@
+SHLDNAME=@SHLDNAME@
 SHLDCONVERTSTATIC=@SHLDCONVERTSTATIC@
 SHLDCONVERTSTATICEND=@SHLDCONVERTSTATICEND@
 RANLIB=@RANLIB@
@@ -113,38 +118,52 @@
 	$(RANLIB) $@
 
 libspread-core.dylib:	$(LIBSP_SHOBJS)
-	$(SHLD) -o libspread-core.$(LIBVERSION).dylib $(LIBSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS)
-	$(SOFTLINK) -f libspread-core.$(LIBVERSION).dylib $@
+	$(SHLD) -o libspread-core.$(LIBFULLVERSION).dylib $(LIBSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS) $(SHLDNAME)libspread-core.$(LIBVERSION).dylib  -current_version $(LIBFULLVERSION) -compatibility_version $(LIBCOMPATVERSION)
+	$(SOFTLINK) -f libspread-core.$(LIBFULLVERSION).dylib $@
 
 install-libspread-core.dylib:	libspread-core.dylib
-	$(INSTALL) -m 0755 libspread-core.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libspread-core.$(LIBVERSION).dylib
-	(cd $(DESTDIR)$(libdir); $(SOFTLINK) -f libspread-core.$(LIBVERSION).dylib libspread-core.dylib)
+	$(INSTALL) -m 0755 libspread-core.$(LIBFULLVERSION).dylib $(DESTDIR)$(libdir)/libspread-core.$(LIBFULLVERSION).dylib
+	(cd $(DESTDIR)$(libdir); \
+		$(SOFTLINK) -f libspread-core.$(LIBFULLVERSION).dylib libspread-core.dylib; \
+		$(SOFTLINK) -f libspread-core.$(LIBFULLVERSION).dylib libspread-core.$(LIBVERSION).dylib; \
+		install_name_tool -id $(DESTDIR)$(libdir)/libspread-core.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libspread-core.$(LIBFULLVERSION).dylib \
+	)
 
 libspread-core.so:	$(LIBSP_SHOBJS)
-	$(SHLD) -o $@ $(LIBSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS)
+	$(SHLD) -o $@ $(LIBSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS) $(SHLDOPTION)$(SHLDNAME)$@.$(LIBVERSION)
 
 install-libspread-core.so:	libspread-core.so
-	$(INSTALL) -m 0755 libspread-core.so $(DESTDIR)$(libdir)/libspread-core.so.$(LIBVERSION)
-	(cd $(DESTDIR)$(libdir); $(SOFTLINK) -f libspread-core.so.$(LIBVERSION) libspread-core.so)
+	$(INSTALL) -m 0755 libspread-core.so $(DESTDIR)$(libdir)/libspread-core.so.$(LIBFULLVERSION)
+	(cd $(DESTDIR)$(libdir); \
+		$(SOFTLINK) -f libspread-core.so.$(LIBFULLVERSION) libspread-core.so; \
+		$(SOFTLINK) -f libspread-core.so.$(LIBFULLVERSION) libspread-core.so.$(LIBVERSION) \
+	)
 
 libtspread-core.a: $(LIBTSP_OBJS)
 	$(AR) rv $@ $(LIBTSP_OBJS)
 	$(RANLIB) $@
 
 libtspread-core.dylib:	$(LIBTSP_SHOBJS)
-	$(SHLD) -o libtspread-core.$(LIBVERSION).dylib $(LIBTSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS) $(THLIBS)
-	$(SOFTLINK) -f libtspread-core.$(LIBVERSION).dylib $@
+	$(SHLD) -o libtspread-core.$(LIBFULLVERSION).dylib $(LIBTSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS) $(THLIBS) $(SHLDNAME)libtspread-core.$(LIBVERSION).dylib  -current_version $(LIBFULLVERSION) -compatibility_version $(LIBCOMPATVERSION)
+	$(SOFTLINK) -f libtspread-core.$(LIBFULLVERSION).dylib $@
 
 install-libtspread-core.dylib:	libtspread-core.dylib
-	$(INSTALL) -m 0755 libtspread-core.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libtspread-core.$(LIBVERSION).dylib
-	(cd $(DESTDIR)$(libdir); $(SOFTLINK) -f libtspread-core.$(LIBVERSION).dylib libtspread-core.dylib)
+	$(INSTALL) -m 0755 libtspread-core.$(LIBFULLVERSION).dylib $(DESTDIR)$(libdir)/libtspread-core.$(LIBFULLVERSION).dylib
+	(cd $(DESTDIR)$(libdir); \
+		$(SOFTLINK) -f libtspread-core.$(LIBFULLVERSION).dylib libtspread-core.dylib; \
+		$(SOFTLINK) -f libtspread-core.$(LIBFULLVERSION).dylib libtspread-core.$(LIBVERSION).dylib; \
+		install_name_tool -id $(DESTDIR)$(libdir)/libtspread-core.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libtspread-core.$(LIBFULLVERSION).dylib \
+	)
 
 libtspread-core.so:	$(LIBTSP_SHOBJS)
-	$(SHLD) -o $@ $(LIBTSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS) $(THLIBS)
+	$(SHLD) -o $@ $(LIBTSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS) $(THLIBS) $(SHLDOPTION)$(SHLDNAME)$@.$(LIBVERSION)
 
 install-libtspread-core.so:	libtspread-core.so
-	$(INSTALL) -m 0755 libtspread-core.so $(DESTDIR)$(libdir)/libtspread-core.so.$(LIBVERSION)
-	(cd $(DESTDIR)$(libdir); $(SOFTLINK) -f libtspread-core.so.$(LIBVERSION) libtspread-core.so)
+	$(INSTALL) -m 0755 libtspread-core.so $(DESTDIR)$(libdir)/libtspread-core.so.$(LIBFULLVERSION)
+	(cd $(DESTDIR)$(libdir); \
+		$(SOFTLINK) -f libtspread-core.so.$(LIBFULLVERSION) libtspread-core.so; \
+		$(SOFTLINK) -f libtspread-core.so.$(LIBFULLVERSION) libtspread-core.so.$(LIBVERSION) \
+	)
 
 # Full Spread library with Fl_, SP_, and support modules linked in
 libspread.a: $(LIBTFL_OBJS) ../stdutil/lib/libstdutil-threaded-release.a
@@ -154,19 +173,26 @@
 	$(RANLIB) $@
 
 libspread.dylib:	$(LIBTFL_SHOBJS)
-	$(SHLD) -o libspread.$(LIBVERSION).dylib $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) ../stdutil/lib/libstdutil-threaded-release.a $(SHLDCONVERTSTATICEND) $(SHLIBS) $(THLIBS)
-	$(SOFTLINK) -f libspread.$(LIBVERSION).dylib $@
+	$(SHLD) -o libspread.$(LIBFULLVERSION).dylib $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) ../stdutil/lib/libstdutil-threaded-release.a $(SHLDCONVERTSTATICEND) $(SHLIBS) $(THLIBS) $(SHLDNAME)libspread.$(LIBVERSION).dylib  -current_version $(LIBFULLVERSION) -compatibility_version $(LIBCOMPATVERSION)
+	$(SOFTLINK) -f libspread.$(LIBFULLVERSION).dylib $@
 
 install-libspread.dylib:	libspread.dylib
-	$(INSTALL) -m 0755 libspread.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libspread.$(LIBVERSION).dylib
-	(cd $(DESTDIR)$(libdir); $(SOFTLINK) -f libspread.$(LIBVERSION).dylib libspread.dylib)
+	$(INSTALL) -m 0755 libspread.$(LIBFULLVERSION).dylib $(DESTDIR)$(libdir)/libspread.$(LIBFULLVERSION).dylib
+	(cd $(DESTDIR)$(libdir); \
+		$(SOFTLINK) -f libspread.$(LIBFULLVERSION).dylib libspread.dylib; \
+		$(SOFTLINK) -f libspread.$(LIBFULLVERSION).dylib libspread.$(LIBVERSION).dylib; \
+		install_name_tool -id $(DESTDIR)$(libdir)/libspread.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libspread.$(LIBFULLVERSION).dylib \
+	)
 
 libspread.so:	$(LIBTFL_SHOBJS)
-	$(SHLD) -o $@ $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHARED_STDUTIL) $(SHLIBS) $(THLIBS)
+	$(SHLD) -o $@ $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHARED_STDUTIL) $(SHLIBS) $(THLIBS) $(SHLDOPTION)$(SHLDNAME)$@.$(LIBVERSION)
 
 install-libspread.so:	libspread.so
-	$(INSTALL) -m 0755 libspread.so $(DESTDIR)$(libdir)/libspread.so.$(LIBVERSION)
-	(cd $(DESTDIR)$(libdir); $(SOFTLINK) -f libspread.so.$(LIBVERSION) libspread.so)
+	$(INSTALL) -m 0755 libspread.so $(DESTDIR)$(libdir)/libspread.so.$(LIBFULLVERSION)
+	(cd $(DESTDIR)$(libdir); \
+		$(SOFTLINK) -f libspread.so.$(LIBFULLVERSION) libspread.so; \
+		$(SOFTLINK) -f libspread.so.$(LIBFULLVERSION) libspread.so.$(LIBVERSION); \
+	)
 
 clean:
 	rm -f *.lo *.tlo *.to *.o *.a *.dylib *.so $(TARGETS)
@@ -183,14 +209,14 @@
 	$(INSTALL) -m 644 libspread-core.a ../lib/$(host)/libspread-core.a
 	$(INSTALL) -m 644 libtspread-core.a ../lib/$(host)/libtspread-core.a
 ifeq (@LIBSPSO@, libspread.so)
-	  $(INSTALL) -m 755 libspread.so ../lib/$(host)/libspread.so.$(LIBVERSION)
-	  $(INSTALL) -m 755 libspread-core.so ../lib/$(host)/libspread-core.so.$(LIBVERSION)
-	  $(INSTALL) -m 755 libtspread-core.so ../lib/$(host)/libtspread-core.so.$(LIBVERSION)
+	  $(INSTALL) -m 755 libspread.so ../lib/$(host)/libspread.so.$(LIBFULLVERSION)
+	  $(INSTALL) -m 755 libspread-core.so ../lib/$(host)/libspread-core.so.$(LIBFULLVERSION)
+	  $(INSTALL) -m 755 libtspread-core.so ../lib/$(host)/libtspread-core.so.$(LIBFULLVERSION)
 endif
 ifeq (@LIBSPSO@, libspread.dylib)
-	  $(INSTALL) -m 755 libspread.$(LIBVERSION).dylib ../lib/$(host)/libspread.$(LIBVERSION).dylib
-	  $(INSTALL) -m 755 libspread-core.$(LIBVERSION).dylib ../lib/$(host)/libspread-core.$(LIBVERSION).dylib
-	  $(INSTALL) -m 755 libtspread-core.$(LIBVERSION).dylib ../lib/$(host)/libtspread-core.$(LIBVERSION).dylib
+	  $(INSTALL) -m 755 libspread.$(LIBFULLVERSION).dylib ../lib/$(host)/libspread.$(LIBFULLVERSION).dylib
+	  $(INSTALL) -m 755 libspread-core.$(LIBFULLVERSION).dylib ../lib/$(host)/libspread-core.$(LIBFULLVERSION).dylib
+	  $(INSTALL) -m 755 libtspread-core.$(LIBFULLVERSION).dylib ../lib/$(host)/libtspread-core.$(LIBFULLVERSION).dylib
 endif
 
 install: $(TARGETS) install-files install- at LIBSPSO@ install- at LIBSPCORESO@ install- at LIBTSPCORESO@




More information about the Spread-cvs mailing list