Files
ac/Makefile
2025-06-26 11:44:46 +08:00

57 lines
1.6 KiB
Makefile
Executable File

GO_BIN_PATH = bin
GO_SRC_PATH = src
ROOT_PATH = $(shell pwd)
RElEASE_PATH = $(ROOT_PATH)/release
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))
PKG_NAME = ac-r$(VERSION)-ub22
deb: $(GO_NF)
@echo "Start building deb package for $(@F)...."
test -d debian && rm -rf debian/* || mkdir debian
test -d $(RElEASE_PATH) || mkdir -p $(RElEASE_PATH)
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 $(RElEASE_PATH)/$(PKG_NAME).deb
clean:
rm -rf $(addprefix $(GO_BIN_PATH)/, $(GO_NF))