mirror of https://github.com/fmartingr/nudge.git
56 lines
1.4 KiB
Makefile
56 lines
1.4 KiB
Makefile
VERSION := $(shell cat VERSION)
|
|
PROJECT := nudge
|
|
SOURCE_FILES ?=./internal/... ./cmd/...
|
|
BUILDS_PATH := ./build
|
|
IMAGE_PATH := fmartingr/nudge:${VERSION}
|
|
|
|
export SOURCE_FILES
|
|
export BUILDS_PATH
|
|
|
|
.PHONY: all
|
|
all: help
|
|
|
|
# this is godly
|
|
# https://news.ycombinator.com/item?id=11939200
|
|
.PHONY: help
|
|
help: ### this screen. Keep it first target to be default
|
|
ifeq ($(UNAME), Linux)
|
|
@grep -P '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
|
|
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
else
|
|
@# this is not tested, but prepared in advance for you, Mac drivers
|
|
@awk -F ':.*###' '$$0 ~ FS {printf "%15s%s\n", $$1 ":", $$2}' \
|
|
$(MAKEFILE_LIST) | grep -v '@awk' | sort
|
|
endif
|
|
|
|
.PHONY: build-docker
|
|
build-docker:
|
|
$(info Make: Building images)
|
|
@docker build -t ${IMAGE_PATH} .
|
|
|
|
.PHONY: run-docker
|
|
run-docker: build-docker
|
|
$(info Make: Run docker)
|
|
@docker run --rm -t ${IMAGE_PATH}
|
|
|
|
.PHONY: clean
|
|
clean: ### clean test cache, build files
|
|
$(info: Make: Clean)
|
|
@rm -rf ./build
|
|
@go clean ${CLEAN_OPTIONS}
|
|
|
|
.PHONY: build
|
|
build: clean ### builds the project for the setup os/arch combinations
|
|
$(info: Make: Build)
|
|
@go build -tags netgo -a -v -ldflags "${LD_FLAGS}" -o ${BUILDS_PATH}/nudge ./cmd/*.go
|
|
@chmod +x ${BUILDS_PATH}/*
|
|
|
|
.PHONY: quick-run
|
|
quick-run: ### Executes the project using golang
|
|
go run cmd/*.go
|
|
|
|
.PHONY: run
|
|
run: ### Executes the project build locally
|
|
@make build
|
|
${BUILDS_PATH}/nudge
|