summaryrefslogtreecommitdiff
path: root/resources/scripts/build/src/for
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-08-20 17:32:16 +0100
committerLeah Rowe <leah@libreboot.org>2023-08-20 17:47:02 +0100
commitf893a29b2214e9b6ebab7640ee25add2c334b5b6 (patch)
treedd06ace40c329bc0e97f49f533cc964e8f643886 /resources/scripts/build/src/for
parentc83d1a8dc4efea50aa17af930ec7b8289dad2390 (diff)
unify most module build scripts
Some of them weren't even used at all, such as the flashrom build script. the bios_extract build script existed but was never used, because we only called (from blobutil) a python script from in there, without actually compiling anything! resources/script/build/src/for Usage, e.g.: ./build src for memtest86plus It also handles fetch. This script is intended largely for those codebases that are quite simple, requiring trivial or no intervention besides running "make". 37 sloc reduction. Not a lot, but the audit continues! These optimisations add up. I started at 3300 sloc in resources/scripts and me target is 2k (2000) sloc. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'resources/scripts/build/src/for')
-rwxr-xr-xresources/scripts/build/src/for53
1 files changed, 53 insertions, 0 deletions
diff --git a/resources/scripts/build/src/for b/resources/scripts/build/src/for
new file mode 100755
index 00000000..b3e9ff8e
--- /dev/null
+++ b/resources/scripts/build/src/for
@@ -0,0 +1,53 @@
+#!/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
+
+project=""
+
+main()
+{
+ [ $# -lt 1 ] && err "project name not specified"
+ project="${1}"
+ shift 1
+
+ [ "${project}" = "ich9utils" ] && project="util/ich9utils"
+
+ [ -d "${project}" ] || ./fetch "${project}" \
+ || err "Cannot download project, ${project}"
+ [ -d "${project}" ] || err "Project, ${project}, not downloaded"
+
+ if [ "${project}" = "uefitool" ]; then
+ (
+ cd uefitool || err "cannot cd to uefitool/"
+ cmake UEFIExtract/ || err "cannot cmake UEFIExtract"
+ )
+ fi
+ make -C "${project}" || err "Cannot build project, ${project}"
+}
+
+err()
+{
+ printf "ERROR: build/src: %s\n" "${1}" 1>&2
+ exit 1
+}
+
+main $@