File: Makefile

package info (click to toggle)
lhs2tex 1.24-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,976 kB
  • sloc: haskell: 4,408; makefile: 314; sh: 221
file content (83 lines) | stat: -rwxr-xr-x 2,362 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
include ../config.mk

# use in-place lhs2TeX
LHS2TEX = ../lhs2TeX

SNIPPETSGD  = $(shell $(GREP) "\\\\input{" Guide2.lhs | $(SED) "s/^.*input{\(.*\)}.*$$/\1.tex/")
ifdef STC
SNIPPETSSTC = $(shell $(GREP) "\\\\input{" STC.lhs | $(SED) "s/^.*input{\(.*\)}.*$$/\1.tex/")
SNIPPETSTLL = $(shell $(GREP) "\\\\input{" TLL.lhs | $(SED) "s/^.*input{\(.*\)}.*$$/\1.tex/")
STCFLAGS="--let=stc=True"
endif

SNIPPETSIN    = $(wildcard *.lhs.in)
SNIPPETSLHS   = $(filter-out $(SNIPPETSIN:.in=), $(SNIPPETSGD:.tex=.lhs))

DONTBUILD = $(shell test -f Guide2.dontbuild && echo yes)

# default target
ifeq ($(DONTBUILD),yes)
all : dontbuildwarning
else
all : Guide2.pdf
endif

# in-place polytable.sty
polytable.sty :
	$(LN_S) ../polytable/polytable.sty .
	$(LN_S) ../polytable/lazylist.sty .

RawSearchPath.lhs : ../src/Version.lhs
	$(LHS2TEX) --texsearchpath > $@

SearchPath.lhs : RawSearchPath.lhs
	touch $@

srcdist :
	$(INSTALL) -m 644 $(SNIPPETSIN) ../$(DISTDIR)/doc
	$(INSTALL) -m 644 $(SNIPPETSLHS) ../$(DISTDIR)/doc
	$(INSTALL) -m 644 RawSearchPath.lhs ../$(DISTDIR)/doc
	$(INSTALL) -m 644 $(wildcard *.fmt) ../$(DISTDIR)/doc
	$(INSTALL) -m 644 Guide2.lhs Guide2.pdf Makefile ../$(DISTDIR)/doc
	$(INSTALL) -m 755 lhs2TeXpre ../$(DISTDIR)/doc
	touch ../$(DISTDIR)/doc/Guide2.dontbuild

dontbuildwarning :
	echo "----------------------------------------------"; \
	echo "To rebuild Guide2.pdf, remove Guide2.dontbuild"; \
	echo "and call make again."; \
	echo "----------------------------------------------"; \

%.pdf : %.tex polytable.sty
	$(SHELL) -c ' \
		$(PDFLATEX) $(PDFLATEX_OPTS) $<; \
		while $(GREP) -c "Warning.*Rerun" $(<:.tex=.log); \
			do $(PDFLATEX) $(PDFLATEX_OPTS) $<; done;'; \

Guide2.tex : Guide2.lhs $(SNIPPETSGD)
	$(LHS2TEX) --poly -P.:..:../src: $< > $@

STC.tex : STC.lhs $(SNIPPETSSTC)
	$(LHS2TEX) --poly $< > $@

TLL.tex : TLL.lhs $(SNIPPETSTLL)
	$(LHS2TEX) --poly $< > $@

# determine mode and then run lhs2TeX
%.tex : %.lhs
	MODE=`cat $< \
		| $(GREP) "^%include" \
		| head -n 1 \
		| $(SED) -e "s/^%include \(.*\)\.fmt/\1/" \
		| $(SED) -e "s/verbatim/verb/" \
			 -e "s/stupid/math/" \
		      	 -e "s/tex/poly/" \
		      	 -e "s/polytt/poly/" \
		      	 -e "s/typewriter/tt/"` && \
	echo $${MODE} && \
	$(LHS2TEX) --$${MODE} $(STCFLAGS) $< > $@

.PHONY : all srcdist clean
clean :
	rm -f $(SNIPPETSGD) $(SNIPPETSSTC) RawSearchPath.lhs