BIN_NAME := oc-deploy BIN_OPTS := ################## SOURCES := $(wildcard *.go) $(wildcard */*.go) BIN_DIR = ../bin/ PLUGINS := $(wildcard ../plugins/*/*.go) OBJS := ${PLUGINS:.go=.so} ################## DATE := $(shell date --iso-8601) GOVERSION := $(shell go version) VERSION := $(shell git describe --tags --abbrev=8 --dirty --always --long) PREFIX := oc-deploy/occonst LDFLAGS := "-X '${PREFIX}.Version=${VERSION}' -X '${PREFIX}.Date=${DATE}' -X '${PREFIX}.GoVersion=${GOVERSION}'" ################## %.so: %.go go build -buildmode=plugin -o $@ $< help: @echo @echo 'Usage:' @echo ' make build Génère les exécutables.' @echo ' make get-deps Dependency download' @echo ' make run BIN_OPTS=... Go run' @echo ' make run_install BIN_OPTS=... Go run' @echo ' make run_uninstall BIN_OPTS=... Go run' @echo ' make run_version Go run' @echo ' make exec BIN_OPTS=... exécutable' @echo ' make exec_install BIN_OPTS=... exécutable' @echo ' make exec_uninstall BIN_OPTS=... exécutable' @echo ' make exec_version exécutable' @echo ' make test Test' @echo ' make clean Clean the directory tree.' @echo @echo ' DATE ${DATE}' @echo ' GOVERSION ${GOVERSION}' @echo ' VERSION ${VERSION}' @echo ${BIN_DIR}/${BIN_NAME}: ${SOURCES} $(OBJS) go build -o ${BIN_DIR}/${BIN_NAME} -ldflags ${LDFLAGS} get-deps: @go mod tidy build: ${BIN_DIR}/${BIN_NAME} run: @go run main.go ${BIN_OPTS} run_generate: @go run main.go generate ${BIN_OPTS} run_install: @go run main.go install ${BIN_OPTS} run_uninstall: @go run main.go uninstall ${BIN_OPTS} run_version: @go run main.go version exec: ${BIN_DIR}/${BIN_NAME} $(OBJS) @${BIN_DIR}/${BIN_NAME} ${BIN_OPTS} exec_install: ${BIN_DIR}/${BIN_NAME} $(OBJS) @${BIN_DIR}/${BIN_NAME} install ${BIN_OPTS} exec_uninstall: ${BIN_DIR}/${BIN_NAME} $(OBJS) @${BIN_DIR}/${BIN_NAME} uninstall ${BIN_OPTS} exec_version: ${BIN_DIR}/${BIN_NAME} $(OBJS) @${BIN_DIR}/${BIN_NAME} version clean: @test ! -e ${BIN_DIR}/${BIN_NAME} || rm ${BIN_DIR}/${BIN_NAME} @test ! -e .coverage.out || rm .coverage.out @test ! -e .coverage.html || rm .coverage.html @test ! -e go.sum || rm go.sum @test ! -e .oc-deploy.log || rm .oc-deploy.log @rm -rf workspace_* .PHONY: test test_%: go test oc-deploy/$(subst test_,,$@) -coverprofile=.coverage.out -v @go tool cover -html=.coverage.out -o .coverage.html test: @go test ./... -coverprofile=.coverage.out -v go tool cover -html=.coverage.out -o .coverage.html