oc-deploy/src/Makefile

102 lines
2.6 KiB
Makefile
Raw Normal View History

2024-09-02 09:09:46 +02:00
BIN_NAME := oc-deploy
BIN_OPTS :=
##################
SOURCES := $(wildcard *.go) $(wildcard */*.go)
BIN_DIR = ../bin/
PLUGINS := $(wildcard ../plugins/*/*.go)
OBJS := ${PLUGINS:.go=.so}
2024-09-18 11:09:21 +02:00
##################
2024-09-18 21:31:18 +02:00
DATE := $(shell date --iso-8601)
2024-09-18 11:09:21 +02:00
GOVERSION := $(shell go version)
VERSION := $(shell git describe --tags --abbrev=8 --dirty --always --long)
2024-09-18 21:31:18 +02:00
PREFIX := oc-deploy/occonst
2024-09-18 11:09:21 +02:00
2024-09-18 21:31:18 +02:00
LDFLAGS := "-X '${PREFIX}.Version=${VERSION}' -X '${PREFIX}.Date=${DATE}' -X '${PREFIX}.GoVersion=${GOVERSION}'"
2024-09-18 11:09:21 +02:00
##################
2024-09-02 09:09:46 +02:00
%.so: %.go
go build -buildmode=plugin -o $@ $<
help:
@echo
@echo 'Usage:'
@echo ' make build Génère les exécutables.'
2024-09-04 09:11:13 +02:00
@echo ' make get-deps Dependency download'
2024-09-02 09:09:46 +02:00
@echo ' make run BIN_OPTS=... Go run'
@echo ' make run_install BIN_OPTS=... Go run'
@echo ' make run_uninstall BIN_OPTS=... Go run'
2024-09-18 11:09:21 +02:00
@echo ' make run_version Go run'
2024-09-02 09:09:46 +02:00
@echo ' make exec BIN_OPTS=... exécutable'
@echo ' make exec_install BIN_OPTS=... exécutable'
@echo ' make exec_uninstall BIN_OPTS=... exécutable'
2024-09-18 11:09:21 +02:00
@echo ' make exec_version exécutable'
2024-09-02 09:09:46 +02:00
@echo ' make test Test'
@echo ' make clean Clean the directory tree.'
@echo
2024-09-18 11:09:21 +02:00
@echo ' DATE ${DATE}'
@echo ' GOVERSION ${GOVERSION}'
@echo ' VERSION ${VERSION}'
@echo
2024-09-02 09:09:46 +02:00
${BIN_DIR}/${BIN_NAME}: ${SOURCES} $(OBJS)
2024-09-18 21:31:18 +02:00
go build -o ${BIN_DIR}/${BIN_NAME} -ldflags ${LDFLAGS}
2024-09-02 09:09:46 +02:00
2024-09-02 13:43:11 +02:00
get-deps:
@go mod tidy
2024-09-02 09:09:46 +02:00
build: ${BIN_DIR}/${BIN_NAME}
2024-09-18 11:09:21 +02:00
run:
2024-09-02 09:09:46 +02:00
@go run main.go ${BIN_OPTS}
2024-09-18 11:09:21 +02:00
run_generate:
2024-09-02 09:09:46 +02:00
@go run main.go generate ${BIN_OPTS}
2024-09-18 11:09:21 +02:00
run_install:
2024-09-02 09:09:46 +02:00
@go run main.go install ${BIN_OPTS}
2024-09-18 11:09:21 +02:00
run_uninstall:
2024-09-02 09:09:46 +02:00
@go run main.go uninstall ${BIN_OPTS}
2024-09-18 11:09:21 +02:00
run_version:
@go run main.go version
2024-09-02 09:09:46 +02:00
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}
2024-09-18 11:09:21 +02:00
exec_version: ${BIN_DIR}/${BIN_NAME} $(OBJS)
@${BIN_DIR}/${BIN_NAME} version
2024-09-02 09:09:46 +02:00
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
2024-09-09 12:11:10 +02:00
test_%:
go test oc-deploy/$(subst test_,,$@) -coverprofile=.coverage.out -v
@go tool cover -html=.coverage.out -o .coverage.html
2024-09-02 09:09:46 +02:00
test:
@go test ./... -coverprofile=.coverage.out -v
go tool cover -html=.coverage.out -o .coverage.html