added
[rrq/hourglass.git] / Makefile
1 MAIN = command.lsp
2 LSP = $(filter-out $(MAIN),$(wildcard *.lsp))
3 BIN = hourglass hourglass-web hourglass-site
4 DOCS = hourglass-guide.html hourglass-guide.pdf
5 MANPGS = hourglass.8 hourglass-site.8 hourglass-web.8
6 IMGS = $(wildcard *.png)
7 OTHER = setup.sh hourglass.conf
8 VERSION = 0.1
9 GENERATED = $(BIN) $(DOCS) $(MANPGS)
10
11 default: dist
12
13 hourglass: $(MAIN) $(LSP)
14         packnl -w $@ $^
15
16 hourglass-web: manager siteconfig.lsp
17         $(MAKE) -C manager
18         mv manager/$@ $@
19
20 hourglass-site: sitetool
21         $(MAKE) -C sitetool
22         mv sitetool/sitetool $@
23
24 %.html: %.adoc
25         asciidoctor -a 'webfonts!' $< > $@
26
27 %.pdf: %.adoc | $(IMGS)
28         asciidoctor-pdf $< > $@
29
30 %.8: %.8.adoc
31         a2x -d manpage -f manpage $^
32
33 ############################################################
34 clean:
35         $(MAKE) -C manager clean
36         $(MAKE) -C sitetool clean
37         rm -f $(GENERATED)
38
39 ############################################################
40 hourglass-$(VERSION).tgz: $(BIN) $(OTHER) $(DOCS) $(MANPGS) $(IMGS)
41         tar czf $@ $^
42
43 dist: hourglass-$(VERSION).tgz
44
45 ########################################################
46 BINDIR = $(DESTDIR)/usr/bin
47 MANDIR = $(DESTDIR)/usr/share/man/man8
48 RUNDIR = $(DESTDIR)/var/lib/hourglass
49 DOCDIR = $(DESTDIR)/usr/share/hourglass
50
51 INSTALLTARGETS = $(addprefix $(BINDIR)/,$(BIN))
52 INSTALLTARGETS += $(addprefix $(MANDIR)/,$(MANPGS))
53 INSTALLTARGETS += $(addprefix $(DOCDIR)/,$(DOCS))
54 INSTALLTARGETS += $(addprefix $(RUNDIR)/,$(OTHER))
55
56 $(RUNDIR)/%.conf: %.conf
57         install -D -T $< $@
58         chmod a-x $@
59
60 $(MANDIR)/% $(DOCDIR)/%:%
61         install -D -T $< $@
62         chmod a-x $@
63
64 $(BINDIR)/% $(RUNDIR)/%: %
65         install -D -T $< $@
66
67 install: $(INSTALLTARGETS)
68
69 BUILDPACKAGE = -us -uc --build=full
70
71 deb:
72         PREFIX= INCLUDE_PREFIX=/usr dpkg-buildpackage $(BUILDPACKAGE)