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