GO_BIN_PATH = bin GO_SRC_PATH = src ROOT_PATH = $(shell pwd) GO_NF = ac GO_FILES = $(shell find $(GO_SRC_PATH)/$(%) -name "*.go" ! -name "*_test.go") VERSION = 1.2408.0 COMMIT_HASH = $(shell git log -1 --format=%h) COMMIT_TIME = $(shell git log --pretty="@%at" -1 | xargs date -u +"%Y-%m-%d %H:%M:%SZ" -d) LDFLAGS = -X 'ac/internal/version.VERSION=$(VERSION)' \ -X 'ac/internal/version.COMMIT_HASH=$(COMMIT_HASH)' \ -X 'ac/internal/version.COMMIT_TIME=$(COMMIT_TIME)' .PHONY: $(GO_NF) clean .DEFAULT_GOAL: $(GO_NF) all: $(GO_NF) debug: GCFLAGS += -N -l debug: all $(GO_NF): % : $(GO_BIN_PATH)/% $(GO_BIN_PATH)/%: $(GO_FILES) # $(@F): The file-within-directory part of the file name of the target. @echo "Start building $(@F)...." cd $(GO_SRC_PATH)/cmd && \ go build -gcflags "$(GCFLAGS)" -ldflags "$(LDFLAGS)" -o $(ROOT_PATH)/$@ main.go vpath %.go $(addprefix $(GO_SRC_PATH)/, $(GO_NF)) deb: test -d debian && rm -rf debian/* || mkdir debian mkdir -p debian/DEBIAN mkdir -p debian/usr/local/bin mkdir -p debian/usr/local/etc/ac/default mkdir -p debian/lib/systemd/system cp $(GO_BIN_PATH)/$(GO_NF) debian/usr/local/bin cp config/ac.yaml debian/usr/local/etc/ac/default cp scripts/ac.service debian/lib/systemd/system cp scripts/postinst debian/DEBIAN cp scripts/prerm debian/DEBIAN cp scripts/control debian/DEBIAN fakeroot dpkg-deb --build debian mv debian.deb debian/ac-r$(VERSION)-ub22.deb clean: rm -rf $(addprefix $(GO_BIN_PATH)/, $(GO_NF))