[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