github.com/coreos/mantle@v0.13.0/build (about)

     1  #!/usr/bin/env bash
     2  
     3  set -e
     4  
     5  cd $(dirname $0)
     6  
     7  source ./env
     8  
     9  if [[ $# -eq 0 ]]; then
    10  	set -- cmd/*
    11  fi
    12  
    13  version=$(git describe --dirty)
    14  version="${version#v}"
    15  version="${version/-/+}"
    16  ldflags="-X ${REPO_PATH}/version.Version=${version}"
    17  
    18  host_build() {
    19  	echo "Building $1"
    20  	go build -i \
    21  		-ldflags "${ldflags}" \
    22  		-mod vendor \
    23  		-o "bin/$1" \
    24  		"${REPO_PATH}/cmd/$1"
    25  }
    26  
    27  cross_build() {
    28  	local a
    29  	for a in amd64 arm64; do
    30  		echo "Building $a/$1"
    31  		mkdir -p "bin/$a"
    32  		CGO_ENABLED=0 GOARCH=$a \
    33  			go build -mod=vendor -ldflags "${ldflags}" \
    34  			-o "bin/$a/$1" "${REPO_PATH}/cmd/$1"
    35  	done
    36  }
    37  
    38  for cmd in "$@"; do
    39  	cmd=$(basename "${cmd}")
    40  	if [[ "${cmd}" == kolet ]]; then
    41  		cross_build kolet
    42  	else
    43  		host_build "${cmd}"
    44  	fi
    45  done