Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # Copyright © 2020 Arm Ltd and Contributors. All rights reserved. |
| 4 | # SPDX-License-Identifier: MIT |
| 5 | # |
| 6 | |
| 7 | SOURCE="${BASH_SOURCE[0]}" |
| 8 | while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink |
| 9 | TARGET="$(readlink "$SOURCE")" |
| 10 | if [[ $TARGET == /* ]]; then |
| 11 | # "SOURCE '$SOURCE' is an absolute symlink to '$TARGET'" |
| 12 | SOURCE="$TARGET" |
| 13 | else |
| 14 | DIR="$( dirname "$SOURCE" )" |
| 15 | # "SOURCE '$SOURCE' is a relative symlink to '$TARGET' (relative to '$DIR')" |
| 16 | SOURCE="$DIR/$TARGET" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located |
| 17 | fi |
| 18 | done |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 19 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )" |
| 20 | |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 21 | CMD=$( basename "$0" ) |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 22 | |
| 23 | usage() { |
| 24 | echo "Usage: $CMD [options]" |
| 25 | echo "Options: -t(type) <Debug or Release>" |
| 26 | echo " -c(lean) build" |
| 27 | echo " -s(tatic libraries) <1 or 0>" |
| 28 | echo " -w(indows) build" |
| 29 | exit 1 |
| 30 | } |
| 31 | # defaults |
| 32 | TYPE=Release |
| 33 | CLEAN=0 |
| 34 | STATIC=0 |
| 35 | WINDOWS=0 |
| 36 | |
| 37 | # Parse the command line |
| 38 | while getopts "whct:s:" opt; do |
| 39 | case "$opt" in |
| 40 | h|\?) usage;; |
| 41 | t) TYPE=$OPTARG;; |
| 42 | c) CLEAN=1;; |
| 43 | s) STATIC=$OPTARG;; |
| 44 | w) WINDOWS=1;; |
| 45 | esac |
| 46 | done |
| 47 | shift $((OPTIND - 1)) |
| 48 | |
| 49 | if [ $CLEAN == 1 ]; then |
| 50 | echo "removing ${DIR}/build" |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 51 | rm -rf "${DIR}"/build |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 52 | fi |
| 53 | |
| 54 | BUILD_DIR="build" |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 55 | [ -d build ] || ( mkdir build || exit ) |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 56 | echo $WINDOWS |
| 57 | if [ "$WINDOWS" -eq "1" ]; then |
| 58 | echo "doing windows" |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 59 | cd $BUILD_DIR || exit |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 60 | [ -d windows ] || mkdir windows |
| 61 | BUILD_DIR=$BUILD_DIR/windows |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 62 | cd "$DIR" || exit |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 63 | fi |
| 64 | # lower case TYPE in a posix compliant manner |
| 65 | LC_TYPE=$(echo "$TYPE" | tr '[:upper:]' '[:lower:]') |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 66 | if [ "${LC_TYPE}" == "debug" ]; then |
| 67 | DEBUGDIR=("$DIR/$BUILD_DIR/debug") |
| 68 | # shellcheck disable=SC2128 |
| 69 | [ -d "$DEBUGDIR" ] || (cd ${BUILD_DIR} && ( mkdir debug || exit ) && cd ..) |
| 70 | # shellcheck disable=SC2128 |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 71 | BUILD_DIR=$DEBUGDIR |
| 72 | else |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 73 | RELEASEDIR=("$DIR/$BUILD_DIR/release") |
| 74 | # shellcheck disable=SC2128 |
| 75 | [ -d "$RELEASEDIR" ] || (cd "${BUILD_DIR}" && ( mkdir release || exit ) && cd ..) |
| 76 | # shellcheck disable=SC2128 |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 77 | BUILD_DIR=$RELEASEDIR |
| 78 | fi |
| 79 | |
| 80 | echo "Build Directory: ${BUILD_DIR}" |
| 81 | |
| 82 | CMAKE=cmake |
| 83 | CMARGS="-DCMAKE_BUILD_TYPE=$TYPE \ |
| 84 | -DBUILD_STATIC_PIPE_LIBS=$STATIC \ |
| 85 | -DBUILD_PIPE_ONLY=1" |
| 86 | if [ "$WINDOWS" -eq "1" ]; then |
| 87 | CMARGS="$CMARGS \ |
| 88 | -DCMAKE_TOOLCHAIN_FILE=${DIR}/toolchain-x86-ubuntu-mingw64.cmake" |
| 89 | fi |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 90 | MAKE="make" |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 91 | |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 92 | cd "${BUILD_DIR}" || exit |
Jim Flynn | bbfe603 | 2020-07-20 16:57:44 +0100 | [diff] [blame] | 93 | pwd |
James Conroy | 04cd603 | 2022-04-20 17:16:50 +0100 | [diff] [blame] | 94 | ( eval $CMAKE "$CMARGS" "$DIR" && eval ${MAKE} "$MAKEFLAGS" ) |