UI_VERSION=$(shell cat web/bore/package.json | grep version | head -1 | awk -F: '{ print $$2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]') VERSION_PATH=github.com/jkuri/bore/internal/version GIT_COMMIT=$(shell git rev-list -1 HEAD) BUILD_DATE=$(shell date +%FT%T%z) RELEASE_DIR=build/release OS="darwin freebsd linux windows" ARCH="amd64 arm" OSARCH="!darwin/arm !windows/arm" build: statik_landing wire build_server build_client build_server: @CGO_ENABLED=0 go build -ldflags "-X ${VERSION_PATH}.GitCommit=${GIT_COMMIT} -X ${VERSION_PATH}.UIVersion=${UI_VERSION} -X ${VERSION_PATH}.BuildDate=${BUILD_DATE}" -o ./build/bore-server ./cmd/bore-server build_client: @CGO_ENABLED=0 go build -ldflags "-X ${VERSION_PATH}.GitCommit=${GIT_COMMIT} -X ${VERSION_PATH}.UIVersion=${UI_VERSION} -X ${VERSION_PATH}.BuildDate=${BUILD_DATE}" -o ./build/bore ./cmd/bore build_ui_landing: @if [ ! -d "web/bore/dist" ]; then cd web/bore && npm run build; fi wire: @wire ./cmd/bore-server statik_landing: build_ui_landing @if [ ! -r "internal/ui/landing/statik.go" ]; then statik -dest ./internal/ui -p landing -src ./web/bore/dist; fi install_dependencies: @go get github.com/jkuri/statik github.com/google/wire/cmd/... github.com/mitchellh/gox @go install github.com/jkuri/statik @go install github.com/google/wire/cmd/... @cd web/bore && npm install clean: @rm -rf build/ internal/ui web/bore/dist release: statik_landing wire @CGO_ENABLED=0 gox -os=${OS} -arch=${ARCH} -osarch=${OSARCH} -output "${RELEASE_DIR}/{{.Dir}}_{{.OS}}_{{.Arch}}" -ldflags "-X ${VERSION_PATH}.GitCommit=${GIT_COMMIT} -X ${VERSION_PATH}.UIVersion=${UI_VERSION} -X ${VERSION_PATH}.BuildDate=${BUILD_DATE}" ./cmd/bore ./cmd/bore-server .PHONY: wire build_server build_client build build_ui_landing statik_landing clean release