+# PLAG_DEBUG ?= $(PLAG) # effectively
+# PLAG_RELEASE ?= $(PLAG) # ie caller may set these
+PLAG_DIR ?= ../plag-mangler
+
+USE_PLAG_DEBUG := $(shell ./find-plag \
+ debug:release "$(PLAG_DIR)" "$(PLAG_DEBUG)" "$(PLAG_RELEASE)" "$(PLAG)")
+USE_PLAG_RELEASE := $(shell ./find-plag \
+ release:debug "$(PLAG_DIR)" "$(PLAG_RELEASE)" "$(PLAG_DEBUG)" "$(PLAG)")
+
+# with
+# plag-mangler 3a1eae4d6395f7d862cf66d0e4a1008d1bedc6e7
+# rc-dlist-deque 3e19e16dde436fc1ac03534bf502588d17b3faeb
+# c_vec 3394762a6221c44f8e22b222ce5547f6534129ea
+# rust-nlopt d6781621e72bb7a78da56689ab5bb27befafec6a
+# nlopt (hack) 3068d8b694a6047c4f374b7267a54fdb3fae1f69 2.3+252-g8b3cb5a-1
+# crates from Debian buster:
+# libc 0.2.43-1
+# arrayvec 0.4.8-1
+# also relevant
+# libboost-dev:amd64 1.67.0.1
+# libboost1.67-dev:amd64 1.67.0-11
+
+PS2PDF ?= ps2pdf
+PS2PDF_FLAGS ?=
+
+export PERL_HASH_SEED=1
+export PERL_PERTURB_KEYS=0
+
+default: all
+
+# board-pMAXPAPER-bPAGE.pdf
+# where MAXPAPER is a3 for one a4 and one a3 page, PAGEs are B, MT
+# a4 for three a4 pages, PAGEs are B, M, T
+# a1 for one a1 page (with much whitespace), page is P
+# a1m like a1 but assumes pasting onto 4 x a4 boards
+#
+# boundings-* (one per MAXPAPER) shows various regions
+# assuming 5.5mm unprintable border, see $max_printeredge
+
+BOARDFILES= \
+ $(addprefix maxprintable-, a3) \
+ $(addprefix minprintable-, a3) \
+ $(addprefix boundings-, pa3 pa4 pa1-bPageP pa1m pa1m-bPageP ) \
+ $(addprefix board-, pa3-bPageB pa3-bPageMT \
+ pa4-bPageB pa4-bPageM pa4-bPageT \
+ pa1-bPageP pa1m-bPageP ) \
+ $(addprefix a4-test-, b m t a1m) \
+ layout-test-preview \
+ $(addprefix layout-test-, b m t a1m)
+
+
+all: all-ps all-pdf all-preview
+
+PSS=$(addsuffix .ps, $(BOARDFILES))
+PDFS=$(addsuffix .pdf, $(BOARDFILES))
+PREVIEWS=maxprintable-a3-preview.png
+
+all-ps: $(PSS)
+all-pdf: $(PDFS)
+all-preview: $(PREVIEWS)
+
+%.pdf: %.ps Makefile
+ $(PS2PDF) $(PS2PDF_FLAGS) $< $@.tmp && $i
+
+cmyk.pdf: PS2PDF_FLAGS += -dAutoRotatePages=/None