From 41cb29703ba58a0a2dd0cdbf3fff4df143b78e07 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 29 Apr 2020 14:40:00 +0200 Subject: [PATCH] Adding compile.sh --- compile.sh | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 compile.sh diff --git a/compile.sh b/compile.sh new file mode 100755 index 0000000..2f75cde --- /dev/null +++ b/compile.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +SYSTEMS=( windows linux freebsd ) + +ARCHS=( 386 amd64 amd64p32 arm arm64 ppc ppc64 ) + +function usage() { + echo "Usage: ${0##*/} [ -h|--help ] [ --target ] [ -a|--arch ] [ -p|--package ]" + echo "" + echo " Valid systems:" + for i in "${SYSTEMS[@]}"; do + echo " * ${i}" + done + echo "" + echo " Valid architectures:" + for i in "${ARCHS[@]}"; do + echo " * ${i}" + done + echo "" + exit 1 +} + +options=$(getopt -n "${0##*/}" -o "ht:a:p" -l "help,target:,arch:,package" -- "$@") + +[ $? -eq 0 ] || usage + +eval set -- "$options" + +MAKE_TARGET="all" + +while true; do + + case $1 in + -p|--package) + MAKE_TARGET="package_deb" + ;; + -t|--target) + shift + REGEX=$(echo "${SYSTEMS[@]}" | sed 's/[[:space:]]/|/g') + [[ ! "$1" =~ ^($REGEX)$ ]] && { + echo "Incorrect system '$1' provided" + usage + } + export GOOS=$1 + ;; + -a|--arch) + shift + REGEX=$(echo "${ARCHS[@]}" | sed 's/[[:space:]]/|/g') + [[ ! "$1" =~ ^($REGEX)$ ]] && { + echo "Incorrect architecture '$1' provided" + usage + } + export GOARCH=$1 + ;; + -h|--help) usage ;; + --) shift + break + ;; + esac + shift +done + +MESSAGE="" +if [ ! -z "${GOOS}" ]; then + MESSAGE="[\e[34m::\e[0m] Crosscompiling for: ${GOOS}" +fi + +if [ ! -z "${GOARCH}" ]; then + MESSAGE="${MESSAGE} (${GOARCH})" +fi + + +[ ! -z "${MESSAGE}" ] && echo -e "" $MESSAGE + +make -B ${MAKE_TARGET}