#!/usr/bin/env bash USER_DIR=/home/user GLUON_DIR=$USER_DIR/gluon SITE_DIR=$USER_DIR/Firmware-building/site_config EXPERIMENTAL_SITE=$SITE_DIR/experimental/site BETA_SITE=$SITE_DIR/beta/site STABLE_SITE=$SITE_DIR/stable/site # $1: site directory set_site_directory() { pushd "$GLUON_DIR" # if site file exists, remove it if [ -a site ]; then unlink site fi ln -s "$1" popd } build() { pushd "$GLUON_DIR" for TARGET in $(make list-targets); do make -j16 GLUON_TARGET="$TARGET" done popd } # $1: autoupdater branch move_output_images() { pushd "$GLUON_DIR" mv output/images "output-images-$1" popd } #unset multiple env vars unset BUILD_EXPERIMENTAL BUILD_BETA BUILD_STABLE case $1 in exp) BUILD_EXPERIMENTAL=1 ;; beta) BUILD_BETA=1 ;; stable) BUILD_STABLE=1 ;; all) BUILD_EXPERIMENTAL=1 BUILD_BETA=1 BUILD_STABLE=1 ;; *) echo "fflux firmware building script" echo "Usage: build.sh " exit 1 ;; esac pushd $GLUON_DIR if [ -d $GLUON_DIR/output/images ]; then echo "Error: output images directory contains images. Please remove them before building." echo "Delete 'gluon/output/images' directory and try again." exit 1 fi if [ -n "$BUILD_EXPERIMENTAL" ]; then set_site_directory $EXPERIMENTAL_SITE build move_output_images experimental fi if [ -n "$BUILD_BETA" ]; then set_site_directory $BETA_SITE build move_output_images beta fi if [ -n "$BUILD_STABLE" ]; then set_site_directory $STABLE_SITE build move_output_images stable fi popd