# Strict mode SHELL := bash .SHELLFLAGS := -eu -o pipefail -c .ONESHELL: .DELETE_ON_ERROR: .PHONY: all binaries build check-dist-all check-dist-archlinux check-dist-debian check-dist-fedora check-dist-rocky check-dist-ubuntu check-sign clean-all clean-dist clean-go-cache clean-package-signer cover deb dist dist-full doc freebsd gpg-sign help install install-gomarkdoc katenary manpage packager-oci-image packages pacman prepare pull rpm rpm-sign sast serve-doc show-cover tar test uninstall upx warn-docker MAKEFLAGS += --warn-undefined-variables MAKEFLAGS += --no-builtin-rules # Get a version string from git CUR_SHA=$(shell git log -n1 --pretty='%h') CUR_BRANCH=$(shell git branch --show-current) VERSION=$(shell git describe --exact-match --tags $(CUR_SHA) 2>/dev/null || echo $(CUR_BRANCH)-$(CUR_SHA))# use by golang flags # Go build command and environment variables for target OS and architecture GOVERSION=1.25 GO=container# container, local OUTPUT=katenary GOOS=linux GOARCH=amd64 CGO_ENABLED=0 PREFIX=~/.local # UPX compression UPX_OPTS = UPX ?= upx $(UPX_OPTS) # List of source files SOURCES=$(shell find -name "*.go" -or -name "*.tpl" -type f | grep -v -P "^./example|^./vendor") # List of binaries to build and sign BINARIES=\ dist/katenary-linux-amd64\ dist/katenary-linux-arm64\ dist/katenary-darwin-amd64\ dist/katenary-freebsd-amd64\ dist/katenary-freebsd-arm64\ dist/katenary.exe\ dist/katenary-windows-setup.exe ## GPG # List of signatures to build ASC_BINARIES=$(patsubst %,%.asc,$(BINARIES)) # GPG signer SIGNER=metal3d@gmail.com # Browser command to see coverage report after tests BROWSER=$(shell command -v epiphany || echo xdg-open) include makefiles/build.mk include makefiles/containers.mk include makefiles/doc.mk include makefiles/gpg.mk include makefiles/packager.mk include makefiles/test.mk all: build # if docker is used instead of podman, we warn the user warn-docker: @echo -e "\033[1;31mWarning: Docker is not recommended, use Podman instead.\033[0m" sleep 5 help: @cat <