1## This is part of the GNU Octave Interval Package.
2## Copyright 2015-2017 Oliver Heimlich.
3## See the file COPYING for copying conditions.
4
5SHELL      = /bin/sh
6M_IMAGE    = $(wildcard image/*.m) $(patsubst %.m.texinfo,%.m,$(wildcard image/*.m.texinfo))
7IMAGE_OBJ  = $(patsubst %,%.png,$(M_IMAGE))
8OBJ        = manual.html manual.pdf $(IMAGE_OBJ)
9MAKEINFO  ?= makeinfo
10VERSION   ?= $(shell grep "^Version: " ../packinfo/DESCRIPTION ../DESCRIPTION | head -1 | cut -f2 -d" ")
11OCTAVE    ?= octave
12
13.PHONY: all clean images
14
15all: $(OBJ)
16
17images: $(IMAGE_OBJ)
18
19manual.html: manual.texinfo $(wildcard chapter/*) license/gpl-3.0.texi $(wildcard image/*.texinfo) $(IMAGE_OBJ)
20	@echo " [MAKEINFO --html] $<"
21	@$(MAKEINFO) -D 'version $(VERSION)' --html --no-split --css-include manual.css "$<"
22
23manual.pdf: manual.texinfo $(wildcard chapter/*) license/gpl-3.0.texi $(wildcard image/*.texinfo) $(wildcard image/*.pdf) $(IMAGE_OBJ)
24	@echo " [MAKEINFO --pdf] $<"
25	@$(MAKEINFO) --Xopt=--texinfo='@set version $(VERSION)' --pdf "$<"
26
27image/%.m.png: image/%.m
28	@echo " [OCTAVE] $<"
29	@$(OCTAVE) --no-history \
30		--eval "pkg load interval;" \
31		--eval "set (0, 'defaultfigurevisible', 'off');" \
32		--eval "source ('$<');" \
33		--eval "print (gcf, '$@');"
34	@# The image size is too large for inclusion in the pdf,
35	@# thus we increase the resolution from 150 to 250 dpi.
36	@echo " [IMAGEMAGICK] $@"
37	@convert -density 98.425 -units PixelsPerCentimeter "$@" "$@"
38
39image/%.m: image/%.m.texinfo
40	@echo " [MAKEINFO --plaintext] $<"
41	@$(MAKEINFO) -D m-file --plaintext "$<" > "$@"
42
43clean:
44	$(RM) $(OBJ)
45	$(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr
46