jammy-amd64-tf-m-build: Add build option for local running containers

The current build script build.sh works well in the CI environment, but
not for a local machine.
Introduce 'base-ci' and 'base-local' build stages and introduce a build
option for the build script to indicate the build is for "local".

If no build option is provided, the build script performs as before:
build.sh      -> STANDARD/CI BUILD
build.sh -l   -> LOCAL BUILD/TESTS

Change-Id: If201a91170f65dbc072e9c65fe65e1da6ba945b5
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
diff --git a/jammy-amd64-tf-m-build/Dockerfile b/jammy-amd64-tf-m-build/Dockerfile
index 37a313e..589b46a 100644
--- a/jammy-amd64-tf-m-build/Dockerfile
+++ b/jammy-amd64-tf-m-build/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:jammy
+FROM ubuntu:jammy AS base
 
 # Environment variables used by CI scripts
 ENV ARMLMD_LICENSE_FILE=27000@flexnet.trustedfirmware.org
@@ -109,6 +109,7 @@
     apt clean ;\
     rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
+FROM base AS base-ci
 USER buildslave
 
 RUN set -e ;\
@@ -121,3 +122,6 @@
 
 EXPOSE 22
 ENTRYPOINT ["/usr/sbin/setup-sshd"]
+
+FROM base AS base-local
+ENV PATH="${PATH}:/home/buildslave/compiler/gcc-11-2/bin"
diff --git a/jammy-amd64-tf-m-build/build.sh b/jammy-amd64-tf-m-build/build.sh
index fb9c5d5..082c341 100755
--- a/jammy-amd64-tf-m-build/build.sh
+++ b/jammy-amd64-tf-m-build/build.sh
@@ -9,6 +9,22 @@
   rm -f *.list *.key
 }
 
+target=ci
+
+while [ $# -gt 0 ]; do
+  case $1 in
+    -l)
+    echo "local build config chosen"
+    target=local
+    shift
+    ;;
+    *)
+    echo "Invalid argument: only -l allowed"
+    exit 1
+    ;;
+  esac
+done
+
 export LANG=C
 
 DISTRIBUTION=$(basename ${PWD} | cut -f1 -d '-')
@@ -22,5 +38,5 @@
 cp ../ARMCompiler6.21_standalone_linux-x86_64.tar.gz .
 
 image=trustedfirmware/ci-${ARCHITECTURE}-${PROJECT}-ubuntu:${DISTRIBUTION}${DOCKER_SUFFIX}
-docker build --pull --tag=$image .
+docker build --target=base-$target --pull --tag=$image .
 echo $image > .docker-tag