diff options
Diffstat (limited to 'setup')
-rwxr-xr-x | setup | 36 |
1 files changed, 20 insertions, 16 deletions
@@ -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!" |