summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@suse.de>2009-03-10 17:00:35 +0100
committerAndreas Gruenbacher <agruen@suse.de>2009-03-10 17:26:20 +0100
commit05c7b283dd7ece85dd6ea9e0f2d2c167e18cd6c4 (patch)
treee59fa60299567a4839732a766b31d2b2ceb7cd90 /include
parenta8375f9db593f94ead43fbf6057f3e298093fbcd (diff)
downloadacl-05c7b283dd7ece85dd6ea9e0f2d2c167e18cd6c4.tar.gz
More libtoolize fixes
Recent versions of libtool behave slightly differently, which causes some breakage in how libtoolize was used here. Make sure that libtoolize adds the auxiliary files (config.guess and config.sub). Move install-sh into include/ so that libtoolize does not destroy it. Split up the ``make clean'' and ``make distclean'' targets: the former removes all files generated during a build. The latter removes all files generated by libtoolize, autoconf, and configure as well. Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Diffstat (limited to 'include')
-rw-r--r--include/Makefile2
-rwxr-xr-xinclude/install-sh349
2 files changed, 350 insertions, 1 deletions
diff --git a/include/Makefile b/include/Makefile
index f9f5552..3a12a29 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -6,7 +6,7 @@ TOPDIR = ..
include $(TOPDIR)/include/builddefs
HFILES = acl.h libacl.h acl_ea.h misc.h walk_tree.h
-LSRCFILES = builddefs.in buildmacros buildrules config.h.in
+LSRCFILES = builddefs.in buildmacros buildrules config.h.in install-sh
LDIRT = sys acl
default: sys acl
diff --git a/include/install-sh b/include/install-sh
new file mode 100755
index 0000000..e790073
--- /dev/null
+++ b/include/install-sh
@@ -0,0 +1,349 @@
+#! /bin/sh
+#
+# Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved.
+#
+# This script emulates bsd install and also recognises
+# two environment variables, with the following semantics :-
+#
+# $DIST_MANIFEST - if set, the name of the file to append manifest
+# information in the following format:
+# File : f mode owner group src target
+# Directory: d mode owner group target
+# Symlink : l linkval target
+#
+# $DIST_ROOT - if set, prepend to target
+#
+# The sematics of all combinations of these two variables
+# are as follows:
+#
+# $DIST_MANIFEST? $DIST_ROOT? | Copy? Append Manifest?
+# -----------------------------+--------------------------
+# not set not set | yes no
+# not set set | yes no
+# set not set | no yes
+# set set | yes yes
+#
+_usage() {
+ echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory"
+ 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."
+ echo "The -D flag is only available for the second usage, and causes"
+ echo "the target directory to be created before installing the file."
+ echo ""
+ exit 1
+}
+
+_chown ()
+{
+ _st=255
+ if [ $# -eq 3 ] ; then
+ chown $1:$2 $3
+ _st=$?
+ if [ $_st -ne 0 ] ; then
+ if [ $REAL_UID != '0' ] ; 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.quiet
+ fi
+ fi
+ _st=0
+ fi
+ fi
+ fi
+
+ return $_st
+}
+
+
+_manifest ()
+{
+ echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null}
+}
+
+prog=`basename $0`
+HERE=`pwd`
+dflag=false
+Dflag=false
+Sflag=false
+Tflag=false
+DIRMODE=755
+FILEMODE=644
+OWNER=`id -u`
+GROUP=`id -g`
+REAL_UID=$OWNER
+
+# default is to install and don't append manifest
+INSTALL=true
+MANIFEST=:
+
+[ -n "$DIST_MANIFEST" -a -z "$DIST_ROOT" ] && INSTALL=false
+[ -n "$DIST_MANIFEST" ] && MANIFEST="_manifest"
+
+[ $# -eq 0 ] && _usage
+
+if $INSTALL
+then
+ CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown
+else
+ CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true
+fi
+
+[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true
+
+while getopts "Dcm:d:S:o:g:T:" c $*
+do
+ case $c in
+ c)
+ ;;
+ g)
+ GROUP=$OPTARG
+ ;;
+ o)
+ OWNER=$OPTARG
+ ;;
+ m)
+ DIRMODE=`expr $OPTARG`
+ FILEMODE=$DIRMODE
+ ;;
+ D)
+ Dflag=true
+ ;;
+ S)
+ symlink=$OPTARG
+ Sflag=true
+ ;;
+ d)
+ dir=$DIST_ROOT/$OPTARG
+ dflag=true
+ ;;
+ T)
+ lt_install=$OPTARG
+ Tflag=true
+ ;;
+ *)
+ _usage
+ ;;
+ esac
+done
+
+shift `expr $OPTIND - 1`
+
+status=0
+if $dflag
+then
+ #
+ # first usage
+ #
+ $MKDIR -p $dir
+ status=$?
+ if [ $status -eq 0 ]
+ then
+ $CHMOD $DIRMODE $dir
+ status=$?
+ fi
+ if [ $status -eq 0 ]
+ then
+ $CHOWN $OWNER $GROUP $dir
+ status=$?
+ fi
+ $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT}
+elif $Sflag
+then
+ #
+ # fourth usage (symlink)
+ #
+ if [ $# -ne 1 ]
+ then
+ _usage
+ else
+ 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=""
+ if [ $# -eq 2 ]
+ then
+ #
+ # second usage
+ #
+ f=$1
+ dir=$DIST_ROOT/$2
+ if $Dflag
+ then
+ mkdir -p `dirname $dir`
+ fi
+ $CP $f $dir
+ status=$?
+ if [ $status -eq 0 ]
+ then
+ if [ -f $dir/$f ]
+ then
+ $CHMOD $FILEMODE $dir/$f
+ status=$?
+ if [ $status -eq 0 ]
+ then
+ $CHOWN $OWNER $GROUP $dir/$f
+ status=$?
+ fi
+ $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
+ else
+ $CHMOD $FILEMODE $dir
+ status=$?
+ if [ $status -eq 0 ]
+ then
+ $CHOWN $OWNER $GROUP $dir
+ status=$?
+ fi
+ $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT}
+ fi
+ fi
+ else
+ #
+ # third usage
+ #
+ n=1
+ while [ $# -gt 0 ]
+ do
+ if [ $# -gt 1 ]
+ then
+ list="$list $1"
+ else
+ dir=$DIST_ROOT/$1
+ fi
+ shift
+ done
+
+ # echo DIR=$dir list=\"$list\"
+ for f in $list
+ do
+ $CP $f $dir
+ status=$?
+ if [ $status -eq 0 ]
+ then
+ $CHMOD $FILEMODE $dir/$f
+ status=$?
+ if [ $status -eq 0 ]
+ then
+ $CHOWN $OWNER $GROUP $dir/$f
+ status=$?
+ fi
+ $MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
+ fi
+ [ $status -ne 0 ] && break
+ done
+ fi
+fi
+
+exit $status