28 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| 
								 | 
							
								SHELL := /bin/bash
							 | 
						||
| 
								 | 
							
								DATE ?= $(shell date +%FT%T%z)
							 | 
						||
| 
								 | 
							
								BASE_PATH := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
							 | 
						||
| 
								 | 
							
								VERSION ?= $(shell git describe --tags --always --match=v* 2> /dev/null || \
							 | 
						||
| 
								 | 
							
								           			cat $(CURDIR)/.version 2> /dev/null || echo v0)
							 | 
						||
| 
								 | 
							
								VERSION_HASH = $(shell git rev-parse HEAD)
							 | 
						||
| 
								 | 
							
								BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								go = GOGC=off go
							 | 
						||
| 
								 | 
							
								MODULE = $(shell env GO111MODULE=on go list -m)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# printing
							 | 
						||
| 
								 | 
							
								# $Q (quiet) is used in the targets as a replacer for @.
							 | 
						||
| 
								 | 
							
								# This macro helps to print the command for debugging by setting V to 1. Example `make test-unit V=1`
							 | 
						||
| 
								 | 
							
								V = 0
							 | 
						||
| 
								 | 
							
								Q = $(if $(filter 1,$V),,@)
							 | 
						||
| 
								 | 
							
								# $M is a macro to print a colored ▶ character. Example `$(info $(M) running coverage tests…)` will print "▶ running coverage tests…"
							 | 
						||
| 
								 | 
							
								M = $(shell printf "\033[34;1m▶\033[0m")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								GREEN  := $(shell tput -Txterm setaf 2)
							 | 
						||
| 
								 | 
							
								YELLOW := $(shell tput -Txterm setaf 3)
							 | 
						||
| 
								 | 
							
								WHITE  := $(shell tput -Txterm setaf 7)
							 | 
						||
| 
								 | 
							
								CYAN   := $(shell tput -Txterm setaf 6)
							 | 
						||
| 
								 | 
							
								RESET  := $(shell tput -Txterm sgr0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								define global_option
							 | 
						||
| 
								 | 
							
								    printf "  ${YELLOW}%-20s${GREEN}%s${RESET}\n" $(1) $(2)
							 | 
						||
| 
								 | 
							
								endef
							 |