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  ./...