summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-10-05 22:49:19 +0100
committerLeah Rowe <leah@libreboot.org>2023-10-05 22:51:05 +0100
commit9d419e77a0621ddf8398edecb40ddedc3388dc42 (patch)
tree393175c361643f1ada2c833acb57109b84d58f1b
parent106841024a5d744768734def462387648d473014 (diff)
handle/make/*: unified main() function
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--include/make.sh30
-rwxr-xr-xscript/build/release/src2
-rwxr-xr-xscript/handle/make/config22
-rwxr-xr-xscript/handle/make/file28
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 || :
}