summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGordon GECOS <u@adam>2023-11-09 05:31:41 -0500
committerGordon GECOS <u@adam>2023-11-09 05:31:41 -0500
commit58fbed94fba25bee08a3b0eea453429e075efe1c (patch)
tree53df4fd3d3c78b8c2982b9660fd3fadc47ebb3c6
parent454de9bfde1806953986de14b636ebcd682f3e79 (diff)
booklet printing
-rw-r--r--Makefile57
1 files changed, 50 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index c5a63d9..f7c4c3c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,22 @@
1pages = $(if $(TITLE),64lines.txt title.txt break) 1pages = $(if $(TITLE),title.txt break)
2pages += way-to-be-great.txt space lost-pen.txt space authenticated-counterfeit.txt break 2pages += way-to-be-great.txt space lost-pen.txt space authenticated-counterfeit.txt break
3pages += bitcoin.txt space monad-tutorial.txt break
4pages += why.txt space con-job.txt break 3pages += why.txt space con-job.txt break
5pages += argument.txt space medium.txt break 4pages += argument.txt space medium.txt break
6pages += introduction.txt $(if $(FINALE),finale.txt) break 5pages += introduction.txt $(if $(FINALE),finale.txt) break
7pages += human-communication.txt 6pages += human-communication.txt break
7pages += bitcoin.txt space monad-tutorial.txt
8pages += $(if $(TITLE),break 64lines.txt)
9
10define pages
11$(if $(TITLE),title.txt break)
12way-to-be-great.txt space lost-pen.txt space authenticated-counterfeit.txt break
13argument.txt space why.txt space con-job.txt break
14introduction.txt space introjoke.txt break
15human-communication.txt break
16monad-tutorial.txt break
17$(if $(TITLE),break break 64lines.txt)
18endef
19pages := $(pages:=)
8 20
9output_name = poetrybook 21output_name = poetrybook
10pdf_viewer = evince 22pdf_viewer = evince
@@ -36,6 +48,10 @@ define concatenate_with_terminator
36 @$(done) 48 @$(done)
37endef 49endef
38 50
51newprint: NUMBER_UP=1
52newprint: SIDES=
53
54
39dirs = build 55dirs = build
40$(dirs): 56$(dirs):
41 @mkdir -p $@ 57 @mkdir -p $@
@@ -58,22 +74,49 @@ build/$(output_txt): $(addprefix build/,$(pages)) | build
58 $(LPDF) $< > $@.tmp 74 $(LPDF) $< > $@.tmp
59 $(done) 75 $(done)
60 76
77%.ps: %.pdf
78 pdf2ps -dLanguageLevel=3 $< $@
79
61build/%: % | build 80build/%: % | build
62 cp --reflink -T -- $< $@ 81 cp --reflink -T -- $< $@
63 82
64clean: 83clean:
65 -rm -rf build 84 -rm -rf build
66 85
67.PHONY: view print viewall printall realview realprint 86.PHONY: view print viewall printall realview realprint booklet pages
87
88booklet: clean build/booklet.pdf
89 -$(pdf_viewer) $(word 2, $+) &
90pages: clean build/pages.ps
91 -$(pdf_viewer) $(word 2, $+) &
92
93newprint: clean newrealprint
94newrealprint: NUMBER_UP=1
95newrealprint: SIDES=
96newrealprint: build/pages.pdf
97 -$(pdf_viewer) $< &
98
99%.pdf: %.ps
100 ps2pdf $< $@
101
102build/pages.ps: NUMBER_UP=1
103build/pages.ps: SIDES=
104build/pages.ps: build/$(output_pdf:pdf=ps)
105 @cp -T -- $^ $@
106
107build/booklet.ps: build/pages.ps
108 psbook $< $@.tmp
109 psnup -2 $@.tmp $@
110 @rm $@.tmp
68 111
69view: clean realview 112view: clean realview
70print: clean realprint 113print: clean realprint
71 114
72realview: build/$(output_pdf) 115realview: build/pages.pdf
73 -$(pdf_viewer) $< & 116 -$(pdf_viewer) $< &
74realprint: build/$(output_pdf) 117realprint: build/booklet.ps
75 $(LP) $^ 118 $(LP) $^
76 119
77.PHONY: install 120.PHONY: install
78install: 121install:
79 apt install --no-upgrade printer-driver-cups-pdf evince 122 apt install --no-upgrade printer-driver-cups-pdf evince ghostscript