diff options
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 | 
