MagiTrickle/Makefile

56 lines
2.2 KiB
Makefile
Raw Permalink Normal View History

2025-02-14 17:16:20 +03:00
APP_NAME = magitrickle
2025-02-13 21:08:11 +03:00
APP_DESCRIPTION = DNS-based routing application
APP_MAINTAINER = Vladimir Avtsenov <vladimir.lsk.cool@gmail.com>
COMMIT = $(shell git rev-parse --short HEAD)
2025-02-15 06:25:34 +03:00
UPSTREAM_VERSION = $(shell git describe --tags --abbrev=0 2> /dev/null || echo "0.0.0")
PKG_REVISION ?= 1
TAG = $(shell git describe --tags --abbrev=0 2> /dev/null)
COMMITS_SINCE_TAG = $(shell git rev-list ${TAG}..HEAD --count 2>/dev/null)
PRERELEASE_POSTFIX =
PRERELEASE_DATE = $(shell date +%Y%m%d)
ifneq ($(TAG),)
ifneq ($(COMMITS_SINCE_TAG), 0)
PRERELEASE_POSTFIX = ~git$(PRERELEASE_DATE).$(COMMIT)
endif
else
PRERELEASE_POSTFIX = ~git$(PRERELEASE_DATE).$(COMMIT)
2025-02-15 00:40:06 +03:00
endif
2025-02-13 21:08:11 +03:00
2025-02-15 06:25:34 +03:00
TARGET ?= mipsel-3.4
2025-02-13 21:08:11 +03:00
GOOS ?= linux
GOARCH ?= mipsle
GOMIPS ?= softfloat
GOARM ?=
2025-02-13 23:53:34 +03:00
BUILD_DIR = ./.build
2025-02-15 06:25:34 +03:00
PKG_DIR = $(BUILD_DIR)/$(TARGET)
2025-02-14 01:16:18 +03:00
BIN_DIR = $(PKG_DIR)/data/opt/bin
2025-02-15 06:25:34 +03:00
PARAMS = -v -a -trimpath -ldflags="-X 'magitrickle/constant.Version=$(UPSTREAM_VERSION)$(PRERELEASE_POSTFIX)' -X 'magitrickle/constant.Commit=$(COMMIT)' -w -s"
2025-02-13 21:08:11 +03:00
2025-02-14 20:55:47 +03:00
all: clear build_daemon package
clear:
2025-02-15 06:25:34 +03:00
echo $(shell git rev-parse --abbrev-ref HEAD)
2025-02-14 20:55:47 +03:00
rm -rf $(PKG_DIR)
2025-02-13 21:08:11 +03:00
build_daemon:
2025-02-14 17:16:20 +03:00
GOOS=$(GOOS) GOARCH=$(GOARCH) GOMIPS=$(GOMIPS) GOARM=$(GOARM) go build $(PARAMS) -o $(BIN_DIR)/magitrickled ./cmd/magitrickled
2025-02-13 21:08:11 +03:00
package:
@mkdir -p $(PKG_DIR)/control
@echo '2.0' > $(PKG_DIR)/debian-binary
@echo 'Package: $(APP_NAME)' > $(PKG_DIR)/control/control
2025-02-15 06:25:34 +03:00
@echo 'Version: $(UPSTREAM_VERSION)$(PRERELEASE_POSTFIX)-$(PKG_REVISION)' >> $(PKG_DIR)/control/control
@echo 'Architecture: $(TARGET)' >> $(PKG_DIR)/control/control
2025-02-13 21:08:11 +03:00
@echo 'Maintainer: $(APP_MAINTAINER)' >> $(PKG_DIR)/control/control
@echo 'Description: $(APP_DESCRIPTION)' >> $(PKG_DIR)/control/control
2025-02-14 01:15:37 +03:00
@echo 'Section: net' >> $(PKG_DIR)/control/control
2025-02-13 21:08:11 +03:00
@echo 'Priority: optional' >> $(PKG_DIR)/control/control
@echo 'Depends: libc, iptables, socat' >> $(PKG_DIR)/control/control
2025-02-13 23:55:45 +03:00
@cp -r ./opt $(PKG_DIR)/data/
2025-02-14 00:15:07 +03:00
@fakeroot sh -c "tar -C $(PKG_DIR)/control -czvf $(PKG_DIR)/control.tar.gz ."
@fakeroot sh -c "tar -C $(PKG_DIR)/data -czvf $(PKG_DIR)/data.tar.gz ."
2025-02-15 06:25:34 +03:00
@tar -C $(PKG_DIR) -czvf $(BUILD_DIR)/$(APP_NAME)_$(UPSTREAM_VERSION)$(PRERELEASE_POSTFIX)-$(PKG_REVISION)_$(TARGET).ipk ./debian-binary ./control.tar.gz ./data.tar.gz