added
[rrq/hourglass.git] / Makefile
index b9be89428386c4fd79caaa782b039307a2880bb3..b5bcebdb7b92c27f0287e463189021aadd52e815 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,72 @@
 MAIN = command.lsp
 LSP = $(filter-out $(MAIN),$(wildcard *.lsp))
+BIN = hourglass hourglass-web hourglass-site
+DOCS = hourglass-guide.html hourglass-guide.pdf
+MANPGS = hourglass.8 hourglass-site.8 hourglass-web.8
+IMGS = $(wildcard *.png)
+OTHER = setup.sh hourglass.conf
+VERSION = 0.1
+GENERATED = $(BIN) $(DOCS) $(MANPGS)
+
+default: dist
 
 hourglass: $(MAIN) $(LSP)
        packnl -w $@ $^
 
+hourglass-web: manager siteconfig.lsp
+       $(MAKE) -C manager
+       mv manager/$@ $@
+
+hourglass-site: sitetool
+       $(MAKE) -C sitetool
+       mv sitetool/sitetool $@
+
+%.html: %.adoc
+       asciidoctor -a 'webfonts!' $< > $@
+
+%.pdf: %.adoc | $(IMGS)
+       asciidoctor-pdf $< > $@
+
+%.8: %.8.adoc
+       a2x -d manpage -f manpage $^
+
+############################################################
+clean:
+       $(MAKE) -C manager clean
+       $(MAKE) -C sitetool clean
+       rm -f $(GENERATED)
+
+############################################################
+hourglass-$(VERSION).tgz: $(BIN) $(OTHER) $(DOCS) $(MANPGS) $(IMGS)
+       tar czf $@ $^
+
+dist: hourglass-$(VERSION).tgz
+
+########################################################
+BINDIR = $(DESTDIR)/usr/bin
+MANDIR = $(DESTDIR)/usr/share/man/man8
+RUNDIR = $(DESTDIR)/var/lib/hourglass
+DOCDIR = $(DESTDIR)/usr/share/hourglass
+
+INSTALLTARGETS = $(addprefix $(BINDIR)/,$(BIN))
+INSTALLTARGETS += $(addprefix $(MANDIR)/,$(MANPGS))
+INSTALLTARGETS += $(addprefix $(DOCDIR)/,$(DOCS))
+INSTALLTARGETS += $(addprefix $(RUNDIR)/,$(OTHER))
+
+$(RUNDIR)/%.conf: %.conf
+       install -D -T $< $@
+       chmod a-x $@
+
+$(MANDIR)/% $(DOCDIR)/%:%
+       install -D -T $< $@
+       chmod a-x $@
+
+$(BINDIR)/% $(RUNDIR)/%: %
+       install -D -T $< $@
+
+install: $(INSTALLTARGETS)
+
+BUILDPACKAGE = -us -uc --build=full
+
+deb:
+       PREFIX= INCLUDE_PREFIX=/usr dpkg-buildpackage $(BUILDPACKAGE)