diff options
| author | Leah Rowe <leah@libreboot.org> | 2023-12-30 13:08:29 +0000 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2023-12-30 13:53:45 +0000 | 
| commit | eb3a8e2b53ab2a81847a154d86e84b7e9fff0bb8 (patch) | |
| tree | 569a4116a29077544af560d7e69c872ba53bec3a /script/update/trees | |
| parent | 34ded35fa616a323f582d3e942d7b49ac9beeef4 (diff) | |
unify script/update/trees and script/build/grub
the script can now also handle autoconf build systems,
whereas this could previously only be done for grub.
with this change, the overall sloccount is also lower
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'script/update/trees')
| -rwxr-xr-x | script/update/trees | 30 | 
1 files changed, 26 insertions, 4 deletions
| diff --git a/script/update/trees b/script/update/trees index 556181ed..9d1e89ff 100755 --- a/script/update/trees +++ b/script/update/trees @@ -33,6 +33,7 @@ main()  	done  	[ -z "$_f" ] && err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)"  	[ -z "$project" ] && err "project name not specified" +	elfdir="elf/${project}"  	check_project @@ -63,7 +64,6 @@ build_projects()  build_targets()  { -	elfdir="elf/${project}"  	[ "$elfdir" = "elf/coreboot" ] && \  		elfdir="elf/coreboot_nopayload_DO_NOT_FLASH" @@ -204,17 +204,39 @@ handle_makefile()  run_make_command()  { -	[ -f "${codedir}/Makefile" ] || [ -f "${codedir}/makefile" ] || \ -	    [ -f "${codedir}/GNUmakefile" ] || return 1 +	[ -z "$mode" ] && check_autoconf "$codedir" +	check_makefile "$codedir" || return 1 +  	[ "$project" = "coreboot" ] && [ -z "$mode" ] && \  		x_ printf "%s\n" "${version%%-*}" \  		    > "${codedir}/.coreboot-version" -	x_ make $mode -j$(nproc) -C "$codedir" +	make $mode -j$(nproc) FS_PAYLOAD_MODULES="" -C "$codedir" || \ +	    err "run_make $codedir: !make $mode" +  	[ "$mode" != "clean" ] && return 0  	make -C "$codedir" distclean 2>/dev/null || :  } +check_autoconf() +{ +	( +	_cfgopt="" +	cd "${codedir}" || err "!cd $codedir" +	[ "$project" = "grub" ] && _cfgopt="--gnulib-srcdir=gnulib/ --no-git" +	[ -f "bootstrap" ] && x_ ./bootstrap $_cfgopt +	[ -f "autogen.sh" ] && x_ ./autogen.sh +	[ "$project" = "grub" ] && _cfgopt="--with-platform=coreboot" +	[ -f "configure" ] && x_ ./configure $_cfgopt; return 0 +	) || err "can't bootstrap project: $codedir" +} + +check_makefile() +{ +	[ -f "${1}/Makefile" ] || [ -f "${1}/makefile" ] || \ +	    [ -f "${1}/GNUmakefile" ] || return 1; return 0 +} +  copy_elf()  {  	while read -r f; do | 
