From d70e7e81bfd44553f425fd828c0231ae3b14b4d5 Mon Sep 17 00:00:00 2001 From: Alexander Filippov Date: Tue, 21 May 2019 15:45:26 +0300 Subject: setup: Use config name instead layer name Allows user to pass a config name instead of a layer name. This can be extremely useful for layers, which contain several configs. E.g. to build firmware for swift you can call: ``` . setup swift bitbake obmc-phosphor-image ``` Change-Id: I397a53b0cc135f622e4b3dc712ff93f6a0c10b8a Signed-off-by: Alexander Filippov --- setup | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/setup b/setup index a1b3cc182..09329cda1 100755 --- a/setup +++ b/setup @@ -24,24 +24,28 @@ fi machine() { local target=$1 local build_dir=$2 - local mfg mach realmach - for mfg in meta-*; do - for mach in $mfg/meta-*; do - if [ -d "$mach" -a -d "$mach/conf/machine" ]; then - realmach=${mach##*meta-} - # If a target is specified, then check for a match, - # otherwise just list what we've discovered - if [ -n "$target" ]; then - if [ "$realmach" = "$target" ]; then - echo Machine $target is $mach - TEMPLATECONF="$mach/conf" source oe-init-build-env $build_dir - return - fi - else - echo "$realmach" + local cfg name tmpl + for cfg in meta-*/meta-*/conf/machine/*.conf; do + name=${cfg##*/} + name=${name%.conf} + tmpl=${cfg%/machine/*.conf} + # If a target is specified, then check for a match, + # otherwise just list what we've discovered + if [ -n "$target" ]; then + if [ "${name}" = "${target}" ]; then + echo "Machine ${target} found in ${tmpl%/conf}" + TEMPLATECONF="${tmpl}" source \ + oe-init-build-env ${build_dir} + + if [ "$(cat conf/templateconf.cfg)" = "${tmpl}" ]; then + sed "s/^\(MACHINE\s*[?:]*\s*=\s*\).*$/\1${target}/" \ + -i conf/local.conf fi + return fi - done + else + echo "${name}" + fi done [ -n "$target" ] && echo "No such machine!" -- cgit v1.2.3