source/prog/lang-zig/run-many/Makefile

63 lines
2.4 KiB
Makefile

VERSION := $(shell cat version.txt)
ARCH := $(shell uname -m)
PREFIX = /usr/local
all: run-many run-many.1
src/version.zig: version.txt
version=`cat version.txt`; echo "pub const version = \"$$version\";" > $@
run-many.1: run-many.1.scd version.txt
version=`cat version.txt`; scdoc < $< | sed "s/@VERSION@/$$version/" > $@
run-many: src/epoll.zig src/version.zig
zig build -Drelease-small
zig build install -p .
mv ./bin/run-many .
rmdir bin
install: all
mkdir -p $(DISTDIR)$(PREFIX)/bin $(DISTDIR)$(PREFIX)/share/man/man1
install -m 755 run-many $(DISTDIR)$(PREFIX)/bin
install -m 644 run-many.1 $(DISTDIR)$(PREFIX)/share/man/man1
# Create three distribution archives -- "user" one, with all
# architecture-independent files pre-built, "dist" which contains only files
# strictly necessary for build process and "binary" which contains binary and
# manpage.
# "user" archive complies with autotools conventions, "dist" one targets Linux
# distributions which rebuild everything from scratch, and "binary" is for
# people who for some reason trust me.
dist: run-many-$(VERSION).user.tar.xz
dist: run-many-$(VERSION).dist.tar.xz
dist: run-many-$(VERSION).$(ARCH).tar.xz
sign: run-many-$(VERSION).user.tar.xz.sig
sign: run-many-$(VERSION).dist.tar.xz.sig
sign: run-many-$(VERSION).$(ARCH).tar.xz.sig
DISTFILES_SOURCES = Makefile build.zig version.txt main.zig run-many.1.scd src/epoll.zig
DISTFILES_GENERATED = $(DISTFILES_SOURCES) src/version.zig run-many.1
# Below assumes GNU Tar, which is okay, since these targets are only run on
# maintainer system.
run-many-$(VERSION).user.tar.xz: $(DISTFILES_GENERATED)
ln -sf . run-many-$(VERSION).user
tar --xz --create --dereference --file $@ $(patsubst %, run-many-$(VERSION).user/%, $(DISTFILES_GENERATED))
unlink run-many-$(VERSION).user
run-many-$(VERSION).dist.tar.xz: $(DISTFILES_SOURCES)
ln -sf . run-many-$(VERSION)
tar --xz --create --dereference --file $@ $(patsubst %, run-many-$(VERSION)/%, $(DISTFILES_SOURCES))
unlink run-many-$(VERSION)
run-many-$(VERSION).$(ARCH).tar.xz: run-many run-many.1
mkdir -p run-many-$(VERSION).$(ARCH)/bin
mkdir -p run-many-$(VERSION).$(ARCH)/share/man/man1/
cp ./run-many run-many-$(VERSION).$(ARCH)/bin
cp ./run-many.1 run-many-$(VERSION).$(ARCH)/share/man/man1/
tar --xz --create --dereference --file $@ run-many-$(VERSION).$(ARCH)
rm -r run-many-$(VERSION).$(ARCH)
%.sig: %
signify -S -s ~/.ssh/kaction.sec -m $<