[RFT PATCH -perfbook v3 v3 3/4] Restore Makefile as of 2022.01.25

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For regression test of parallel pdflatex runs, carry old Makefile
as Makefile.2022.01.25 for reference.

Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx>
---
 Makefile.2022.01.25 | 608 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 608 insertions(+)
 create mode 100644 Makefile.2022.01.25

diff --git a/Makefile.2022.01.25 b/Makefile.2022.01.25
new file mode 100644
index 00000000..6ee849fd
--- /dev/null
+++ b/Makefile.2022.01.25
@@ -0,0 +1,608 @@
+SHELL = /bin/bash
+
+GITREFSTAGS := $(shell ls -d .git/refs/tags 2>/dev/null)
+
+LATEXSOURCES = \
+	perfbook-lt.tex \
+	legal.tex \
+	summary.tex \
+	glossary.tex \
+	qqz.sty origpub.sty \
+	glsdict.tex indexsee.tex \
+	pfbook.cls \
+	ushyphex.tex pfhyphex.tex \
+	ack.tex \
+	*/*.tex \
+	*/*/*.tex
+
+LST_SOURCES := $(wildcard CodeSamples/formal/promela/*.lst) \
+	$(wildcard appendix/styleguide/*.c)
+
+SUB_QQZ := qqzhowto.tex qqzintro.tex qqzcpu.tex qqztoolsoftrade.tex \
+	qqzcount.tex qqzSMPdesign.tex qqzlocking.tex qqzowned.tex \
+	qqzdefer.tex qqzdatastruct.tex qqzdebugging.tex qqzformal.tex \
+	qqztogether.tex	qqzadvsync.tex qqzmemorder.tex qqzeasy.tex \
+	qqzfuture.tex qqzquestions.tex qqztoyrcu.tex qqzwhymb.tex
+
+LATEXGENERATED = autodate.tex qqz.tex contrib.tex origpub.tex sub_qqz
+# Note: Empty target "sub_qqz" is used on behalf of $(SUB_QQZ) to prevent
+# parallel runs of divideqqz.pl.
+
+TWOCOLTARGETS := mstx msr msn msnt sf nq sfnq ix df
+EBTARGETS := $(foreach v,nq sf sfnq ix df,eb$(v))
+ABBREVTARGETS := lt hb a4 1c tcb msns mss eb $(TWOCOLTARGETS) $(foreach v,$(TWOCOLTARGETS),1c$(v)) $(EBTARGETS)
+
+PDFTARGETS := perfbook.pdf $(foreach v,$(ABBREVTARGETS),perfbook-$(v).pdf)
+GENERATED_MAIN := $(filter-out perfbook-lt.tex,$(foreach v,$(ABBREVTARGETS),perfbook-$(v).tex)) perfbook.tex
+
+EPSSOURCES_FROM_TEX := \
+	SMPdesign/DiningPhilosopher5.eps \
+	SMPdesign/DiningPhilosopher5TB.eps \
+	SMPdesign/DiningPhilosopher4part-b.eps \
+	SMPdesign/DiningPhilosopher5PEM.eps
+
+PDFTARGETS_OF_TEX := $(EPSSOURCES_FROM_TEX:%.eps=%.pdf)
+
+DOTSOURCES := $(wildcard */*.dot)
+
+EPSSOURCES_FROM_DOT := $(DOTSOURCES:%.dot=%.eps)
+
+FIGSOURCES := $(wildcard */*.fig) $(wildcard */*/*.fig)
+
+EPSSOURCES_FROM_FIG := $(FIGSOURCES:%.fig=%.eps)
+
+SVGSOURCES := $(wildcard */*.svg)
+FAKE_EPS_FROM_SVG := $(SVGSOURCES:%.svg=%.eps)
+PDFTARGETS_OF_SVG := $(SVGSOURCES:%.svg=%.pdf)
+
+OBSOLETE_FILES = extraction $(FAKE_EPS_FROM_SVG) CodeSamples/snippets.mk
+
+EPSSOURCES_DUP := \
+	$(wildcard */*.eps) \
+	$(wildcard */*/*.eps) \
+	$(wildcard */*/*/*.eps) \
+	$(wildcard */*/*/*/*.eps) \
+	$(wildcard */*/*/*/*/*.eps) \
+	$(EPSSOURCES_FROM_TEX) \
+	$(EPSSOURCES_FROM_DOT) \
+	$(EPSSOURCES_FROM_FIG)
+
+EPSSOURCES_OLD := \
+	$(wildcard CodeSamples/*/*/OLD-*/*.eps) \
+	$(wildcard CodeSamples/*/*/OLD-*/*/*.eps) \
+	$(wildcard CodeSamples/*/*/*/OLD-*/*.eps) \
+	$(wildcard CodeSamples/*/*/*/OLD-*/*/*.eps)
+
+EPSSOURCES := $(sort $(filter-out $(EPSSOURCES_OLD),$(filter-out $(OBSOLETE_FILES),$(EPSSOURCES_DUP))))
+
+PDFTARGETS_OF_EPS := $(EPSSOURCES:%.eps=%.pdf)
+
+EPSORIGIN := $(filter-out $(EPSSOURCES_FROM_TEX) $(EPSSOURCES_FROM_DOT) $(EPSSOURCES_FROM_FIG),$(EPSSOURCES))
+
+GNUPLOT_ORIG := $(shell grep -l gnuplot $(EPSORIGIN))
+GNUPLOT_ORIG_NOFIXFONTS := $(shell grep -l '/FontMatrix' $(GNUPLOT_ORIG))
+GNUPLOT_ORIG_NEEDFIXFONTS := $(filter-out $(GNUPLOT_ORIG_NOFIXFONTS),$(GNUPLOT_ORIG))
+EPSORIG_NOFIXFONTS := $(filter-out $(GNUPLOT_ORIG_NEEDFIXFONTS),$(EPSORIGIN))
+
+PDFTARGETS_OF_EPSORIG := $(EPSORIGIN:%.eps=%.pdf)
+PDFTARGETS_OF_GNUPLOT_NEEDFIXFONTS := $(GNUPLOT_ORIG_NEEDFIXFONTS:%.eps=%.pdf)
+PDFTARGETS_OF_EPSORIG_NOFIXFONTS := $(EPSORIG_NOFIXFONTS:%.eps=%.pdf)
+
+PDFTARGETS_OF_EPSOTHER := $(filter-out $(PDFTARGETS_OF_EPSORIG) $(PDFTARGETS_OF_TEX),$(PDFTARGETS_OF_EPS))
+
+BIBSOURCES := bib/*.bib alphapf.bst
+
+# required commands
+DOT := $(shell which dot 2>/dev/null)
+FIG2EPS := $(shell which fig2eps 2>/dev/null)
+INKSCAPE := $(shell which inkscape 2>/dev/null)
+ifdef INKSCAPE
+  INKSCAPE_ONE := $(shell inkscape --version 2>/dev/null | grep -c "Inkscape 1")
+endif
+LATEXPAND := $(shell which latexpand 2>/dev/null)
+QPDF := $(shell which qpdf 2>/dev/null)
+
+# required fonts
+STEELFONT := $(shell fc-list | grep -c -i steel)
+URWPS := $(shell fc-list | grep "Nimbus Mono PS" | wc -l)
+
+# required font packages
+FONTPACKAGES := $(shell kpsewhich newtxtext.sty nimbusmono.sty newtxtt.sty newtxsf.sty inconsolata.sty couriers.sty)
+NEWTXTEXT := $(findstring newtxtext,$(FONTPACKAGES))
+NIMBUSMONO := $(findstring nimbusmono,$(FONTPACKAGES))
+NEWTXTT := $(findstring newtxtt,$(FONTPACKAGES))
+COURIERS := $(findstring couriers,$(FONTPACKAGES))
+NEWTXSF := $(findstring newtxsf,$(FONTPACKAGES))
+INCONSOLATA := $(findstring inconsolata,$(FONTPACKAGES))
+FREESANS := $(shell fc-list | grep FreeSans | wc -l)
+DEJAVUMONO := $(shell fc-list | grep "DejaVu Sans Mono" | wc -l)
+
+# for line break in error text
+define n
+
+
+endef
+
+ifeq ($(URWPS),0)
+FIXSVGFONTS   = utilities/fixsvgfonts.sh
+FIXANEPSFONTS = utilities/fixanepsfonts.sh
+FIXFONTS      = utilities/fixfonts.sh
+else
+FIXSVGFONTS   = utilities/fixsvgfonts-urwps.sh
+FIXANEPSFONTS = utilities/fixanepsfonts-urwps.sh
+FIXFONTS      = utilities/fixfonts-urwps.sh
+endif
+ifeq ($(FREESANS),0)
+  RECOMMEND_FREEFONT := 1
+else
+  RECOMMEND_FREEFONT := 0
+endif
+ifeq ($(DEJAVUMONO),0)
+  RECOMMEND_DEJAVU := 1
+else
+  RECOMMEND_DEJAVU := 0
+endif
+
+STEELFONTID := $(shell fc-list | grep -i steel | grep -c Steel)
+
+LINELABEL_ENV_BEGIN := $(shell grep -l -F '\begin{linelabel}' $(LATEXSOURCES))
+LINELABEL_ENV_END   := $(shell grep -l -F '\end{linelabel}'   $(LATEXSOURCES))
+LINEREF_ENV_BEGIN   := $(shell grep -l -F '\begin{lineref}'   $(LATEXSOURCES))
+LINEREF_ENV_END     := $(shell grep -l -F '\end{lineref}'     $(LATEXSOURCES))
+LINELABEL_ENV := $(sort $(LINELABEL_ENV_BEGIN) $(LINELABEL_ENV_END))
+LINEREF_ENV   := $(sort $(LINEREF_ENV_BEGIN) $(LINEREF_ENV_END))
+
+CREFPTN    := '\\[Cc](ln)?ref{[^}]+}\s*{[^}]+}'
+CREFPAIR   := $(shell grep -l -zo -E $(CREFPTN)   $(LATEXSOURCES))
+
+SOURCES_OF_SNIPPET_ALL := $(shell grep -r -l -F '\begin{snippet}' CodeSamples)
+SOURCES_OF_LITMUS      := $(shell grep -r -l -F '\begin[snippet]' CodeSamples)
+SOURCES_OF_LTMS        := $(patsubst %.litmus,%.ltms,$(SOURCES_OF_LITMUS))
+SOURCES_OF_SNIPPET     := $(filter-out $(SOURCES_OF_LTMS),$(SOURCES_OF_SNIPPET_ALL)) $(SOURCES_OF_LITMUS)
+GEN_SNIPPET_D  = utilities/gen_snippet_d.pl utilities/gen_snippet_d.sh
+
+default = $(PERFBOOK_DEFAULT)
+
+ifeq ($(default),)
+	targ = perfbook.pdf
+else
+	targ = $(default)
+endif
+
+chkpagegroup = $(PERFBOOK_CHKPAGEGROUP)
+
+ifeq ($(PERFBOOK_PAPER),A4)
+	PERFBOOK_BASE = perfbook-a4.tex
+else
+ifeq ($(PERFBOOK_PAPER),HB)
+	PERFBOOK_BASE = perfbook-hb.tex
+else
+	PERFBOOK_BASE = perfbook-lt.tex
+endif
+endif
+
+BASE_DEPENDS := perfbook.tex $(foreach v,tcb 1c msns mss mstx msr msn msnt sf nq ix df,perfbook-$(v).tex)
+
+.PHONY: all touchsvg clean distclean neatfreak 2c ls-unused $(ABBREVTARGETS)
+.PHONY: mslm perfbook-mslm.pdf mslmmsg
+.PHONY: qq perfbook-qq.pdf qqmsg
+.PHONY: help help-official help-full help-semiofficial help-paper help-draft
+.PHONY: help-experimental help-prefixed
+.PHONY: paper-clean periodcheck punctcheck punctcheck-auto
+.PHONY: cleanfigs cleanfigs-eps cleanfigs-svg figs
+
+all: punctcheck-auto
+
+ifeq ($(MAKECMDGOALS),clean)
+else ifeq ($(MAKECMDGOALS),distclean)
+else ifeq ($(MAKECMDGOALS),neatfreak)
+else
+-include CodeSamples/snippets.d
+endif
+
+2c: perfbook.pdf
+
+mslm: perfbook-mslm.pdf
+perfbook-mslm.pdf: mslmmsg
+
+qq: perfbook-qq.pdf
+perfbook-qq.pdf: qqmsg
+
+mslmmsg: perfbook.pdf
+	@echo "perfbook-mslm.pdf is promoted to default target,"
+	@echo "built as perfbook.pdf."
+
+qqmsg: perfbook.pdf
+	@echo "perfbook-qq.pdf is promoted to default target,"
+	@echo "built as perfbook.pdf."
+
+$(PDFTARGETS): %.pdf: %.tex %.bbl
+	sh utilities/runlatex.sh $(basename $@)
+
+$(PDFTARGETS:.pdf=.bbl): %.bbl: %.aux $(BIBSOURCES)
+	bibtex $(basename $@)
+
+$(PDFTARGETS:.pdf=.aux): $(LATEXGENERATED) $(LATEXSOURCES) $(LST_SOURCES)
+ifeq ($(NEWTXTEXT),)
+	$(error Font package 'newtx' not found. See #9 in FAQ-BUILD.txt)
+endif
+	sh utilities/runfirstlatex.sh $(basename $@)
+
+autodate.tex: perfbook-lt.tex $(LATEXSOURCES) $(BIBSOURCES) \
+    $(PDFTARGETS_OF_EPS) $(PDFTARGETS_OF_SVG) $(FCVSNIPPETS) $(FCVSNIPPETS_VIA_LTMS) \
+    $(GITREFSTAGS) utilities/autodate.sh
+	sh utilities/autodate.sh
+
+perfbook_flat.tex: autodate.tex
+ifndef LATEXPAND
+	$(error --> $@: latexpand not found. Please install it)
+endif
+	@if [ ! -z "$(LINELABEL_ENV)" -a "$(LINELABEL_ENV)" != " " ]; then \
+		echo "'linelabel' used as environment in $(LINELABEL_ENV)." ; \
+		echo "------" ; \
+		grep -n -B 2 -A 2 -F 'linelabel' $(LINELABEL_ENV) ; \
+		echo "------" ; \
+		echo "Substitute 'fcvlabel' for 'linelabel' in $(LINELABEL_ENV)." ; \
+		exit 1 ; \
+	fi
+	@if [ ! -z "$(LINEREF_ENV)" -a "$(LINEREF_ENV)" != " " ]; then \
+		echo "'lineref' used as environment in $(LINEREF_ENV)." ; \
+		echo "------" ; \
+		grep -n -B 2 -A 2 -F 'lineref' $(LINEREF_ENV) ; \
+		echo "------" ; \
+		echo "Substitute 'fcvref' for 'lineref' in $(LINEREF_ENV)." ; \
+		exit 1 ; \
+	fi
+	@if [ ! -z "$(CREFPAIR)" -a "$(CREFPAIR)" != " " ]; then \
+		echo "------" ; \
+		if grep -q -E $(CREFPTN) $(CREFPAIR) ; then \
+			grep -n -B 2 -A 2 -E $(CREFPTN) $(CREFPAIR) ; \
+		else \
+			grep -zo -B 2 -A 2 -E $(CREFPTN) $(CREFPAIR) ; \
+			echo ; \
+		fi ; \
+		echo "------" ; \
+		echo "Need to use \[Cc]refrange or \[Cc]lnrefrangein $(CREFPAIR)." ; \
+		exit 1 ; \
+	fi
+	echo > qqz.tex
+	echo > contrib.tex
+	echo > origpub.tex
+	latexpand --empty-comments perfbook-lt.tex 1> $@ 2> /dev/null
+
+qqz.tex: perfbook_flat.tex
+	sh utilities/extractqqz.sh < $< | perl utilities/qqzreorder.pl > $@
+
+contrib.tex: perfbook_flat.tex qqz.tex
+	cat $^ | sh utilities/extractcontrib.sh > $@
+
+origpub.tex: perfbook_flat.tex
+	sh utilities/extractorigpub.sh < $< > $@
+
+# Empty target to generate $(SUB_QQZ) files
+sub_qqz: qqz.tex
+	utilities/divideqqz.pl
+	@touch sub_qqz
+
+perfbook.tex: $(PERFBOOK_BASE)
+	cp $< $@
+
+perfbook-tcb.tex: $(PERFBOOK_BASE)
+	sed -e 's/{tblcptop}{true}/{tblcptop}{false}/' < $< > $@
+
+perfbook-1c.tex: $(PERFBOOK_BASE)
+	sed -e 's/setboolean{twocolumn}{true}/setboolean{twocolumn}{false}/' < $< > $@
+
+perfbook-hb.tex: perfbook-lt.tex
+	sed -e 's/setboolean{hardcover}{false}/setboolean{hardcover}{true}/' < $< > $@
+
+perfbook-eb.tex: perfbook-lt.tex
+	sed -e 's/setboolean{ebooksize}{false}/setboolean{ebooksize}{true}/' < $< > $@
+	sed -i 's/setboolean{twocolumn}{true}/setboolean{twocolumn}{false}/' $@
+
+perfbook-msns.tex: $(PERFBOOK_BASE)
+	sed -e 's/%msfontstub/\\usepackage{courier}/' < $< > $@
+
+perfbook-mss.tex: $(PERFBOOK_BASE)
+ifeq ($(COURIERS),)
+	$(error Font package 'courier-scaled' not found. See #9 in FAQ-BUILD.txt)
+endif
+	sed -e 's/%msfontstub/\\usepackage[scaled=.94]{couriers}/' < $< > $@
+
+perfbook-mstx.tex: $(PERFBOOK_BASE)
+perfbook-1cmstx.tex: perfbook-1c.tex
+perfbook-mstx.tex perfbook-1cmstx.tex:
+	sed -e 's/%msfontstub/\\renewcommand*\\ttdefault{txtt}/' < $< > $@
+
+perfbook-msr.tex: $(PERFBOOK_BASE)
+perfbook-1cmsr.tex: perfbook-1c.tex
+perfbook-msr.tex perfbook-1cmsr.tex:
+ifeq ($(NIMBUSMONO),)
+	$(error Font package 'nimbus15' not found. See #9 in FAQ-BUILD.txt)
+endif
+	sed -e 's/%msfontstub/\\usepackage[scaled=.94]{nimbusmono}/' \
+	    -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
+
+perfbook-msn.tex: $(PERFBOOK_BASE)
+perfbook-1cmsn.tex: perfbook-1c.tex
+perfbook-msn.tex perfbook-1cmsn.tex:
+ifeq ($(NIMBUSMONO),)
+	$(error Font package 'nimbus15' not found. See #9 in FAQ-BUILD.txt)
+endif
+	sed -e 's/\\renewcommand\*\\ttdefault{lmtt}//' \
+	    -e 's/{lmttforcode}{true}/{lmttforcode}{false}/' \
+	    -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
+
+perfbook-msnt.tex: $(PERFBOOK_BASE)
+perfbook-1cmsnt.tex: perfbook-1c.tex
+perfbook-msnt.tex perfbook-1cmsnt.tex:
+ifeq ($(NEWTXTT),)
+	$(error Font package 'newtxtt' not found.$nInstall it or try 'make mstx' instead. See #9 in FAQ-BUILD.txt)
+endif
+ifeq ($(NIMBUSMONO),)
+	$(error Font package 'nimbus15' not found. See #9 in FAQ-BUILD.txt)
+endif
+	sed -e 's/%msfontstub/\\usepackage[zerostyle=a]{newtxtt}/' \
+	    -e 's/{qqzbg}{false}/{qqzbg}{true}/' \
+	    -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
+
+perfbook-sf.tex: $(PERFBOOK_BASE)
+perfbook-1csf.tex: perfbook-1c.tex
+perfbook-ebsf.tex: perfbook-eb.tex
+perfbook-sf.tex perfbook-1csf.tex perfbook-ebsf.tex:
+ifeq ($(NEWTXSF),)
+	$(error Font package 'newtxsf' not found. See #9 in FAQ-BUILD.txt)
+endif
+ifeq ($(INCONSOLATA),)
+	$(error Font package 'inconsolata' not found. See #9 in FAQ-BUILD.txt)
+endif
+ifeq ($(NIMBUSMONO),)
+	$(error Font package 'nimbus15' not found. See #9 in FAQ-BUILD.txt)
+endif
+	sed -e 's/setboolean{sansserif}{false}/setboolean{sansserif}{true}/' \
+	    -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' \
+	    -e 's/%msfontstub/\\usepackage[var0]{inconsolata}[2013\/07\/17]/' < $< > $@
+
+perfbook-nq.tex: $(PERFBOOK_BASE)
+perfbook-sfnq.tex: perfbook-sf.tex
+perfbook-1cnq.tex: perfbook-1c.tex
+perfbook-1csfnq.tex: perfbook-1csf.tex
+perfbook-ebnq.tex: perfbook-eb.tex
+perfbook-ebsfnq.tex: perfbook-ebsf.tex
+perfbook-nq.tex perfbook-sfnq.tex perfbook-1cnq.tex perfbook-1csfnq.tex perfbook-ebnq.tex perfbook-ebsfnq.tex:
+	sed -e 's/setboolean{qqzbg}{true}/setboolean{qqzbg}{false}/' \
+	    -e 's/setboolean{noqqz}{false}/setboolean{noqqz}{true}/' < $< > $@
+
+perfbook-ix.tex: $(PERFBOOK_BASE)
+perfbook-1cix.tex: perfbook-1c.tex
+perfbook-ebix.tex: perfbook-eb.tex
+perfbook-ix.tex perfbook-1cix.tex perfbook-ebix.tex:
+	sed -e 's/setboolean{qqzbg}{true}/setboolean{qqzbg}{false}/' \
+	    -e 's/setboolean{indexhl}{false}/setboolean{indexhl}{true}/' < $< > $@
+
+perfbook-df.tex: $(PERFBOOK_BASE)
+perfbook-1cdf.tex: perfbook-1c.tex
+perfbook-ebdf.tex: perfbook-eb.tex
+perfbook-df.tex perfbook-1cdf.tex perfbook-ebdf.tex:
+	sed -e 's/setboolean{qqzbg}{true}/setboolean{qqzbg}{false}/' \
+	    -e 's/setboolean{indexon}{true}/setboolean{indexon}{false}/' < $< > $@
+
+perfbook-a4.tex: perfbook-lt.tex
+perfbook-a4.tex:
+	sed -e 's/{afourpaper}{false}/{afourpaper}{true}/' < $< > $@
+
+# Rules related to perfbook_html are removed as of May, 2016
+
+$(EPSSOURCES_FROM_TEX): $(FIXANEPSFONTS) $(FIXFONTS)
+$(EPSSOURCES_FROM_TEX): %.eps: %.tex
+	@echo "$< --> $(suffix $@)"
+	sh utilities/mpostcheck.sh
+	@latex -output-directory=$(shell dirname $<) $< > /dev/null 2>&1
+	@dvips -Pdownload35 -E $(patsubst %.tex,%.dvi,$<) -o $@ > /dev/null 2>&1
+	@sh $(FIXANEPSFONTS) $@
+
+$(EPSSOURCES_FROM_DOT): $(FIXANEPSFONTS) $(FIXFONTS)
+$(EPSSOURCES_FROM_DOT): %.eps: %.dot
+	@echo "$< --> $(suffix $@)"
+ifndef DOT
+	$(error $< --> $@: dot not found. Please install graphviz)
+endif
+	@dot -Tps -o $@ $<
+	@sh $(FIXANEPSFONTS) $@
+
+$(EPSSOURCES_FROM_FIG): $(FIXANEPSFONTS) $(FIXFONTS)
+$(EPSSOURCES_FROM_FIG): %.eps: %.fig
+	@echo "$< --> $(suffix $@)"
+ifndef FIG2EPS
+	$(error $< --> $@: fig2eps not found. Please install fig2ps)
+endif
+	@fig2eps --nogv $< > /dev/null 2>&1
+	@sh $(FIXANEPSFONTS) $@
+
+# .eps --> .pdf rules
+ifdef USE_A2PING
+  include a2ping-rule.mk
+else
+  include epstopdf-rule.mk
+endif
+
+$(PDFTARGETS_OF_SVG): $(FIXSVGFONTS)
+$(PDFTARGETS_OF_SVG): %.pdf: %.svg
+	@echo "$< --> $(suffix $@)"
+ifeq ($(STEELFONT),0)
+	$(error "Steel City Comic" font not found. See #1 in FAQ.txt)
+endif
+ifndef INKSCAPE
+	$(error $< --> $@ inkscape not found. Please install it)
+endif
+ifeq ($(STEELFONTID),0)
+	@sh $(FIXSVGFONTS) < $< | sed -e 's/Steel City Comic/Test/g' > $<i
+else
+	@sh $(FIXSVGFONTS) < $< > $<i
+endif
+ifeq ($(RECOMMEND_FREEFONT),1)
+	$(info Nice-to-have font package 'gnu-freefont' not found. See #9 in FAQ-BUILD.txt)
+endif
+ifeq ($(RECOMMEND_DEJAVU),1)
+	$(info Nice-to-have font package 'dejavu' not found. See #9 in FAQ-BUILD.txt)
+endif
+ifeq ($(INKSCAPE_ONE),0)
+	@inkscape --export-pdf=$@ $<i > /dev/null 2>&1
+else
+	@inkscape -o $@ $<i > /dev/null 2>&1
+endif
+	@rm -f $<i
+ifeq ($(chkpagegroup),on)
+ifndef QPDF
+	$(error qpdf not found. Please install it)
+endif
+	@echo "checking page group in $@"
+	@qpdf --qdf $@ $@q
+	@./utilities/extpagegroup.pl < $@q > $@p
+	@diff -q -w $@p pagegroup
+	@rm -f $@q $@p
+endif
+
+CodeSamples/snippets.d: $(SOURCES_OF_SNIPPET) $(GEN_SNIPPET_D)
+	sh ./utilities/gen_snippet_d.sh
+
+$(FCVSNIPPETS):
+	@echo "$< --> $(suffix $@)"
+	@utilities/fcvextract.pl $< $(subst +,\\+,$(subst @,:,$(basename $(notdir $@)))) > $@
+	@utilities/checkfcv.pl $@
+
+$(FCVSNIPPETS_VIA_LTMS):
+	@echo "$< --> $(suffix $@)"
+	@utilities/fcvextract.pl $< $(subst +,\\+,$(subst @,:,$(basename $(notdir $@)))) > $@
+	@utilities/checkfcv.pl $@
+
+$(FCVSNIPPETS_LTMS):
+	@echo "$< --> $(suffix $@)"
+	@utilities/reorder_ltms.pl $< > $@
+
+help-official:
+	@echo "Official targets (Latin Modern Typewriter for monospace font):"
+	@echo "  Full,              Abbr."
+	@echo "  perfbook.pdf,      2c:   (default) 2-column layout"
+	@echo "  perfbook-1c.pdf,   1c:   1-column layout"
+	@echo "Note:"
+	@echo "  Official targets now enable indexing and Quick-Quiz framing."
+
+help-semiofficial:
+	@echo
+	@echo "Semi-official targets:"
+	@echo "  Full,              Abbr."
+	@echo "  perfbook-nq.pdf,   nq:   2c without inline Quick Quizzes (chapterwise Qs)"
+	@echo "  perfbook-sf.pdf,   sf:   2c with sans serif font"
+	@echo "  perfbook-sfnq.pdf, sfnq: sf + nq"
+
+help-paper:
+	@echo
+	@echo "Set env variable PERFBOOK_PAPER to change paper size:"
+	@echo "   PERFBOOK_PAPER=A4: a4paper"
+	@echo "   PERFBOOK_PAPER=HB: hard cover book"
+	@echo "   other (default):   letterpaper"
+	@echo "Note:"
+	@echo "  Modified PERFBOOK_PAPER takes effect after \"make paper-clean\"."
+	@echo
+	@echo "Paper-size specific targets (independent of PERFBOOK_PAPER):"
+	@echo "  perfbook-lt.pdf,   lt:   2c layout on letterpaper"
+	@echo "  perfbook-hb.pdf,   hb:   2c layout for hard cover book"
+	@echo "  perfbook-a4.pdf,   a4:   2c layout on a4paper"
+	@echo "  perfbook-eb.pdf,   eb:   1c layout for ebook reader (WIP)"
+
+help: help-official help-paper
+	@echo
+	@echo "\"make help-full\" will show the full list of available targets."
+
+help-draft:
+	@echo
+	@echo "Targets for draft check, non-framed Quick Quizzes (quicker build)"
+	@echo "  perfbook-ix.pdf,   ix:   for draft check, with indexed terms highlighted"
+	@echo "  perfbook-df.pdf,   df:   for draft check, without indexing"
+
+help-prefixed:
+	@echo
+	@echo "Prefixed targets:"
+	@echo "  \"1c*\" such as \"1cnq\", \"1csf\", and \"1cix\" are for 1c-layout."
+	@echo "  \"ebnq\", \"ebsf\", \"ebsfnq\", \"ebix\", and \"ebdf\" are for ebook-size 1c-layout,"
+	@echo "     independent of PERFBOOK_PAPER. (WIP)"
+
+help-experimental:
+	@echo
+	@echo "Experimental targets:"
+	@echo "  perfbook-msnt.pdf, msnt: newtxtt as monospace (non-slashed 0)"
+	@echo "  perfbook-mstx.pdf, mstx: txtt as monospace"
+	@echo "  perfbook-msr.pdf,  msr:  regular thickness courier clone as monospace"
+	@echo "  perfbook-msn.pdf,  msn:  narrow courier clone as monospace"
+	@echo
+	@echo "Historical targets:"
+	@echo "  perfbook-tcb.pdf,  tcb:  table caption at bottom (First Edition)"
+	@echo "  perfbook-msns.pdf, msns: non-scaled courier (First Edition)"
+	@echo "  perfbook-mss.pdf,  mss:  scaled courier (default in early 2017)"
+	@echo
+	@echo "Notes:"
+	@echo "  - \"msnt\" requires \"newtxtt\". \"mstx\" is a fallback target for older TeX env."
+	@echo "  - \"msr\" and \"msn\" require \"nimbus15\"."
+	@echo "  - \"msn\" doesn't cover bold face monospace."
+	@echo "  - \"sf\" requires \"newtxsf\"."
+	@echo "  - All the targets except for \"msn\" use \"Latin Modern Typewriter\" font"
+	@echo "    for code snippets."
+
+help-full: help-official help-paper help-semiofficial help-draft help-prefixed help-experimental
+
+clean:
+	find . -name '*.aux' -o -name '*.blg' \
+		-o -name '*.dvi' -o -name '*.log' \
+		-o -name '*.qqz' -o -name '*.toc' -o -name '*.bbl' \
+		-o -name '*.pdfp' -o -name '*.pdfq' | xargs rm -f
+	rm -f perfbook_flat.tex perfbook*.out $(GENERATED_MAIN)
+	rm -f $(LATEXGENERATED)
+	rm -f qqz*.tex
+	rm -f perfbook*.idx perfbook*.ind perfbook*.ilg perfbook*.ist
+	rm -f perfbook*.acn perfbook*.acr perfbook*.alg
+	rm -f perfbook*.glg perfbook*.glo perfbook*.gls perfbook*.glsdefs
+	rm -f CodeSamples/snippets.d
+	rm -f *.synctex*
+	@rm -f $(OBSOLETE_FILES)
+
+paper-clean:
+	rm -f $(BASE_DEPENDS)
+
+distclean: clean
+	sh utilities/cleanpdf.sh
+	rm -f $(EPSSOURCES_FROM_DOT) $(EPSSOURCES_FROM_TEX) $(EPSSOURCES_FROM_FIG)
+	find . -name '*.fcv' -o -name '*.ltms' | xargs rm -f
+
+touchsvg:
+	find . -name '*.svg' | xargs touch
+
+ls-unused:
+	find . -name .unused | xargs ls
+
+neatfreak: distclean
+	find . -name '*.pdf' | xargs rm -f
+
+cleanfigs-eps:
+	rm -f $(EPSSOURCES_FROM_TEX) $(EPSSOURCES_FROM_DOT) $(EPSSOURCES_FROM_FIG)
+	rm -f $(PDFTARGETS_OF_EPS)
+
+cleanfigs-svg:
+	rm -f $(PDFTARGETS_OF_SVG)
+
+cleanfigs: cleanfigs-eps cleanfigs-svg
+
+figs: $(PDFTARGETS_OF_EPS) $(PDFTARGETS_OF_SVG)
+
+punctcheck:
+	utilities/punctcheck.sh
+	utilities/cleverefcheck.sh
+
+punctcheck-auto: $(targ)
+	utilities/punctcheck.sh
+	utilities/cleverefcheck.sh
+
+periodcheck: punctcheck
+
+.SECONDEXPANSION:
+$(ABBREVTARGETS): %: perfbook-$$@.pdf
-- 
2.17.1





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux