]> mj.ucw.cz Git - paperjam.git/blobdiff - Makefile
debian/control: debhelper 10 (Stretch) is sufficient
[paperjam.git] / Makefile
index 9344b44e8a3ab196d55073a838c1035081051203..9f5f829904a34acfe632d8ad1369c1ba347d00e1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,54 @@
+VERSION=1.1
+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 '<unknown>' ; fi)
+
+DESTDIR=
+PREFIX=/usr/local
+BINDIR=$(PREFIX)/bin
+MANDIR=$(PREFIX)/share/man
+
 CXXFLAGS=-O2 -Wall -Wextra -Wno-parentheses -std=gnu++11 -g
 
-all: paperjam
+all: paperjam paperjam.1 paperjam.1.html
+
+MODULES=paperjam pdf-tools parse cmds pdf
+OBJS=$(addsuffix .o, $(MODULES))
 
-paperjam: paperjam.o pdf-tools.o parse.o cmds.o pdf.o
+paperjam: $(OBJS)
        $(LD) -o $@ $^ $(LDLIBS)
-paperjam: LDLIBS += -lqpdf
+paperjam: LDLIBS += -lqpdf -lpaper
 paperjam: LD=$(CXX)
 
-paperjam.o: jam.h pdf-tools.h
-pdf-tools.o: jam.h pdf-tools.h
-parse.o: jam.h pdf-tools.h
-cmds.o: jam.h pdf-tools.h
-pdf.o: jam.h pdf-tools.h
+$(OBJS): jam.h pdf-tools.h
+
+paperjam.o: CXXFLAGS += -DVERSION='"$(VERSION)"' -DYEAR='"$(YEAR)"' -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_COMMIT='"$(BUILD_COMMIT)"'
+
+paperjam.1: paperjam.1.txt
+       a2x -f manpage $<
+
+# The dependency on paperjam.1 is there to serialize both calls of asciidoc,
+# which does not name temporary files safely.
+paperjam.1.html: paperjam.1.txt paperjam.1
+       a2x -f xhtml -D . $<
+
+clean:
+       rm -f *.o
+       rm -f paperjam
+       rm -f paperjam.1 paperjam.1.html docbook-xsl.css
+       rm -f *.tar.gz
+
+install: all
+       install -d $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1
+       install -s paperjam $(DESTDIR)$(BINDIR)/
+       install -m 644 paperjam.1 $(DESTDIR)$(MANDIR)/man1/
+
+release:
+       git tag v$(VERSION)
+       git push --tags
+       git archive --format=tar --prefix=paperjam-$(VERSION)/ HEAD | gzip >paperjam-$(VERSION).tar.gz
+       rsync paperjam-$(VERSION).tar.gz jw:/home/ftp/pub/mj/linux/
+       rsync paperjam.1.html jw:web/static/sw/paperjam/
+       ssh jw 'cd web && bin/release-prog paperjam $(VERSION)'
+
+.PHONY: all clean release