diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/libmakepkg/util/option.sh | 34 | ||||
| -rw-r--r-- | scripts/makepkg.sh.in | 8 | 
2 files changed, 38 insertions, 4 deletions
| diff --git a/scripts/libmakepkg/util/option.sh b/scripts/libmakepkg/util/option.sh index 1b2d94dc..41c7fd3a 100644 --- a/scripts/libmakepkg/util/option.sh +++ b/scripts/libmakepkg/util/option.sh @@ -106,3 +106,37 @@ check_buildenv() {  	# not found  	return 127  } + +## +# Checks to see if options are present in BUILDENV or PKGBUILD; +# PKGBUILD options always take precedence. +# +#  usage : check_buildoption( $option, $expected_val ) +# return : 0   - matches expected +#          1   - does not match expected +#          127 - not found +## +check_buildoption() { +	in_opt_array "$1" ${options[@]} +	case $? in +		0) # assert enabled +			[[ $2 = y ]] +			return ;; +		1) # assert disabled +			[[ $2 = n ]] +			return +	esac + +	in_opt_array "$1" ${BUILDENV[@]} +	case $? in +		0) # assert enabled +			[[ $2 = y ]] +			return ;; +		1) # assert disabled +			[[ $2 = n ]] +			return +	esac + +	# not found +	return 127 +} diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 87576987..7d8669b7 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -852,13 +852,13 @@ run_prepare() {  run_build() {  	# use distcc if it is requested (check buildenv and PKGBUILD opts) -	if check_buildenv "distcc" "y" && ! check_option "distcc" "n"; then +	if check_buildoption "distcc" "y"; then  		[[ -d /usr/lib/distcc/bin ]] && export PATH="/usr/lib/distcc/bin:$PATH"  		export DISTCC_HOSTS  	fi  	# use ccache if it is requested (check buildenv and PKGBUILD opts) -	if check_buildenv "ccache" "y" && ! check_option "ccache" "n"; then +	if check_buildoption "ccache" "y"; then  		[[ -d /usr/lib/ccache/bin ]] && export PATH="/usr/lib/ccache/bin:$PATH"  	fi @@ -1557,7 +1557,7 @@ check_software() {  	fi  	# distcc - compilation with distcc -	if check_buildenv "distcc" "y" && ! check_option "distcc" "n"; then +	if check_buildoption "distcc" "y"; then  		if ! type -p distcc >/dev/null; then  			error "$(gettext "Cannot find the %s binary required for distributed compilation.")" "distcc"  			ret=1 @@ -1565,7 +1565,7 @@ check_software() {  	fi  	# ccache - compilation with ccache -	if check_buildenv "ccache" "y" && ! check_option "ccache" "n"; then +	if check_buildoption "ccache" "y"; then  		if ! type -p ccache >/dev/null; then  			error "$(gettext "Cannot find the %s binary required for compiler cache usage.")" "ccache"  			ret=1 | 
