summaryrefslogtreecommitdiff
path: root/script/update/trees
diff options
context:
space:
mode:
Diffstat (limited to 'script/update/trees')
-rwxr-xr-xscript/update/trees27
1 files changed, 16 insertions, 11 deletions
diff --git a/script/update/trees b/script/update/trees
index 6f4786d9..a12f3ef8 100755
--- a/script/update/trees
+++ b/script/update/trees
@@ -12,7 +12,7 @@ set -u -e
eval "$(setvars "" xarch cfgsdir codedir config config_name xlang mode \
elfdir listfile project target target_dir targets tree _f target1 \
- bootstrapargs autoconfargs)"
+ bootstrapargs autoconfargs cmakedir)"
main()
{
@@ -54,14 +54,6 @@ build_projects()
codedir="src/${project}"
[ -d "$codedir" ] || x_ ./update trees -f "$project"
- if [ "$project" = "uefitool" ]; then
- (
- x_ cd src/uefitool
- cmake UEFIExtract/ || [ -f Makefile ] || \
- err "build_projects: !cmake UEFIExtract/"
- ) || err "can't build cmake on uefiextract"
- fi
-
[ "$mode" = "distclean" ] && mode="clean"
run_make_command || return 0
}
@@ -214,6 +206,7 @@ handle_makefile()
run_make_command()
{
+ check_cmake "$codedir"
[ -z "$mode" ] && check_autoconf "$codedir"
check_makefile "$codedir" || return 1
@@ -228,15 +221,27 @@ run_make_command()
make -C "$codedir" distclean 2>/dev/null || :
}
+check_cmake()
+{
+ [ -z "${cmakedir}" ] || \
+ check_makefile "${1}" || \
+ cmake -B "${1}" "${1}/${cmakedir}" || \
+ check_makefile "${1}" || \
+ err "check_cmake ${1}: can't cmake ${cmakedir}"
+ [ -z "${cmakedir}" ] || check_makefile "${1}" || \
+ err "check_cmake ${1}: could not generate Makefile"
+ return 0
+}
+
check_autoconf()
{
(
_cfgopt=""
- cd "${codedir}" || err "!cd $codedir"
+ cd "${1}" || err "!cd $1"
[ -f "bootstrap" ] && x_ ./bootstrap $bootstrapargs
[ -f "autogen.sh" ] && x_ ./autogen.sh
[ -f "configure" ] && x_ ./configure $autoconfargs; return 0
- ) || err "can't bootstrap project: $codedir"
+ ) || err "can't bootstrap project: $1"
}
check_makefile()