github.com/verrazzano/verrazzano@v1.7.1/tools/vz/Makefile (about) 1 # Copyright (c) 2022, 2023, Oracle and/or its affiliates. 2 # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 include ../../make/quality.mk 4 5 MAKEFILE_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) 6 VZ_DIR:=github.com$(shell echo ${MAKEFILE_DIR} | sed 's/.*github.com//') 7 VERSION_DIR:=${VZ_DIR}/cmd/version 8 9 NAME:=vz 10 11 GIT_COMMIT:=$(shell git rev-parse HEAD) 12 CLI_VERSION:=$(shell grep verrazzano-development-version ${MAKEFILE_DIR}/../../.verrazzano-development-version | cut -d= -f 2) 13 BUILD_DATE:=$(shell date +"%Y-%m-%dT%H:%M:%SZ") 14 15 ifdef RELEASE_VERSION 16 CLI_VERSION=${RELEASE_VERSION} 17 endif 18 ifndef RELEASE_BRANCH 19 RELEASE_BRANCH=$(shell git rev-parse --abbrev-ref HEAD) 20 endif 21 22 DIST_DIR:=dist 23 ENV_NAME=vz 24 GO=GO111MODULE=on GOPRIVATE=github.com/verrazzano/* go 25 CLI_GO_LDFLAGS=-X '${VERSION_DIR}.gitCommit=${GIT_COMMIT}' -X '${VERSION_DIR}.buildDate=${BUILD_DATE}' -X '${VERSION_DIR}.cliVersion=${CLI_VERSION}' 26 27 # 28 # CLI 29 # 30 31 .DEFAULT_GOAL := help 32 .PHONY: help 33 help: ## Display this help. 34 @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-25s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) 35 36 .PHONY: run 37 run: 38 $(GO) run ${GOPATH}/src/${VZ_DIR}/main.go 39 # 40 # Go build related tasks 41 # 42 .PHONY: go-build 43 go-build: ## build the CLI for multiple architecture and platforms 44 GOOS=darwin GOARCH=amd64 $(GO) build \ 45 -ldflags "${CLI_GO_LDFLAGS}" \ 46 -o out/darwin_amd64/vz \ 47 ${GOPATH}/src/${VZ_DIR}/main.go 48 GOOS=darwin GOARCH=arm64 $(GO) build \ 49 -ldflags "${CLI_GO_LDFLAGS}" \ 50 -o out/darwin_arm64/vz \ 51 ${GOPATH}/src/${VZ_DIR}/main.go 52 GOOS=linux GOARCH=amd64 $(GO) build \ 53 -ldflags "${CLI_GO_LDFLAGS}" \ 54 -o out/linux_amd64/vz \ 55 ${GOPATH}/src/${VZ_DIR}/main.go 56 GOOS=linux GOARCH=arm64 $(GO) build \ 57 -ldflags "${CLI_GO_LDFLAGS}" \ 58 -o out/linux_arm64/vz \ 59 ${GOPATH}/src/${VZ_DIR}/main.go 60 61 .PHONY: build-cli 62 build-cli: ## build the CLI for current system and architecture 63 $(GO) build -ldflags "${CLI_GO_LDFLAGS}" -o out/$(shell go env GOOS)_$(shell go env GOARCH)/vz ${GOPATH}/src/${VZ_DIR}/main.go 64 65 .PHONY: cli 66 cli: ## install the CLI 67 $(GO) install -ldflags "${CLI_GO_LDFLAGS}" ./... 68 69 .PHONY: unit-test 70 unit-test: cli 71 $(GO) test -v ./...