46 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| if [[ $# -ne 2 ]]; then
 | |
| 	echo "" 1>&2
 | |
| 	echo "Compiler for a Go PACKAGE producing darwin/GOARCH binaries." 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	echo "usage: $0 GOARCH PACKAGE" 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	echo "GOARCH must be one of: amd64, arm64." 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	echo "Features:" 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	echo "* automatically sets -tags=ooni_psiphon_config when possible;" 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	echo "* if GOLANG_EXTRA_FLAGS is set, pass it to the Go compiler." 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	echo "Example:" 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	echo "  ./CLI/go-build-darwin arm64 ./internal/cmd/miniooni" 1>&2
 | |
| 	echo "" 1>&2
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| GOOS=darwin
 | |
| GOARCH=$1
 | |
| PACKAGE=$2
 | |
| 
 | |
| if [[ -f ./internal/engine/psiphon-config.json.age &&
 | |
| 	-f ./internal/engine/psiphon-config.key ]]; then
 | |
| 	OONI_PSIPHON_TAGS=ooni_psiphon_config
 | |
| else
 | |
| 	OONI_PSIPHON_TAGS=""
 | |
| fi
 | |
| 
 | |
| PRODUCT=$(basename $PACKAGE)
 | |
| 
 | |
| set -x
 | |
| export CGO_ENABLED=1
 | |
| export GOOS=$GOOS
 | |
| export GOARCH=$GOARCH
 | |
| go build -tags=$OONI_PSIPHON_TAGS -ldflags="-s -w" \
 | |
| 	-o ./CLI/$PRODUCT-$GOOS-$GOARCH ${GOLANG_EXTRA_FLAGS:-} \
 | |
| 	$PACKAGE
 |