diff options
| author | Leah Rowe <leah@libreboot.org> | 2023-10-05 22:49:19 +0100 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2023-10-05 22:51:05 +0100 | 
| commit | 9d419e77a0621ddf8398edecb40ddedc3388dc42 (patch) | |
| tree | 393175c361643f1ada2c833acb57109b84d58f1b | |
| parent | 106841024a5d744768734def462387648d473014 (diff) | |
handle/make/*: unified main() function
Signed-off-by: Leah Rowe <leah@libreboot.org>
| -rw-r--r-- | include/make.sh | 30 | ||||
| -rwxr-xr-x | script/build/release/src | 2 | ||||
| -rwxr-xr-x | script/handle/make/config | 22 | ||||
| -rwxr-xr-x | script/handle/make/file | 28 | 
4 files changed, 40 insertions, 42 deletions
| diff --git a/include/make.sh b/include/make.sh new file mode 100644 index 00000000..697c40d2 --- /dev/null +++ b/include/make.sh @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org> + +main() +{ +	while getopts b:m:u:c:x: option +	do +		_flag="${1}" +		case "${1}" in +		-b) mode="all" ;; +		-u) mode="oldconfig" ;; +		-m) mode="menuconfig" ;; +		-c) mode="distclean" ;; +		-x) mode="crossgcc-clean" ;; +		*) fail "Invalid option" ;; +		esac +		shift; project="${OPTARG}"; shift +	done +	[ -z "${mode}" ] && fail "mode not given (-m, -u, -b, -c or -x)" +	[ -z "${project}" ] && fail "project name not specified" + +	handle_dependencies $@ +	handle_targets +} + +fail() +{ +	[ -z "${codedir}" ] || ./handle make file -c "${codedir}" || : +	err "${1}" +} diff --git a/script/build/release/src b/script/build/release/src index 6c7d3190..1a504133 100755 --- a/script/build/release/src +++ b/script/build/release/src @@ -108,7 +108,7 @@ purge_files()  	done  	x_ ./handle make file -c bios_extract flashrom grub uefitool \  	    util-fw/stm32-vserprog util-fw/stm32-vserprog/libopencm3 \ -	    memtest86plus/build* util/* +	    memtest86plus/build32 memtest86plus/build64 util/*  	x_ rm -Rf .git* */.git* */*/.git* */*/*/.git* */*/*/*/.git* \  	    */*/*/*/*/.git* */*/*/*/*/*/.git* */*/*/*/*/*/*/.git* diff --git a/script/handle/make/config b/script/handle/make/config index 9d028a85..694119c4 100755 --- a/script/handle/make/config +++ b/script/handle/make/config @@ -9,6 +9,7 @@ set -u -e  . "include/err.sh"  . "include/option.sh" +. "include/make.sh"  read projectname < projectname  read our_version < version @@ -20,26 +21,7 @@ eval "$(setvars "" arch cfgsdir codedir config config_name crossgcc_ada mode \  tmpclean="$(mktemp -d -t makeclean.XXXXXXXXXX)" -main() -{ -	while getopts b:m:u:c:x: option -	do -		case "${1}" in -		-b) mode="all" ;; -		-u) mode="oldconfig" ;; -		-m) mode="menuconfig" ;; -		-c) mode="distclean" ;; -		-x) mode="crossgcc-clean" ;; -		*) fail "Invalid option" ;; -		esac -		shift; project="${OPTARG}"; shift -	done -	[ -z "${mode}" ] && fail "mode not given (-m, -u, -b, -c or -x)" -	[ -z "${project}" ] && fail "project name not specified" - -	handle_dependencies $@ -	handle_targets -} +# main() is in include/make.sh  handle_dependencies()  { diff --git a/script/handle/make/file b/script/handle/make/file index c0a6afb4..ff41f375 100755 --- a/script/handle/make/file +++ b/script/handle/make/file @@ -6,30 +6,16 @@  set -u -e  . "include/err.sh" +. "include/make.sh" -eval "$(setvars "" mode project _flag)" +eval "$(setvars "" mode project _flag codedir)" -main() -{ -	while getopts b:c: option -	do -		_flag="${1}" -		case "${_flag}" in -		-b) : ;; -		-c) mode="distclean" ;; -		*) err "Invalid option" ;; -		esac -		shift; project="${OPTARG}"; shift -	done -	[ -z "${project}" ] && err "project name not specified" -	[ $# -gt 0 ] && x_ ./handle make file ${_flag} ${@} - -	handle_dependencies -	run_make_command -} +# main() is in include/make.sh  handle_dependencies()  { +	[ $# -gt 0 ] && x_ ./handle make file ${_flag} ${@} +  	[ -d "${project}" ] || x_ ./update project repo "${project%/*}"  	[ -d "${project}" ] || \  		err "handle_dependencies: ${project%/*} not downloaded" @@ -42,11 +28,11 @@ handle_dependencies()  	)  } -run_make_command() +handle_targets()  {  	[ -f "${project}/Makefile" ] || [ -f "${project}/makefile" ] || \  	    [ -f "${project}/GNUmakefile" ] || return 0 -	[ -z "${mode}" ] && x_ make -C "${project}" -j$(nproc) && return 0 +	[ "${mode}" = "all" ] && x_ make -C "${project}" -j$(nproc) && return 0  	x_ make -C "${project}" clean  	make -C "${project}" distclean 2>/dev/null || :  } | 
