|
|
|
@ -2,11 +2,16 @@
|
|
|
|
|
BINARY_NAME := ${REPO_NAME}
|
|
|
|
|
BUILD_DIR := ./build
|
|
|
|
|
DIST_DIR := ./dist
|
|
|
|
|
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
|
|
|
|
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "0.1.0-dev")
|
|
|
|
|
BUILD_TIME := $(shell date -u '+%Y-%m-%d_%H:%M:%S')
|
|
|
|
|
GIT_COMMIT := $(shell git rev-parse HEAD 2>/dev/null || echo "unknown")
|
|
|
|
|
DEB_PACKAGE_NAME := $(BINARY_NAME)_$(VERSION)_amd64.deb
|
|
|
|
|
PKG_PATH=git.runcible.io/${REPO_OWNER}/${REPO_NAME}/cmd
|
|
|
|
|
# Strict, Debian-compliant version for packaging.
|
|
|
|
|
# It tries to find the latest tag (e.g., v1.2.3) and uses that.
|
|
|
|
|
# If no tags exist, it defaults to "0.1.0-1", which is a valid starting version for a Debian package.
|
|
|
|
|
DEB_VERSION := $(shell TAG=$$(git describe --tags --abbrev=0 2>/dev/null); if [ -n "$$TAG" ]; then echo $$TAG | sed 's/^v//'; else echo "0.1.0-1"; fi)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Default target
|
|
|
|
|
.PHONY: all
|
|
|
|
@ -32,9 +37,9 @@ clean:
|
|
|
|
|
deb: build
|
|
|
|
|
@echo "Building Debian package..."
|
|
|
|
|
@mkdir -p $(DIST_DIR)
|
|
|
|
|
@mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)
|
|
|
|
|
@mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/DEBIAN
|
|
|
|
|
@mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/opt/$(BINARY_NAME)
|
|
|
|
|
@mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)
|
|
|
|
|
@mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/DEBIAN
|
|
|
|
|
@mkdir -p $(DIST_DIR)/$(BINARY_NAME)_$(DEB_VERSION)/opt/$(BINARY_NAME)
|
|
|
|
|
|
|
|
|
|
# Copy binary
|
|
|
|
|
@cp $(BUILD_DIR)/$(BINARY_NAME) $(DIST_DIR)/$(BINARY_NAME)_$(VERSION)/opt/$(BINARY_NAME)/
|
|
|
|
|