53 lines
1.5 KiB
Makefile
Executable File
53 lines
1.5 KiB
Makefile
Executable File
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))
|
|
|