#!/usr/bin/env bash # Copyright 2021-2022 The Hush Developers # Distributed under the GPLv3 software license, see the accompanying # file LICENSE or https://www.gnu.org/licenses/gpl-3.0.en.html # # Purpose: Script to build the ARM or aarch64 architecture, # which is what the PinePhone boards are running # Check if go is installed on system... v=`go version | { read _ _ v _; echo ${v#go}; }` function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; } # Check if go is installed on system and exits if it is not if ! [ -x "$(command -v go)" ]; then echo 'Error: go is not installed. Install go and try again.' >&2 exit 1 # If go is installed, then check system for at least version 1.13.0 elif [ $(version $v) -lt $(version "1.13.0") ]; then echo 'Error: the go version you have installed requires at least version 1.13, which your system does not have installed. Install a newer version of go and try again.' >&2 echo '' echo "Try out gobrew to install a newer version than what your OS package manager supplies." exit 1 fi echo "" echo "Welcome to the Hush magic folks..." echo "" echo ".------..------..------..------..------..------..------..------..------..------..------..------." echo "|L.--. ||I.--. ||G.--. ||H.--. ||T.--. ||W.--. ||A.--. ||L.--. ||L.--. ||E.--. ||T.--. ||D.--. |" echo "| :/\: || (\/) || :/\: || :/\: || :/\: || :/\: || (\/) || :/\: || :/\: || (\/) || :/\: || :/\: |" echo "| (__) || :\/: || :\/: || (__) || (__) || :\/: || :\/: || (__) || (__) || :\/: || (__) || (__) |" echo "| '--'L|| '--'I|| '--'G|| '--'H|| '--'T|| '--'W|| '--'A|| '--'L|| '--'L|| '--'E|| '--'T|| '--'D|" echo "+------'+------'+------'+------'+------'+------'+------'+------'+------'+------'+------'+------'" # now to compiling... echo "" echo "You have at least go 1.13.0 installed, so starting to compile Hush lightwalletd for you..." cd `pwd`/cmd/server # Add diff build flags per golang versions [ Search -mod= here https://go.dev/ref/mod ] if [ $(version $v) -lt $(version "1.16.0") ]; then env GOOS=linux GOARCH=arm64 go build -o lightwalletd_aarch64 main.go else env GOOS=linux GOARCH=arm64 go build -mod=mod -o lightwalletd_aarch64 main.go fi # check if compile was success if [ $? -ne 0 ]; then echo "" echo 'Error: Something went wrong and lightwalletd did not build successfully... Please reach out if you need support.' >&2 exit 1 else mv lightwalletd_aarch64 lightwalletd mv lightwalletd `pwd`/../../lightwalletd echo "" echo "Hush lightwalletd is now compiled for your ARM farm or Pine Rock64. Enjoy and reach out if you need support." echo "For options, run ./lightwalletd --help" fi