diff options
author | Warner Losh <imp@FreeBSD.org> | 2020-05-01 17:16:57 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2020-05-01 17:16:57 +0000 |
commit | 22ea5a7250b866e9c53d9d20601b6291f6624549 (patch) | |
tree | aa7731bf3c43f2c25204f8303d19b9b370c0778f | |
parent | a10ed08fe00fba7f96e8c95e84ede42735bb5801 (diff) | |
download | src-22ea5a7250b866e9c53d9d20601b6291f6624549.tar.gz src-22ea5a7250b866e9c53d9d20601b6291f6624549.zip |
When we have an invalid build option, don't rm -rf the current
directory.
Add a quick sanity check to objdir before using it. It must start
with /. If there was a make error getting it, report that and continue
with the next target. If there was anything else, bail out.
Notes
Notes:
svn path=/head/; revision=360538
-rwxr-xr-x | tools/boot/universe.sh | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tools/boot/universe.sh b/tools/boot/universe.sh index 68e77f8c706b..cc09d8f946c5 100755 --- a/tools/boot/universe.sh +++ b/tools/boot/universe.sh @@ -19,6 +19,12 @@ # Output is put into _.boot.$TARGET_ARCH.log in sys.boot. # +die() +{ + echo $* + exit 1 +} + dobuild() { local ta=$1 @@ -27,6 +33,12 @@ dobuild() echo -n "Building $ta ${opt} ... " objdir=$(make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make -V .OBJDIR" | tail -1) + case ${objdir} in + /*) ;; + make*) echo Error message from make: $objdir + continue ;; + *) die Crazy object dir: $objdir ;; + esac rm -rf ${objdir} if ! make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make clean cleandepend cleandir obj depend" \ > $lf 2>&1; then @@ -116,4 +128,3 @@ for i in \ ta=${i##*/} dobuild $ta _.boot.${ta}.debug.log "LOADER_DEBUG=yes" done - |