xref: /aosp_15_r20/external/selinux/scripts/env_use_destdir (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker#!/bin/sh
2*2d543d20SAndroid Build Coastguard Worker# Set-up environment variables to run programs which are built in DESTDIR folder
3*2d543d20SAndroid Build Coastguard Worker#
4*2d543d20SAndroid Build Coastguard Worker# Usage example to use variables in the current shell:
5*2d543d20SAndroid Build Coastguard Worker#   $ export DESTDIR=$HOME/selinux-destdir
6*2d543d20SAndroid Build Coastguard Worker#   $ make install install-pywrap install-rubywrap
7*2d543d20SAndroid Build Coastguard Worker#   $ . ./scripts/env_use_destdir
8*2d543d20SAndroid Build Coastguard Worker#   $ make test
9*2d543d20SAndroid Build Coastguard Worker#
10*2d543d20SAndroid Build Coastguard Worker# Or to use variables in a subcommand, for example to run tests:
11*2d543d20SAndroid Build Coastguard Worker#   $ export DESTDIR=$HOME/selinux-destdir
12*2d543d20SAndroid Build Coastguard Worker#   $ make install install-pywrap install-rubywrap
13*2d543d20SAndroid Build Coastguard Worker#   $ ./scripts/env_use_destdir secilc ...
14*2d543d20SAndroid Build Coastguard Worker#   $ ./scripts/env_use_destdir make test
15*2d543d20SAndroid Build Coastguard Worker
16*2d543d20SAndroid Build Coastguard Workerif [ -z "${DESTDIR:-}" ] ; then
17*2d543d20SAndroid Build Coastguard Worker    echo >&2 "Error: variable DESTDIR needs to be defined in order to use this script."
18*2d543d20SAndroid Build Coastguard Worker    echo >&2 "Example:"
19*2d543d20SAndroid Build Coastguard Worker    # shellcheck disable=SC2164
20*2d543d20SAndroid Build Coastguard Worker    echo >&2 "    DESTDIR=$(cd "$(dirname -- "$0")/.." ; pwd)/DESTDIR . $0"
21*2d543d20SAndroid Build Coastguard Worker    exit 1
22*2d543d20SAndroid Build Coastguard Workerfi
23*2d543d20SAndroid Build Coastguard Worker
24*2d543d20SAndroid Build Coastguard Workerexport LD_LIBRARY_PATH="$DESTDIR/usr/lib:$DESTDIR/lib"
25*2d543d20SAndroid Build Coastguard Workerif [ -n "${PREFIX:-}" ] ; then
26*2d543d20SAndroid Build Coastguard Worker    LD_LIBRARY_PATH="$DESTDIR$PREFIX/lib:$LD_LIBRARY_PATH"
27*2d543d20SAndroid Build Coastguard Workerfi
28*2d543d20SAndroid Build Coastguard Workerif [ -n "${LIBDIR:-}" ] ; then
29*2d543d20SAndroid Build Coastguard Worker    LD_LIBRARY_PATH="$DESTDIR$LIBDIR:$LD_LIBRARY_PATH"
30*2d543d20SAndroid Build Coastguard Workerfi
31*2d543d20SAndroid Build Coastguard Workerif [ -n "${SHLIBDIR:-}" ] ; then
32*2d543d20SAndroid Build Coastguard Worker    LD_LIBRARY_PATH="$DESTDIR$SHLIBDIR:$LD_LIBRARY_PATH"
33*2d543d20SAndroid Build Coastguard Workerfi
34*2d543d20SAndroid Build Coastguard Worker
35*2d543d20SAndroid Build Coastguard Workerexport PATH="$DESTDIR/usr/sbin:$DESTDIR/usr/bin:$DESTDIR/sbin:$DESTDIR/bin:$PATH"
36*2d543d20SAndroid Build Coastguard Workerif [ -n "${PREFIX:-}" ] ; then
37*2d543d20SAndroid Build Coastguard Worker    PATH="$DESTDIR$PREFIX/sbin:$DESTDIR$PREFIX/bin:$LD_LIBRARY_PATH"
38*2d543d20SAndroid Build Coastguard Workerfi
39*2d543d20SAndroid Build Coastguard Workerif [ -n "${BINDIR:-}" ] ; then
40*2d543d20SAndroid Build Coastguard Worker    PATH="$DESTDIR$BINDIR:$PATH"
41*2d543d20SAndroid Build Coastguard Workerfi
42*2d543d20SAndroid Build Coastguard Workerif [ -n "${SBINDIR:-}" ] ; then
43*2d543d20SAndroid Build Coastguard Worker    PATH="$DESTDIR$SBINDIR:$PATH"
44*2d543d20SAndroid Build Coastguard Workerfi
45*2d543d20SAndroid Build Coastguard Worker
46*2d543d20SAndroid Build Coastguard Workerif command -v "${PYTHON:-python3}" > /dev/null ; then
47*2d543d20SAndroid Build Coastguard Worker    NEW_PYTHONPATH="$DESTDIR$(${PYTHON:-python3} -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '/usr', 'base': '/usr'}))"):$DESTDIR$(${PYTHON:-python3} -c "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '/usr', 'base': '/usr'}))")"
48*2d543d20SAndroid Build Coastguard Worker    if [ -n "${PYTHONPATH:-}" ] ; then
49*2d543d20SAndroid Build Coastguard Worker        # Prefix the PYTHONPATH with the new directories
50*2d543d20SAndroid Build Coastguard Worker        export PYTHONPATH="$NEW_PYTHONPATH:$PYTHONPATH"
51*2d543d20SAndroid Build Coastguard Worker    else
52*2d543d20SAndroid Build Coastguard Worker        # Define PYTHONPATH
53*2d543d20SAndroid Build Coastguard Worker        export PYTHONPATH="$NEW_PYTHONPATH"
54*2d543d20SAndroid Build Coastguard Worker    fi
55*2d543d20SAndroid Build Coastguard Workerfi
56*2d543d20SAndroid Build Coastguard Worker
57*2d543d20SAndroid Build Coastguard Worker# shellcheck disable=SC2155
58*2d543d20SAndroid Build Coastguard Workerif command -v "${RUBY:-ruby}" > /dev/null ; then
59*2d543d20SAndroid Build Coastguard Worker    export RUBYLIB="$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorlibdir"]'):$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorarchdir"]')"
60*2d543d20SAndroid Build Coastguard Workerfi
61*2d543d20SAndroid Build Coastguard Worker
62*2d543d20SAndroid Build Coastguard Worker# Run the command given on the command line
63*2d543d20SAndroid Build Coastguard Workerif [ $# -gt 0 ] ; then
64*2d543d20SAndroid Build Coastguard Worker    exec "$@"
65*2d543d20SAndroid Build Coastguard Workerfi
66