X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=scripts%2Fenvsetup.sh;h=6be4d38e1a1c337e5cc66f3291e949bf729e733f;hb=a507d328e4216858026682fbc7c97246a38bdb20;hp=adde54010c2d7af764d0f521a8673aeda2168beb;hpb=91f7784cfd26ca7d26e1006d78c067e74c7dc92a;p=AGL%2Fmeta-agl.git diff --git a/scripts/envsetup.sh b/scripts/envsetup.sh index adde54010..6be4d38e1 100644 --- a/scripts/envsetup.sh +++ b/scripts/envsetup.sh @@ -1,11 +1,98 @@ #!/bin/bash +find_and_ack_eula() { + # Handle EULA , if needed. This is a generic method to handle BSPs + # that might (or not) come with a EULA. If a machine has a EULA, we + # assume that its corresponding layers has conf/EULA/$MACHINE file + # with the EULA text, which we will display to the user and request + # for acceptance. If accepted, the variable ACCEPT_EULA_$MACHINE is + # set to 1 in local.conf, which can later be used by the BSP. + # If the env variable EULA_$MACHINE is set it is used by default, + # without prompting the user. + # FIXME: there is a potential issue if the same $MACHINE is set in more than one layer.. but we should assert that earlier + EULA=$(find $1 -print | grep "conf/eula/$MACHINE" | grep -v scripts | grep -v openembedded-core || true) + if [ -n "$EULA" ]; then + # remove '-' since we are constructing a bash variable name here + EULA_MACHINE="EULA_$(echo $MACHINE | sed 's/-//g')" + # NOTE: indirect reference / dynamic variable + if [ -n "${!EULA_MACHINE}" ]; then + # the EULA_$MACHINE variable is set in the environment, so we just configure + # ACCEPT_EULA_$MACHINE in local.conf + EULA_ACCEPT=${!EULA_MACHINE} + else + # so we need to ask user if he/she accepts the EULA: + cat < [build dir]" return 1 fi -case "$1" in +MACHINE="$1" +echo "MACHINE=$MACHINE" + +EULA_ACCEPT=0 + +case "$MACHINE" in "porter") # setup proprietary gfx drivers and multimedia packages COPY_MM_SCRIPT=meta-renesas/meta-rcar-gen2/scripts/setup_mm_packages.sh @@ -18,28 +105,70 @@ case "$1" in fi fi - # template conf for R-Car2 M2 Porter board - TEMPLATECONF=$PWD/meta-renesas/meta-rcar-gen2/conf + if [ ! -d "$TEMPLATECONF" ]; then + # set template conf for R-Car2 M2 Porter board + TEMPLATECONF="$PWD/meta-renesas/meta-rcar-gen2/conf" + fi + ;; + "porter-nogfx") + MACHINE="porter" + if [ ! -d "$TEMPLATECONF" ]; then + # set template conf for R-Car2 M2 Porter board + TEMPLATECONF="$PWD/meta-renesas/meta-rcar-gen2/conf" + fi + ;; + "raspberrypi3") + ;; + "raspberrypi2") ;; "intel-corei7-64") - # template conf for MinnowBoard MAX - TEMPLATECONF=$PWD/meta-agl-demo/conf + ;; + "minnowboard") + # alias for minnowboardmax + MACHINE="intel-corei7-64" + ;; + "qemux86") ;; "qemux86-64") - # template conf for QEMU x86-64 - TEMPLATECONF=$PWD/meta-agl-demo/conf + ;; + "dra7xx-evm") + ;; + "vayu") + # nickname for dra7xx-evm + MACHINE="dra7xx-evm" + ;; + "wandboard") + ;; + "dragonboard-410c") + find_and_ack_eula meta-qcom ;; *) # nothing to do here - echo "WARN: '$1' is not tested by AGL Distro" - if [ -z $TEMPLATECONF ]; then - TEMPLATECONF=$PWD/meta-agl-demo/conf - fi + echo "WARN: '$MACHINE' is not tested by AGL Distro" ;; esac -echo "envsetup: Set '$1 as MACHINE." -export MACHINE="$1" +echo "TEMPALTECONF=$TEMPLATECONF" +# set template conf for each +if [ -z "$TEMPLATECONF" ]; then + # lookup meta-agl-demo first + if [ -d "$PWD/meta-agl-demo/templates/$MACHINE/conf" ]; then + TEMPLATECONF="$PWD/meta-agl-demo/templates/$MACHINE/conf" + # lookup meta-agl 2nd + elif [ -d "$PWD/meta-agl/templates/$MACHINE/conf" ]; then + TEMPLATECONF="$PWD/meta-agl/templates/$MACHINE/conf" + fi +fi +echo "TEMPLATECONF=$TEMPLATECONF" + +echo "envsetup: Set '$1' as MACHINE." +export MACHINE + +# fallback +if [ ! -d "$TEMPLATECONF" ]; then + # Allow to use templates at meta-agl-demo/conf + TEMPLATECONF="$PWD/meta-agl-demo/conf" +fi echo "envsetup: Using templates for local.conf & bblayers.conf from :" echo " '$TEMPLATECONF'" @@ -66,3 +195,14 @@ fi export BB_ENV_EXTRAWHITE +unset TEMPLATECONF + +case "$EULA_ACCEPT" in + 1) + echo "" >> conf/local.conf + echo "# EULA" >> conf/local.conf + echo "ACCEPT_EULA_$MACHINE = \"1\"" >> conf/local.conf + ;; + *) + ;; +esac