VERSION=1.1.1
ARCHIVE=xsv-$(VERSION).tar.gz

PCRE_CFLAGS:=$(shell pcre2-config --cflags)
PCRE_LIBS:=$(shell pcre2-config --libs8)

CFLAGS=-O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -Wundef -Wredundant-decls -Wno-pointer-sign -std=gnu99 $(PCRE_CFLAGS) -DVERSION='"$(VERSION)"'
LDLIBS=$(PCRE_LIBS)

PREFIX=/usr/local
BINDIR=$(PREFIX)/bin
MANDIR=$(PREFIX)/share/man/man1

all: xsv xsv.1

tests: xsv
	./run-tests

xsv.1: xsv.1.txt
	a2x -f manpage -a xsvversion=$(VERSION) $<

xsv.1.html: xsv.1.txt
	a2x -f xhtml -a xsvversion=$(VERSION) $<

clean:
	rm -f `find . -name "*~" -or -name "*.[oa]" -or -name "\#*\#" -or -name TAGS -or -name core -or -name .depend -or -name .#*`
	rm -f xsv xsv.1 xsv.1.html docbook-xsl.css
	rm -rf tmp

install: all
	install -d -m 755 $(BINDIR) $(MANDIR)
	install -m 755 xsv $(BINDIR)/
	install -m 644 xsv.1 $(MANDIR)/

# Release target for private use by the maintainer
release: xsv.1.html
	git tag v$(VERSION)
	git push --tags
	git archive --format=tar --prefix=xsv-$(VERSION)/ HEAD | gzip >$(ARCHIVE)
	scp $(ARCHIVE) jw:/home/ftp/pub/mj/linux/
	rsync xsv.1.html docbook-xsl.css jw:web/sw/xsv/
	ssh jw "cd web && bin/release-prog xsv $(VERSION)"
	mv $(ARCHIVE) ~/archives/sw/xsv/
