aboutsummaryrefslogtreecommitdiff
blob: 2800fad76465131fe63c8aa6bf1fc8794222d41b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1

if [[ -z ${PORTAGE_INTERNAL_DOLIB} ]] && ! ___eapi_has_dolib_libopts; then
	die "'${0##*/}' has been banned for EAPI '$EAPI'"
	exit 1
fi

if ! ___eapi_has_prefix_variables; then
	ED=${D}
fi

if ! ___eapi_has_DESTTREE_INSDESTTREE; then
	[[ -n ${DESTTREE} ]] &&
		die "${0##*/}: \${DESTTREE} has been banned for EAPI '$EAPI'; use 'into' instead"
else
	# backwards compatibility
	_E_DESTTREE_=${DESTTREE}
fi

# Setup ABI cruft
LIBDIR_VAR="LIBDIR_${ABI}"
if [[ -n ${ABI} && -n ${!LIBDIR_VAR} ]] ; then
	CONF_LIBDIR=${!LIBDIR_VAR}
fi
unset LIBDIR_VAR
# we need this to default to lib so that things dont break
CONF_LIBDIR=${CONF_LIBDIR:-lib}
libdir="${ED}${_E_DESTTREE_}/${CONF_LIBDIR}"


if [[ $# -lt 1 ]] ; then
	__helpers_die "${0##*/}: at least one argument needed"
	exit 1
fi
if [[ ! -d ${libdir} ]] ; then
	install -d "${libdir}" || { __helpers_die "${0##*/}: failed to install ${libdir}"; exit 1; }
fi

ret=0

for x in "$@" ; do
	if [[ -e ${x} ]] ; then
		if [[ ! -L ${x} ]] ; then
			install ${LIBOPTIONS} "${x}" "${libdir}"
		else
			ln -s "$(readlink "${x}")" "${libdir}/${x##*/}"
		fi
	else
		echo "!!! ${0##*/}: ${x} does not exist" 1>&2
		false
	fi
	((ret|=$?))
done

[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
exit ${ret}