makepkg: allow make-style environment var overrides

This allows for VAR=value and VAR+=value variable declarations.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Dave Reisner 2013-08-05 18:04:37 -04:00 committed by Allan McRae
parent 9085aa4322
commit 3d3c7ebb0d
2 changed files with 16 additions and 1 deletions

View File

@ -11,7 +11,7 @@ makepkg - package build utility
Synopsis
--------
'makepkg' [options]
'makepkg' [options] [ENVVAR=value[ENVVAR+=value] ...
Description

View File

@ -2624,6 +2624,16 @@ while true; do
shift
done
# attempt to consume any extra argv as environment variables. this supports
# overriding (e.g. CC=clang) as well as overriding (e.g. CFLAGS+=' -g').
extra_environment=()
while [[ $1 ]]; do
if [[ $1 = [_[:alpha:]]*([[:alnum:]_])?(+)=* ]]; then
extra_environment+=("$1")
fi
shift
done
# setup signal traps
trap 'clean_up' 0
for signal in TERM HUP QUIT; do
@ -2706,6 +2716,11 @@ if [[ ! -w $BUILDDIR ]]; then
exit 1
fi
# override settings from extra variables on commandline, if any
if (( ${#extra_environment[*]} )); then
export "${extra_environment[@]}"
fi
PKGDEST=${_PKGDEST:-$PKGDEST}
PKGDEST=${PKGDEST:-$startdir} #default to $startdir if undefined
if (( ! (NOBUILD || GENINTEG) )) && [[ ! -w $PKGDEST ]]; then