]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
merge Deans changes to libtool build/install process from dmapi into the
authorNathan Scott <nathans@sgi.com>
Fri, 20 Jul 2001 08:18:35 +0000 (08:18 +0000)
committerNathan Scott <nathans@sgi.com>
Fri, 20 Jul 2001 08:18:35 +0000 (08:18 +0000)
other XFS packages.

debian/rules
include/builddefs.in
install-sh

index a16915280102116f00d670d86d3e1b9480ea16b1..19bc2152204fe520c2c535b7aecd3f070141156c 100755 (executable)
@@ -35,6 +35,11 @@ clean:
 
 binary-indep:
 
+# Note1: dev pkg with .so symlinks to base pkg confuses debstd;
+# so the .so 'Dangling symlink' message is benign.
+# Note2: absolute symlinks (required by policy) confuse debstd;
+# so we'll filter out symlink messages entirely now.
+# 
 binary-arch: checkroot built
        @echo "== dpkg-buildpackage: binary-arch" 1>&2
        $(checkdir)
@@ -43,9 +48,7 @@ binary-arch: checkroot built
        $(pkgdev) $(MAKE) -C . install-dev
        $(pkgtmp) $(MAKE) -C build src-manifest
        @echo "== dpkg-buildpackage: debstd" 1>&2
-       # Note: dev pkg with .so symlinks to base pkg confuses debstd;
-       # so the .so 'Dangling symlink' message below is benign.
-       $(stdenv) debstd -m
+       $(stdenv) debstd -m | grep -v 'Dangling symlink'
        dpkg-gencontrol -isp -p$(package) -P$(dirtmp)
        dpkg-gencontrol -isp -p$(develop) -P$(dirdev)
        chown -R root.root $(dirtmp) $(dirdev)
index 1e0d22f73cf5ce20e8f2364fa10a67aad8b4f992..69a0e55e2c60ecee06063b7060ce725c37ee1fe3 100644 (file)
@@ -117,45 +117,44 @@ MAKEF     = $(MAKE) $(MAKEOPTS)
 CXXF   = $(CXX) $(CXXFLAGS)
 LDF    = $(LD) $(LDFLAGS)
 
-# For libtool.  Pieces from Automake, slightly modified.
-top_builddir = $(TOPDIR)
+# For libtool.
 DIRT += $(LTOBJECTS) $(LTLIBRARY)
 LTLINK = $(LIBTOOL) --mode=link $(CC)
 LTEXEC = $(LIBTOOL) --mode=execute
 LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL)
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CCF) -D_REENTRANT
-LTVERSION = $(LT_CURRENT).$(LT_REVISION).$(LT_AGE)
+LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
 LTOBJECTS = $(OBJECTS:.o=.lo)
 ifeq ($(ENABLE_SHARED),yes)
-LTLDFLAGS += -rpath $(PKG_LIB_DIR) 
-LTLDFLAGS += -version-info $(subst .,:,$(LTVERSION))
+LTLDFLAGS += -rpath $(PKG_SLIB_DIR) 
+LTLDFLAGS += -version-info $(LTVERSION)
 endif
 LIBNAME = $(basename $(LTLIBRARY))
 
 ifeq ($(ENABLE_SHARED),yes)
 INSTALL_LTLIB = \
        cd $(TOPDIR)/$(LIBNAME)/.libs; \
-       ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
-       ../$(INSTALL) -m 644 $(LIBNAME).so.$(LTVERSION) $(PKG_LIB_DIR); \
+       ../$(INSTALL) -m 755 -d $(PKG_SLIB_DIR); \
+       ../$(INSTALL) -m 644 -T so_dot_version $(LIBNAME).lai $(PKG_SLIB_DIR); \
        test "$(PKG_DISTRIBUTION)" = debian || \
-       ../$(INSTALL) -S $(LIBNAME).so.$(LTVERSION) $(PKG_LIB_DIR)/$(LIBNAME).so.$(LT_CURRENT)
+       ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_SLIB_DIR)
 endif
 
 ifeq ($(ENABLE_SHARED),yes)
 INSTALL_LTLIB_DEV = \
        cd $(TOPDIR)/$(LIBNAME)/.libs; \
-       ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
-       ../$(INSTALL) -m 644 $(LIBNAME).a $(PKG_LIB_DIR); \
-       ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la; \
-       ../$(INSTALL) -S $(LIBNAME).so.$(LT_CURRENT) $(PKG_LIB_DIR)/$(LIBNAME).so
+       ../$(INSTALL) -m 755 -d $(PKG_SLIB_DIR); \
+       ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_SLIB_DIR); \
+       ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_SLIB_DIR)/$(LIBNAME).la ; \
+       ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_SLIB_DIR)
 else
 INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)
 endif
 
 INSTALL_LTLIB_STATIC = \
        cd $(TOPDIR)/$(LIBNAME)/.libs; \
-       ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
-       ../$(INSTALL) -m 644 $(LIBNAME).a $(PKG_LIB_DIR)
+       ../$(INSTALL) -m 755 -d $(PKG_SLIB_DIR); \
+       ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_SLIB_DIR)
 
 INSTALL_MAN = \
     @for d in $(MAN_PAGES); do \
index 08c6c2f69d515714ea4881ced47d272a5344d1e5..a3a0c7d583ec14c0bae542ce2e9f91c114ba1b7a 100755 (executable)
@@ -58,6 +58,7 @@ _usage() {
     echo "or     $prog [-D] [-o owner] [-g group] [-m mode] file directory/file"
     echo "or     $prog [-o owner] [-g group] [-m mode] file [file ...] directory"
     echo "or     $prog -S file target  (creates \"target\" symlink)"
+    echo "or     $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory"
     echo ""
     echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the"
     echo "behaviour of this command - see comments in the script."
@@ -75,13 +76,13 @@ _chown ()
        _st=$?
        if [ $_st -ne 0 ] ; then
            if [ $REAL_UID != '0' ] ; then
-               if [ ! -f $DIST_ROOT/.chown.quite ] ; then
+               if [ ! -f $DIST_ROOT/.chown.quiet ] ; then
                    echo '==============================================='
                    echo Ownership of files under ${DIST_ROOT:-/}
                    echo cannot be changed
                    echo '==============================================='
                    if [ -n "$DIST_ROOT" ] ; then
-                       touch $DIST_ROOT/.chown.quite
+                       touch $DIST_ROOT/.chown.quiet
                    fi
                fi
               _st=0
@@ -103,6 +104,7 @@ HERE=`pwd`
 dflag=false
 Dflag=false
 Sflag=false
+Tflag=false
 DIRMODE=755
 FILEMODE=644
 OWNER=`id -u`
@@ -127,7 +129,7 @@ fi
 
 [ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true
 
-while getopts "Dcm:d:S:o:g:" c $*
+while getopts "Dcm:d:S:o:g:T:" c $*
 do
    case $c in
    c)
@@ -153,6 +155,10 @@ do
        dir=$DIST_ROOT/$OPTARG
        dflag=true
        ;;
+   T)
+       lt_install=$OPTARG
+       Tflag=true
+       ;;
    *)
        _usage
        ;;
@@ -187,13 +193,113 @@ then
     #
     if [ $# -ne 1 ]
     then
-       _usage
+       _usage
     else
-       target=$DIST_ROOT/$1
+       target=$DIST_ROOT/$1
     fi
     $LN -s -f $symlink $target
     status=$?
     $MANIFEST l $symlink ${target#$DIST_ROOT} 
+elif $Tflag
+then
+    #
+    # -T (install libs built by libtool)
+    #
+    if [ $# -ne 2 ]
+    then
+       _usage
+    else
+       libtool_lai=$1
+       # source the libtool variables
+       if [ ! -f $libtool_lai ]
+       then
+               echo "$prog: Unable to find libtool library file $libtool_lai"
+               exit 2
+       fi
+       . $libtool_lai
+       target=$DIST_ROOT/$2
+    fi
+    case $lt_install in
+    so_dot_version)
+       # Loop until we find libfoo.so.x.y.z, then break out.
+       for solib in $library_names
+       do
+               # does it have enough parts?  libfoo.so.x.y.z == 5
+               cnt=`echo "$solib" | sed -e 's/\./ /g' | wc -w`
+               if [ $cnt -eq 5 ]
+               then
+                       install_name=$target/$solib
+                       $CP $solib $install_name
+                       status=$?
+                       $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT}
+                       break
+               fi
+       done
+       ;;
+
+    so_*)
+       case $lt_install in
+       so_dot_current)
+               # ln -s libfoo.so.x.y.z to libfoo.so.x
+               from_parts=5  # libfoo.so.x.y.z
+               to_parts=3    # libfoo.so.x
+               ;;
+       so_base)
+               # ln -s libfoo.so.x to libfoo.so
+               from_parts=3  # libfoo.so.x
+               to_parts=2    # libfoo.so
+               ;;
+       *)
+               echo "$prog: -T $lt_install invalid"
+               exit 2
+               ;;
+       esac
+
+       # Loop until we find the names, then break out.
+       for solib in $library_names
+       do
+               # does it have enough parts?
+               cnt=`echo "$solib" | sed -e 's/\./ /g' | wc -w`
+               if [ $cnt -eq $from_parts ]
+               then
+                       from_name=$solib
+               elif [ $cnt -eq $to_parts ]
+               then
+                       to_name=$solib
+               fi
+
+               if [ -n "$from_name" ] && [ -n "$to_name" ]
+               then
+                       install_name=$target/$to_name
+                       $LN -s -f $from_name $install_name
+                       status=$?
+                       $MANIFEST l $from_name ${install_name#$DIST_ROOT}
+                       break
+               fi
+       done
+       ;;
+    old_lib)
+       install_name=$target/$old_library
+       $CP $old_library $install_name
+       status=$?
+       $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT}
+       ;;
+    *)
+       echo "$prog: -T $lt_install invalid"
+       exit 2
+       ;;
+    esac
+
+    case $lt_install in
+    old_lib|so_dot_version)
+       if [ $status -eq 0 ]
+       then
+               $CHMOD $FILEMODE $install_name
+               $CHOWN $OWNER $GROUP $install_name
+       fi
+       ;;
+    esac
+
 else
     list=""
     dir=""
@@ -211,7 +317,7 @@ else
        $CP $f $dir
        status=$?
        if [ $status -eq 0 ]
-       then
+       then 
            if [ -f $dir/$f ]
            then
                $CHMOD $FILEMODE $dir/$f
@@ -222,8 +328,7 @@ else
                    status=$?
                fi
                $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
-           elif [ -f $dir ]
-           then
+           else
                $CHMOD $FILEMODE $dir
                status=$?
                if [ $status -eq 0 ]