summaryrefslogtreecommitdiff
path: root/script/handle/make/file
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-08-27 17:19:36 +0100
committerLeah Rowe <leah@libreboot.org>2023-08-27 17:19:36 +0100
commit355eb765ff47b0855a6f5655312608d3264e70bf (patch)
tree922e7e432c4c57182d640f6f889292d6805c1fb4 /script/handle/make/file
parenteed34d3e8b0369270fd000c7ecafccdd93f4887e (diff)
move resources/scripts/ to script/
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'script/handle/make/file')
-rwxr-xr-xscript/handle/make/file80
1 files changed, 80 insertions, 0 deletions
diff --git a/script/handle/make/file b/script/handle/make/file
new file mode 100755
index 00000000..855ea1c4
--- /dev/null
+++ b/script/handle/make/file
@@ -0,0 +1,80 @@
+#!/usr/bin/env sh
+
+# helper script: build utils used by lbmk
+#
+# Copyright (C) 2023 Leah Rowe <info@minifree.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+. "include/err.sh"
+
+mode=""
+project=""
+
+main()
+{
+ while getopts b:c: option
+ do
+ case "${1}" in
+ -b)
+ shift ;;
+ -c)
+ mode="distclean"
+ shift ;;
+ *)
+ err "Invalid option" ;;
+ esac
+ project="${OPTARG}"
+ shift
+ done
+
+ [ -z "${project}" ] && err "project name not specified"
+ [ "${project}" = "ich9utils" ] && project="util/ich9utils"
+
+ handle_dependencies
+ run_make_command
+}
+
+handle_dependencies()
+{
+ [ -d "${project}" ] || ./fetch "${project%/*}" || \
+ err "handle_dependencies: can't fetch ${project%/*}"
+ [ -d "${project}" ] || \
+ err "handle_dependencies: ${project%/*} not downloaded"
+
+ if [ "${project}" = "uefitool" ]; then
+ (
+ cd uefitool || err "handle_dependencies: !cd uefitool"
+ cmake UEFIExtract/ || \
+ err "handle_dependencies: !cmake UEFIExtract/"
+ )
+ fi
+}
+
+run_make_command()
+{
+ if [ -z "${mode}" ]; then
+ make -C "${project}" -j$(nproc) || \
+ err "run_make_command: !make -C ${project}"
+ else
+ make -C "${project}" distclean || make -C "${project}" clean \
+ || err "run_make_command: ${project}: make-clean failed"
+ fi
+}
+
+main $@