summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-08-29 15:30:36 +1000
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-08-31 14:03:24 +1000
commit3d408f06f22049c94a295c501852876f4f4e5e36 (patch)
tree52cb9cde239a97bcc837793f9a6693085aeddea6
parent93065a40773611096f2b1e095563ae21c5056c93 (diff)
downloadtalos-petitboot-3d408f06f22049c94a295c501852876f4f4e5e36.tar.gz
talos-petitboot-3d408f06f22049c94a295c501852876f4f4e5e36.zip
docker: Allow CC and make command to be customised
Allow CC to be passed through to change the default compiler, and also allow the invocation of 'make' to be customised. An example use case of this is to set CC=/usr/bin/clang and use --make-command 'scan-build make' to build Petitboot with the clang static analyzer. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
-rw-r--r--docker/Dockerfile.builder2
-rwxr-xr-xdocker/build-pb19
-rw-r--r--docker/builder-include2
3 files changed, 18 insertions, 5 deletions
diff --git a/docker/Dockerfile.builder b/docker/Dockerfile.builder
index 4bf89d3..321629f 100644
--- a/docker/Dockerfile.builder
+++ b/docker/Dockerfile.builder
@@ -12,6 +12,8 @@ RUN apt-get update && apt-get install -y \
autoconf \
autopoint \
bison \
+ clang \
+ clang-tools \
flex \
gettext \
gcc \
diff --git a/docker/build-pb b/docker/build-pb
index 1d87fb4..6229550 100755
--- a/docker/build-pb
+++ b/docker/build-pb
@@ -16,6 +16,7 @@ usage () {
echo " -d --dry-run - Do not run docker commands." >&2
echo " -h --help - Show this help and exit." >&2
echo " -i --interactive - Run an interactive pb-builder container." >&2
+ echo " -m --make-command - Set a specific command to be called for 'make'.">&2
echo " -o --configure-opts - Extra arguments for configure." >&2
echo " -t --tag - Print Docker tag to stdout and exit." >&2
echo " -v --verbose - Verbose execution." >&2
@@ -23,13 +24,14 @@ usage () {
echo " DOCKER_TAG - Default: '${DOCKER_TAG}'" >&2
echo " CFLAGS - Default: '${CFLAGS}'" >&2
echo " LDFLAGS - Default: '${LDFLAGS}'" >&2
+ echo " CC - Default: '${CC}'" >&2
echo "Examples:" >&2
echo " ${name} -vc"
echo " ${name} -v"
}
-short_opts="cdhio:tv"
-long_opts="check,dry-run,help,interactive,configure-opts:,tag,verbose"
+short_opts="cdhim:o:tv"
+long_opts="check,dry-run,help,interactive,make-command:,configure-opts:,tag,verbose"
opts=$(getopt --options ${short_opts} --long ${long_opts} -n "${name}" -- "$@")
@@ -58,6 +60,11 @@ while true ; do
interactive=1
shift
;;
+ -m | --make-command)
+ shift
+ makecmd=${1}
+ shift
+ ;;
-o | --configure-opts)
shift
configure_opts=${1}
@@ -120,10 +127,14 @@ else
docker_extra="true"
fi
-flags="CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS}"
+if [[ -z "${makecmd}" ]]; then
+ makecmd="make"
+fi
+
+flags="CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} CC=${CC}"
cd "${TOP_DIR}"
docker_args="${docker_base_args} ${docker_user_args}"
run_cmd "docker run ${docker_args} ${DOCKER_TAG} /bin/bash \
-e ${bash_debug} \
- -c './bootstrap && ${flags} ./configure ${configure_opts[@]} && make && ${docker_extra}'"
+ -c './bootstrap && ${flags} ./configure ${configure_opts[@]} && ${makecmd} && ${docker_extra}'"
diff --git a/docker/builder-include b/docker/builder-include
index fe88e90..7f56dc2 100644
--- a/docker/builder-include
+++ b/docker/builder-include
@@ -51,7 +51,7 @@ show_tag () {
echo "${DOCKER_TAG}"
}
-: ${VERSION:="4"}
+: ${VERSION:="5"}
: ${ARCH_TAG:="$(arch_tag)"}
: ${DOCKER_NAME:="pb-builder"}
: ${DOCKER_TAG:="${DOCKER_NAME}:${VERSION}${ARCH_TAG}"}
OpenPOWER on IntegriCloud