mirror of
https://github.com/fosrl/newt.git
synced 2026-07-15 21:16:40 -05:00
55 lines
1.4 KiB
Makefile
55 lines
1.4 KiB
Makefile
MODNAME := newt
|
|
VERSION := 1.12.5
|
|
RELEASE_URL := https://github.com/fosrl/newt/releases/download/$(VERSION)
|
|
PLATFORM ?= v4
|
|
|
|
# Map Advantech platform to newt release binary name
|
|
arch_v4 := arm64
|
|
arch_v4i := arm64
|
|
arch_v3 := arm32
|
|
arch_v2 := arm32
|
|
arch_v2i := arm32
|
|
|
|
NEWT_ARCH := $(arch_$(PLATFORM))
|
|
ifeq ($(NEWT_ARCH),)
|
|
$(error Unknown platform '$(PLATFORM)'. Supported: v4, v4i, v3, v2, v2i)
|
|
endif
|
|
|
|
BINARY := newt_linux_$(NEWT_ARCH)
|
|
BINDIR := bin
|
|
OUTFILE := $(MODNAME).$(PLATFORM).tgz
|
|
STAGEDIR := .build/$(MODNAME)
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(OUTFILE)
|
|
|
|
# Cache the downloaded binary in bin/ (re-download only if missing)
|
|
$(BINDIR)/$(BINARY):
|
|
mkdir -p $(BINDIR)
|
|
@echo "Downloading $(BINARY) $(VERSION) for platform $(PLATFORM)..."
|
|
wget -q -O $@ "$(RELEASE_URL)/$(BINARY)" 2>/dev/null || \
|
|
curl -fsSL -o $@ "$(RELEASE_URL)/$(BINARY)"
|
|
chmod +x $@
|
|
@echo "Binary ready: $@"
|
|
|
|
# Build the package
|
|
$(OUTFILE): $(BINDIR)/$(BINARY) $(shell find merge -type f 2>/dev/null)
|
|
@rm -rf $(STAGEDIR)
|
|
@mkdir -p $(STAGEDIR)/bin
|
|
@cp $(BINDIR)/$(BINARY) $(STAGEDIR)/bin/newt
|
|
@chmod +x $(STAGEDIR)/bin/newt
|
|
@cp -r merge/. $(STAGEDIR)/
|
|
@chmod +x \
|
|
$(STAGEDIR)/etc/init \
|
|
$(STAGEDIR)/etc/install \
|
|
$(STAGEDIR)/etc/uninstall \
|
|
$(STAGEDIR)/www/index.cgi
|
|
tar -c --owner=0 --group=0 --mtime="2001-01-01 UTC" \
|
|
-C .build $(MODNAME) | gzip -n > $@
|
|
@echo "Created: $@"
|
|
|
|
clean:
|
|
rm -rf .build $(MODNAME).*.tgz
|
|
@echo "Cleaned."
|