mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-09-19 21:20:31 +02:00
Compare commits
11 Commits
4878cec84d
...
88887c0163
| Author | SHA1 | Date | |
|---|---|---|---|
| 88887c0163 | |||
| 0c41ea82dd | |||
| bbc56b714b | |||
| 6a5b4c98d6 | |||
| 50eec6d485 | |||
| 40b1a3e0bb | |||
| 59cbc1784c | |||
| 6725b616f3 | |||
| 7507655d34 | |||
| 2aad50cd59 | |||
| f7b9c9e410 |
@@ -26,11 +26,3 @@ cbfscfg=""
|
||||
premake="corebootpremake"
|
||||
mkhelper="coreboot_pad_one_byte"
|
||||
postmake="mkcorebootbin"
|
||||
|
||||
# must confirm, but i think git-clean
|
||||
# will also delete crossgcc builds in
|
||||
# coreboot.git, which we do not currently
|
||||
# rely on out-of-tree
|
||||
gitclean="n"
|
||||
|
||||
# so, TODO: support out-of-tree xgcc builds
|
||||
|
||||
Vendored
+7
-36
@@ -356,50 +356,21 @@ git_init()
|
||||
"git_init" "$@"; :
|
||||
done
|
||||
|
||||
git_init_src .
|
||||
[ -d "src" ] && \
|
||||
fx_ git_init_src x_ find src -maxdepth 1 -mindepth 1 -type d; :
|
||||
}
|
||||
|
||||
git_init_src()
|
||||
{
|
||||
gitdir="${1-}"
|
||||
|
||||
[ -z "$gitdir" ] && \
|
||||
err "Invalid argument" git_init_src "$@"
|
||||
[ -L "$gitdir/.git" ] && \
|
||||
[ -L ".git" ] && \
|
||||
err "'$xbmkpwd/.git' is a symlink" "git_init" "$@"
|
||||
[ -e "$gitdir/.git" ] && \
|
||||
[ -e ".git" ] && \
|
||||
return 0
|
||||
|
||||
git_projectname="${gitdir#*/}"
|
||||
git_treename="${git_projectname#*/}"
|
||||
[ "$git_projectname" = "${git_projectname#*/}" ] && \
|
||||
git_treename=""
|
||||
|
||||
git_projectname="${git_projectname%%/*}"
|
||||
git_treename="${git_treename%%*/}"
|
||||
|
||||
if ! singletree "$git_projectname"; then
|
||||
if [ -z "$git_treename" ]; then
|
||||
fx_ git_init_src x_ find "$gitdir" -maxdepth 1 \
|
||||
-mindepth 1 -type d
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
(
|
||||
export GIT_COMMITTER_DATE="@$versiondate +0000"
|
||||
export GIT_AUTHOR_DATE="@$versiondate +0000"
|
||||
|
||||
x_ git -C "$gitdir" init 1>/dev/null 2>/dev/null
|
||||
x_ git -C "$gitdir" add -A . 1>/dev/null 2>/dev/null
|
||||
x_ git -C "$gitdir" -c user.name="xbmk" \
|
||||
-c user.email="xbmk@example.com" \
|
||||
commit -m "$projectname $version $gitdir" \
|
||||
x_ git init 1>/dev/null 2>/dev/null
|
||||
x_ git add -A . 1>/dev/null 2>/dev/null
|
||||
x_ git -c user.name="xbmk" -c user.email="xbmk@example.com" \
|
||||
commit -m "$projectname $version" \
|
||||
--author="xbmk <xbmk@example.com>" 1>/dev/null 2>/dev/null
|
||||
x_ git -C "$gitdir" -c user.name="xbmk" \
|
||||
-c user.email="xbmk@example.com" \
|
||||
x_ git -c user.name="xbmk" -c user.email="xbmk@example.com" \
|
||||
tag -a "$version" -m "$projectname $version" \
|
||||
1>/dev/null 2>/dev/null; :
|
||||
|
||||
|
||||
@@ -68,8 +68,6 @@ flag=""
|
||||
# : means false
|
||||
if_do_make=""
|
||||
if_not_do_make=":"
|
||||
if_make_clean=":"
|
||||
if_not_make_clean=""
|
||||
if_make_config=":"
|
||||
if_not_make_config=""
|
||||
if_build=":" # can be false even if make is true
|
||||
@@ -85,13 +83,9 @@ eval "`newvar autoconfargs autogenargs badhash badtghash bootstrapargs \
|
||||
premake project release rev srcdir target target_dir tree xarch xgcctree \
|
||||
xlang`"
|
||||
|
||||
# can be overridden in project mkhelper.cfg
|
||||
gitclean="y"
|
||||
gitcleanargs="-fdx"
|
||||
|
||||
main()
|
||||
{
|
||||
flags="f:F:b:m:u:c:x:s:l:n:d:"
|
||||
flags="f:F:b:m:u:s:l:n:d:"
|
||||
|
||||
while getopts $flags option
|
||||
do
|
||||
@@ -104,30 +98,21 @@ main()
|
||||
# ./mk -m coreboot does: make menuconfig -C src/coreboot/tree
|
||||
|
||||
case "$flag" in
|
||||
-d)
|
||||
# -d is similar to -b, except that
|
||||
# a large number of operations will be
|
||||
# skipped. these are "if_not_dry_build build" scenarios
|
||||
# where only a subset of build tasks are done,
|
||||
# and $if_not_dry_build is prefixed to skipped commands
|
||||
|
||||
-b) : ;; # build a source tree
|
||||
-d) # dry builds. -d is like -b but skips many build steps
|
||||
if_dry_build=""
|
||||
if_not_dry_build=":"
|
||||
;;
|
||||
-b) : ;;
|
||||
-u) mode="oldconfig" ;;
|
||||
-m) mode="menuconfig" ;;
|
||||
-c) mode="distclean" ;;
|
||||
-x) mode="crossgcc-clean" ;;
|
||||
-f|-F) # download source code for a project
|
||||
# macros. colon means false.
|
||||
if_do_make=":"
|
||||
if_dry_build=""
|
||||
if_not_do_make=""
|
||||
if_dry_build=""
|
||||
if_not_dry_build=":"
|
||||
[ "$flag" = "-F" ] && \
|
||||
forcepull="y"; : # never skip git fetch/pull
|
||||
;;
|
||||
-u) mode="oldconfig" ;;
|
||||
-m) mode="menuconfig" ;;
|
||||
-s) mode="savedefconfig" ;;
|
||||
-l) mode="olddefconfig" ;;
|
||||
-n) mode="nconfig" ;;
|
||||
@@ -138,17 +123,11 @@ main()
|
||||
if_build=""
|
||||
if_not_build=":"
|
||||
fi
|
||||
|
||||
if [ "${mode%config}" != "$mode" ]; then
|
||||
if_make_config=""
|
||||
if_not_make_config=":"
|
||||
fi
|
||||
|
||||
if [ "${mode%clean}" != "$mode" ]; then
|
||||
if_make_clean=""
|
||||
if_not_make_clean=":"
|
||||
fi
|
||||
|
||||
if [ -z "${OPTARG+x}" ]; then
|
||||
shift 1
|
||||
break
|
||||
@@ -208,15 +187,9 @@ single_tree_build()
|
||||
$if_not_dry_build elfcheck || \
|
||||
return 0
|
||||
|
||||
$if_make_clean \
|
||||
eval mode="clean"
|
||||
|
||||
run_make_command || \
|
||||
return 0
|
||||
|
||||
$if_build \
|
||||
$if_not_dry_build \
|
||||
copy_elf; :
|
||||
run_make_command && \
|
||||
$if_build $if_not_dry_build \
|
||||
copy_elf; :
|
||||
}
|
||||
|
||||
multi_tree_build()
|
||||
@@ -263,11 +236,7 @@ handle_defconfig()
|
||||
|
||||
srcdir="src/$project/$tree"
|
||||
|
||||
[ ! -d "$srcdir" ] && \
|
||||
$if_not_make_clean \
|
||||
return 0
|
||||
|
||||
for y in "$target_dir/config"/*
|
||||
[ -d "$srcdir" ] && for y in "$target_dir/config"/*
|
||||
do
|
||||
[ ! -f "$y" ] && \
|
||||
$if_not_dry_build \
|
||||
@@ -281,11 +250,7 @@ handle_defconfig()
|
||||
continue; :
|
||||
|
||||
for _xarch in $xarch; do
|
||||
$if_not_build \
|
||||
break
|
||||
$if_dry_build \
|
||||
break
|
||||
[ -n "$_xarch" ] && \
|
||||
[ -n "$_xarch" ] && $if_build $if_not_dry_build \
|
||||
check_cross_compiler "$_xarch"; :
|
||||
done; :
|
||||
|
||||
@@ -304,7 +269,6 @@ configure_project()
|
||||
eval "`newvar autoconfargs badhash badtghash bootstrapargs \
|
||||
build_depend buildtype cleanargs makeargs mkhelper postmake \
|
||||
premake release xarch xgcctree xlang`"
|
||||
gitclean="y"
|
||||
|
||||
[ ! -f "$_tcfg" ] && \
|
||||
buildtype="auto"
|
||||
@@ -524,7 +488,7 @@ handle_makefile()
|
||||
{
|
||||
if $if_not_dry_build check_makefile "$srcdir"; then
|
||||
$if_not_dry_build \
|
||||
x_ make -C "$srcdir" $cleanargs clean
|
||||
x_ make -C "$srcdir" clean $cleanargs
|
||||
fi
|
||||
|
||||
[ -f "$defconfig" ] && \
|
||||
@@ -541,11 +505,6 @@ handle_makefile()
|
||||
$if_make_config \
|
||||
$if_not_dry_build \
|
||||
x_ cp "$srcdir/$_copy" "$defconfig"; :
|
||||
|
||||
[ -e "$srcdir/.git" ] && [ "$gitclean" = "y" ] && \
|
||||
$if_make_clean \
|
||||
$if_not_dry_build \
|
||||
x_ git -C "$srcdir" clean $gitcleanargs; :
|
||||
}
|
||||
|
||||
run_make_command()
|
||||
@@ -553,35 +512,33 @@ run_make_command()
|
||||
$if_build \
|
||||
x_ $premake
|
||||
|
||||
$if_not_dry_build check_cmake "$srcdir" && \
|
||||
$if_build \
|
||||
$if_not_dry_build \
|
||||
check_autoconf "$srcdir"
|
||||
|
||||
$if_not_dry_build check_makefile "$srcdir" || \
|
||||
return 1
|
||||
|
||||
$if_not_dry_build \
|
||||
x_ make -C "$srcdir" $mode -j$XBMK_THREADS $makeargs
|
||||
run_make_command_real || return 1
|
||||
|
||||
$if_build \
|
||||
x_ $mkhelper
|
||||
x_ $mkhelper; :
|
||||
}
|
||||
|
||||
$if_not_make_clean \
|
||||
run_make_command_real()
|
||||
{
|
||||
$if_dry_build \
|
||||
return 0
|
||||
|
||||
check_makefile "$srcdir" || \
|
||||
return 0
|
||||
x_ check_cmake "$srcdir"
|
||||
|
||||
make -C "$srcdir" $cleanargs distclean || \
|
||||
x_ make -C "$srcdir" $cleanargs clean; :
|
||||
$if_build \
|
||||
check_autoconf "$srcdir"
|
||||
|
||||
check_makefile "$srcdir" || return 1
|
||||
|
||||
x_ make -C "$srcdir" $mode -j$XBMK_THREADS $makeargs
|
||||
}
|
||||
|
||||
check_cmake()
|
||||
{
|
||||
$if_dry_build \
|
||||
return 0
|
||||
[ ! -n "$cmakedir" ] && \
|
||||
|
||||
[ -z "$cmakedir" ] && \
|
||||
return 0
|
||||
|
||||
check_makefile "$1" || \
|
||||
@@ -627,7 +584,7 @@ copy_elf()
|
||||
"cannot read '$listfile'" "copy_elf" "$@"; :
|
||||
fi
|
||||
|
||||
( x_ make clean -C "$srcdir" $cleanargs ) || \
|
||||
( x_ make -C "$srcdir" clean $cleanargs ) || \
|
||||
err "can't make-clean '$srcdir'" "copy_elf" "$@"; :
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user