--- root.orig/build/unix/makelib.sh 2003-12-03 23:12:36.000000000 -0800 +++ root.new/build/unix/makelib.sh 2003-12-17 12:10:07.000000000 -0800 @@ -79,23 +79,28 @@ # if we are using xlc, then the linker for shared libs is still g++ LD=g++ fi - # Look for a fink installation - FINKDIR=`which fink 2>&1 | sed -ne "s/\/bin\/fink//p"` - # We need two library files: a .dylib to link to and a .so to load - BUNDLE=`echo $LIB | sed s/.dylib/.so/` - echo $LD $SOFLAGS$SONAME -o $LIB $OBJS \ - `[ -d ${FINKDIR}/lib ] && echo -L${FINKDIR}/lib` -ldl $EXTRA - $LD $SOFLAGS$SONAME -o $LIB $OBJS \ - `[ -d ${FINKDIR}/lib ] && echo -L${FINKDIR}/lib` -ldl $EXTRA if [ "x`echo $SOFLAGS | grep -- '-g'`" != "x" ]; then opt=-g else opt=-O fi + # Look for a fink installation + FINKDIR=`which fink 2>&1 | sed -ne "s/\/bin\/fink//p"` + FINKFLAGS="`[ -d ${FINKDIR}/lib ] && echo -L${FINKDIR}/lib` -ldl" + # We need two library files: a .dylib to link to and a .so to load + BUNDLE=`echo $LIB | sed s/.dylib/.so/` echo $LD $opt -bundle -flat_namespace -undefined suppress -o $BUNDLE \ - $OBJS `[ -d ${FINKDIR}/lib ] && echo -L${FINKDIR}/lib` -ldl $EXTRA + $OBJS $FINKFLAGS $EXTRA $LD $opt -bundle -flat_namespace -undefined suppress -o $BUNDLE \ - $OBJS `[ -d ${FINKDIR}/lib ] && echo -L${FINKDIR}/lib` -ldl $EXTRA + $OBJS $FINKFLAGS $EXTRA + # Add versioning information to shared library if available + if [ "x$MAJOR" != "x" ]; then + EXTRA="${EXTRA} -compatibility_version ${MAJOR} -current_version ${MAJOR}.${MINOR}.${REVIS}" + SONAME=`echo $SONAME | sed "s/.*\./&${MAJOR}./"` + LIB=`echo $LIB | sed "s/\/*.*\/.*\./&${MAJOR}.${MINOR}./"` + fi + echo $LD $SOFLAGS$SONAME $FINKFLAGS -o $LIB $OBJS $EXTRA + $LD $SOFLAGS$SONAME $FINKFLAGS -o $LIB $OBJS $EXTRA elif [ $LD = "KCC" ]; then echo $LD $LDFLAGS -o $LIB $OBJS $EXTRA $EXPLLNKCORE $LD $LDFLAGS -o $LIB $OBJS $EXTRA $EXPLLNKCORE @@ -128,9 +133,16 @@ exit $linkstat fi -if [ "x$MAJOR" != "x" ] && [ -f $LIB.$MAJOR.$MINOR ]; then - ln -fs $SONAME.$MAJOR.$MINOR $LIB.$MAJOR - ln -fs $SONAME.$MAJOR $LIB +if [ "x$MAJOR" != "x" ]; then + if [ -f $LIB.$MAJOR.$MINOR ]; then + # Versioned library has format foo.so.3.05 + ln -fs $SONAME.$MAJOR.$MINOR $LIB.$MAJOR + ln -fs $SONAME.$MAJOR $LIB + elif [ -f $LIB ]; then + # Versioned library has format foo.3.05.so + ln -fs `echo $SONAME | sed "s/.*\./&${MINOR}./"` `echo $LIB | sed "s/\.${MINOR}//"` + ln -fs `echo $SONAME | sed "s/.*\./&${MINOR}./"` `echo $LIB | sed "s/\.${MAJOR}\.${MINOR}//"` + fi fi if [ $PLATFORM = "hpux" ]; then --- root.orig/config/Makefile.macosx Wed Sep 3 13:41:47 2003 +++ root.new/config/Makefile.macosx Mon Sep 8 14:38:54 2003 @@ -50,6 +50,7 @@ # Fortran: F77 = g77 +F77FLAGS = -single_module F77LIBS = -lg2c # Override default in Makefile.config --- root.orig/hbook/Module.mk Mon Sep 16 15:07:39 2002 +++ root.new/hbook/Module.mk Mon Sep 8 14:26:26 2003 @@ -41,7 +41,7 @@ $(HBOOKLIB): $(HBOOKO) $(HBOOKDO) $(MAINLIBS) $(HBOOKLIBDEP) @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ - "$(SOFLAGS)" libHbook.$(SOEXT) $@ "$(HBOOKO1) $(HBOOKDO)" \ + "$(F77FLAGS) $(SOFLAGS)" libHbook.$(SOEXT) $@ "$(HBOOKO1) $(HBOOKDO)" \ "$(HBOOKO2) $(CERNLIBDIR) $(CERNLIBS) $(RFIOLIBEXTRA) \ $(SHIFTLIBDIR) $(SHIFTLIB) $(HBOOKLIBEXTRA) $(F77LIBS)"