diff options
| -rwxr-xr-x | build | 25 | ||||
| -rw-r--r-- | include/git.sh | 6 | ||||
| -rw-r--r-- | include/rom.sh | 3 | ||||
| -rw-r--r-- | include/vendor.sh | 8 | ||||
| -rwxr-xr-x | script/trees | 54 | 
5 files changed, 69 insertions, 27 deletions
@@ -20,8 +20,13 @@ err="fail"  main()  {  	[ $# -lt 1 ] && $err "bad command" -	spath="script/$1"; shcmd="shift 1" -	[ "${1#-*}" != "$1" ] && spath="script/trees" && shcmd=":" + +	spath="script/$1" +	shcmd="shift 1" +	if [ "${1#-*}" != "$1" ]; then +		spath="script/trees" +		shcmd=":" +	fi  	for g in "command -v git" "git config --global user.name" \  	    "git config --global user.email" "git_init"; do @@ -34,12 +39,16 @@ main()  	inject) shift 1; vendor_inject "$@" ;;  	download) shift 1; vendor_download "$@" ;;  	roms) -		[ $# -gt 1 ] && [ "$2" = "serprog" ] && \ -		    mk -b stm32-vserprog pico-serprog && return 0 -		shift 1; x_ ./mk -b coreboot "$@" ;; +		if [ $# -gt 1 ] && [ "$2" = "serprog" ]; then +			mk -b stm32-vserprog pico-serprog +			return 0 +		fi +		shift 1 +		x_ ./mk -b coreboot "$@" ;;  	*)  		[ -f "$spath" ] || $err "bad command" -		$shcmd; "$spath" "$@" || $err "excmd: $spath $(echo "$@")" ;; +		$shcmd +		"$spath" "$@" || $err "excmd: $spath $(echo "$@")" ;;  	esac  	set -u -e # some commands disable them. turn them on!  } @@ -89,7 +98,9 @@ build_release()  {  	(  	cd "$srcdir" || $err "$vdir: !cd \"$srcdir\"" -	./mk -f; x_ rm -Rf tmp; rmgit . +	./mk -f +	x_ rm -Rf tmp +	rmgit .  	x_ mv src/docs docs  	) || $err "can't create release files" diff --git a/include/git.sh b/include/git.sh index 21a1f3b7..e5aa4861 100644 --- a/include/git.sh +++ b/include/git.sh @@ -51,12 +51,14 @@ git_prep()  	chkvars rev; tmpclone "$1" "$2" "$tmpgit" "$rev" "$_patchdir"  	if singletree "$project" || [ $# -gt 4 ]; then -		prep_submodules "$_loc"; fi +		prep_submodules "$_loc" +	fi  	[ "$project" = "coreboot" ] && [ -n "$xtree" ] && [ $# -gt 2 ] && \  	    [ "$xtree" != "$tree" ] && link_crossgcc "$_loc"  	[ "$XBMK_RELEASE" = "y" ] && \ -	    [ "$_loc" != "$XBMK_CACHE/repo/$project" ] && rmgit "$tmpgit" +	    [ "$_loc" != "$XBMK_CACHE/repo/$project" ] && \ +	    rmgit "$tmpgit"  	move_repo "$_loc"  } diff --git a/include/rom.sh b/include/rom.sh index 3e8c9c9b..dde17b69 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -119,7 +119,8 @@ mkcorebootbin()  	tmprom="$TMPDIR/coreboot.rom"  	$dry x_ cp "$srcdir/build/coreboot.rom" "$tmprom" -	initmode="${defconfig##*/}"; displaymode="${initmode##*_}" +	initmode="${defconfig##*/}" +	displaymode="${initmode##*_}"  	[ "$displaymode" = "$initmode" ] && displaymode="" # "normal" config  	initmode="${initmode%%_*}"  	cbfstool="elf/cbfstool/$tree/cbfstool" diff --git a/include/vendor.sh b/include/vendor.sh index fb7d7cdf..018e734b 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -110,6 +110,7 @@ getfiles()  fetch()  {  	dl_type="$1"; dl="$2"; dl_bkup="$3"; dlsum="$4"; _dest="${5##*../}" +  	[ "$5" = "/dev/null" ] && return 0; _dl="$XBMK_CACHE/file/$dlsum"  	if [ "$dl_type" = "fspm" ] || [ "$dl_type" = "fsps" ]; then  		# HACK: if grabbing fsp from coreboot, fix the path for lbmk @@ -559,7 +560,9 @@ patch_release_roms()  process_release_rom()  { -	_xrom="$1"; _xromname="${1##*/}" +	_xrom="$1" +	_xromname="${1##*/}" +  	[ -L "$_xrom" ] && \  	    $err "$archive -> '${_xrom#"tmp/DO_NOT_FLASH/"}' is a symlink"  	[ -f "$_xrom" ] || return 0 @@ -709,7 +712,8 @@ inject()  	else  		"$cbfstool" "$rom" add -f "$_dest" -n "$cbfsname" \  		    -t $_t $_offset || $err "$rom !add $_t ($_dest)" -	fi; xchanged="y"; : +	fi +	xchanged="y"; :  }  modify_mac_addresses() diff --git a/script/trees b/script/trees index 43cd39cc..0b6f9fba 100755 --- a/script/trees +++ b/script/trees @@ -22,6 +22,7 @@ main()  	while getopts f:b:m:u:c:x:s:l:n:d: option; do  		[ -n "$_f" ] && $err "only one flag is permitted"  		_f="$1" && [ "$_f" = "-d" ] && dry=":" +  		case "$1" in  		-d) mode="" ;;  		-b) mode="" ;; @@ -35,23 +36,36 @@ main()  		-n) mode="nconfig" ;;  		*) $err "invalid option '-$option'" ;;  		esac -		[ -z "${OPTARG+x}" ] && shift 1 && break -		project="${OPTARG#src/}"; shift 2 + +		if [ -z "${OPTARG+x}" ]; then +			shift 1 +			break +		fi + +		project="${OPTARG#src/}" +		shift 2  	done  	[ -z "$_f" ] && $err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)" -	[ -z "$project" ] && mk $_f $(ls -1 config/git) && return 1 +	if [ -z "$project" ]; then +		mk $_f $(ls -1 config/git) +		return 1 +	fi  	[ -f "config/git/$project/pkg.cfg" ] || $err "'$project' not defined"  	for d in "elf" "config/data" "config" "src"; do  		eval "${d#*/}dir=\"$d/$project\"" -	done; dest_dir="$elfdir" +	done +	dest_dir="$elfdir" +  	listfile="$datadir/build.list"  	[ -f "$listfile" ] || listfile="" # optional on all projects  	mkhelpercfg="$datadir/mkhelper.cfg" -	e "$mkhelpercfg" f missing && mkhelpercfg="$TMPDIR/mkhelper.cfg" && \ -	    x_ touch "$mkhelpercfg" +	if e "$mkhelpercfg" f missing; then +		mkhelpercfg="$TMPDIR/mkhelper.cfg" +		x_ touch "$mkhelpercfg" +	fi  	targets="$*"; cmd="build_targets $targets"  	singletree "$project" && cmd="build_project" @@ -118,12 +132,15 @@ configure_project()  	eval "`setvars "" cleanargs build_depend autoconfargs xtree postmake \  	    tree_depend makeargs btype mkhelper bootstrapargs premake release \  	    xarch xlang`" -	_tcfg="$1/target.cfg"; badhash="n"; [ -f "$_tcfg" ] || btype="auto" +	_tcfg="$1/target.cfg" +	badhash="n" +	[ -f "$_tcfg" ] || btype="auto"  	[ -f "$datadir/mkhelper.cfg" ] && \  	    eval "`setcfg "$datadir/mkhelper.cfg"`"  	while [ -f "$_tcfg" ] || [ "$cmd" != "build_project" ]; do -		eval "`setvars "" rev tree`"; eval "`setcfg "$_tcfg"`" +		eval "`setvars "" rev tree`" +		eval "`setcfg "$_tcfg"`"  		printf "Loading %s config: %s\n" "$project" "$_tcfg"  		[ "$_f" = "-d" ] && build_depend="" # dry run @@ -131,7 +148,8 @@ configure_project()  		[ "$mode" = "fetch" ] || break  		[ "${_tcfg%/*/target.cfg}" = "${_tcfg%"/$tree/target.cfg"}" ] \ -		    && break; _tcfg="${_tcfg%/*/target.cfg}/$tree/target.cfg" +		    && break +		_tcfg="${_tcfg%/*/target.cfg}/$tree/target.cfg"  	done  	[ "$XBMK_RELEASE" = "y" ] && [ "$release" = "n" ] && return 1  	[ -z "$btype" ] || [ "${mode%config}" = "$mode" ] || return 1 @@ -141,15 +159,19 @@ configure_project()  	[ -n "$tree" ] && mdir="$mdir/$tree"  	[ -f "CHANGELOG" ] || check_project_hashes -	[ "$mode" = "fetch" ] || x_ ./mk -f "$project" "$target" -	[ "$mode" = "fetch" ] || return 0 -	[ -f "CHANGELOG" ] && return 1; fetch_${cmd#build_}; return 1 +	if [ "$mode" != "fetch" ]; then +		x_ ./mk -f "$project" "$target" +		return 0 +	fi +	[ -f "CHANGELOG" ] || fetch_${cmd#build_} +	return 1  }  build_dependencies()  {  	for bd in $build_depend; do -		bd_p="${bd%%/*}"; bd_t="${bd##*/}" +		bd_p="${bd%%/*}" +		bd_t="${bd##*/}"  		[ -z "$bd_p" ] && $dry $err "$project/$tree: !bd '$bd'"  		[ "${bd##*/}" = "$bd" ] && bd_t=""  		[ -z "$bd_p" ] || $dry ./mk -b $bd_p $bd_t \ @@ -160,7 +182,8 @@ build_dependencies()  check_project_hashes()  {  	mkdir -p "$XBMK_CACHE/hash" || $err "!mkdir '$XBMK_CACHE/hash'" -	old_pjhash=""; [ ! -f "$XBMK_CACHE/hash/$project$tree" ] || \ +	old_pjhash="" +	[ ! -f "$XBMK_CACHE/hash/$project$tree" ] || \  	    read -r old_pjhash < "$XBMK_CACHE/hash/$project$tree"  	x_ rm -f "$TMPDIR/project.list" "$TMPDIR/project.hash" \ @@ -171,7 +194,8 @@ check_project_hashes()  		[ -d "$rmchk" ] || continue  		find "$rmchk" -type f -not -path "*/.git*/*" >> \  		    "$TMPDIR/project.tmp" || $err "!find $rmchk > project.tmp" -	done; sort "$TMPDIR/project.tmp" > "$TMPDIR/project.list" || \ +	done +	sort "$TMPDIR/project.tmp" > "$TMPDIR/project.list" || \  	    $err "!sort project tmp/list"  	while read -r rmchk; do  | 
