diff --git a/isolate/Makefile b/isolate/Makefile new file mode 100644 --- /dev/null +++ b/isolate/Makefile @@ -0,0 +1,67 @@ +# Makefile for Isolate +# (c) 2015--2018 Martin Mares +# (c) 2017 Bernard Blackham + +all: isolate isolate.1 isolate.1.html isolate-check-environment + +CC=gcc +CFLAGS=-std=gnu99 -Wall -Wextra -Wno-parentheses -Wno-unused-result -Wno-missing-field-initializers -Wstrict-prototypes -Wmissing-prototypes -D_GNU_SOURCE +LIBS=-lcap + +VERSION=1.5 +YEAR=2018 +BUILD_DATE:=$(shell date '+%Y-%m-%d') +BUILD_COMMIT:=$(shell if git rev-parse >/dev/null 2>/dev/null ; then git describe --always --tags ; else echo '' ; fi) + +PREFIX = $(DESTDIR)/usr/local +VARPREFIX = $(DESTDIR)/var/local +CONFIGDIR = $(PREFIX)/etc +CONFIG = $(CONFIGDIR)/isolate +BINDIR = $(PREFIX)/bin +DATAROOTDIR = $(PREFIX)/share +DATADIR = $(DATAROOTDIR) +MANDIR = $(DATADIR)/man +MAN1DIR = $(MANDIR)/man1 +BOXDIR = $(VARPREFIX)/lib/isolate + +isolate: isolate.o util.o rules.o cg.o config.o + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) + +%.o: %.c isolate.h config.h + $(CC) $(CFLAGS) -c -o $@ $< + +isolate.o: CFLAGS += -DVERSION='"$(VERSION)"' -DYEAR='"$(YEAR)"' -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_COMMIT='"$(BUILD_COMMIT)"' +config.o: CFLAGS += -DCONFIG_FILE='"$(CONFIG)"' + +isolate.1: isolate.1.txt + a2x -f manpage $< + +# The dependency on isolate.1 is there to serialize both calls of asciidoc, +# which does not name temporary files safely. +isolate.1.html: isolate.1.txt isolate.1 + a2x -f xhtml -D . $< + +clean: + rm -f *.o + rm -f isolate isolate.1 isolate.1.html + rm -f docbook-xsl.css + +install: isolate isolate-check-environment + install -d $(BINDIR) $(BOXDIR) $(CONFIGDIR) + install isolate-check-environment $(BINDIR) + install -m 4755 isolate $(BINDIR) + install -m 644 default.cf $(CONFIG) + +install-doc: isolate.1 + install -d $(MAN1DIR) + install -m 644 $< $(MAN1DIR)/$< + +release: isolate.1.html + git tag v$(VERSION) + git push --tags + git archive --format=tar --prefix=isolate-$(VERSION)/ HEAD | gzip >isolate-$(VERSION).tar.gz + rsync isolate-$(VERSION).tar.gz atrey:ftp/isolate/ + rsync isolate.1.html jw:/var/www/moe/ + ssh jw 'cd web && bin/release-prog isolate $(VERSION)' + +.PHONY: all clean install install-doc release