open-consul/scripts/build.sh

52 lines
1.2 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
2013-12-19 19:22:08 +00:00
#
# This script builds the application from source.
set -e
# Get the parent directory of where this script is.
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"
# Change into that directory
cd $DIR
# Get the git commit
GIT_COMMIT=$(git rev-parse HEAD)
GIT_DIRTY=$(test -n "`git status --porcelain`" && echo "+CHANGES" || true)
# If we're building on Windows, specify an extension
EXTENSION=""
if [ "$(go env GOOS)" = "windows" ]; then
EXTENSION=".exe"
fi
GOPATHSINGLE=${GOPATH%%:*}
if [ "$(go env GOOS)" = "windows" ]; then
GOPATHSINGLE=${GOPATH%%;*}
fi
2014-05-30 20:05:06 +00:00
if [ "$(go env GOOS)" = "freebsd" ]; then
export CC="clang"
fi
# On OSX, we need to use an older target to ensure binaries are
# compatible with older linkers
if [ "$(go env GOOS)" = "darwin" ]; then
export MACOSX_DEPLOYMENT_TARGET=10.6
fi
2013-12-19 19:22:08 +00:00
# Install dependencies
echo "--> Installing dependencies to speed up builds..."
2014-05-30 20:05:06 +00:00
go get \
-ldflags "${CGO_LDFLAGS}" \
./...
2013-12-19 19:22:08 +00:00
# Build!
echo "--> Building..."
go build \
2014-05-30 20:05:06 +00:00
-ldflags "${CGO_LDFLAGS} -X main.GitCommit ${GIT_COMMIT}${GIT_DIRTY}" \
2013-12-19 19:22:08 +00:00
-v \
-o bin/consul${EXTENSION}
cp bin/consul${EXTENSION} ${GOPATHSINGLE}/bin