File: GNUmakefile

package info (click to toggle)
darcs 2.8.5-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 5,100 kB
  • ctags: 259
  • sloc: haskell: 30,046; sh: 8,947; ansic: 1,639; perl: 129; makefile: 12
file content (62 lines) | stat: -rw-r--r-- 2,132 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
### XXX we eventually want building of the manual to be part of Setup.lhs

# hardcode some bits
RUBBER=rubber

DARCS = dist/build/darcs/darcs
PREPROC=./dist/build/darcs/darcs --preprocess-manual
PREPROCHTML=--html
TEXSOURCES = doc/src/darcs.tex $(wildcard doc/src/*.tex) $(filter %.lhs,$(DARCS_FILES))
doc/manual/darcs.tex: $(TEXSOURCES) $(DARCS)
	mkdir -p doc/manual
	$(PREPROC) darcs.tex $(PREPROCHTML) >$@
doc/manual/darcs_print.tex: $(TEXSOURCES) $(DARCS)
	mkdir -p doc/manual
	$(PREPROC) darcs.tex >$@

%.pdf: %.tex
	cd $(<D) && $(RUBBER) --pdf $(<F)

pdf: %: doc/manual/darcs.%
html: doc/manual/index.html
website: pdf html doc/manual/bigpage.html

### TODO use latex2html since bigpage seems to needslatex2html anyway;
###      we can restore hevea/tex4ht support when we move this to Setup.lhs
doc/manual/index.html: doc/manual/darcs.tex doc/src/gpl.tex doc/darcs.css
	latex2html -long_titles 2 -split +1 -dir doc/manual doc/manual/darcs.tex
	cp -f doc/darcs.css doc/manual/darcs.css

doc/manual/bigpage.html: doc/manual/darcs.tex doc/src/gpl.tex doc/darcs.css
	ln -sf darcs.tex doc/manual/bigpage.tex
	latex2html -split 0 -external_file darcs -prefix big \
		-no_auto_link -dir doc/manual doc/manual/bigpage.tex
	cp -f doc/darcs.css doc/manual/bigpage.css

doc/manual/darcs.pdf: doc/manual/darcs_print.pdf
	cp $< $@

# Good for tags.
DARCS_FILES = $(wildcard src/[A-Z]*.hs src/*/[A-Z]*.hs src/*/*/[A-Z]*.hs) \
	      $(wildcard src/[A-Z]*.lhs src/*/[A-Z]*.lhs src/*/*/[A-Z]*.lhs)

tags: $(DARCS_FILES) src/*.c
	hasktags -c $(filter %.lhs %.hs,$^)
	ctags -a $(filter %.c,$^)

# TAGS is for etags, whereas tags is for ctags
TAGS: $(DARCS_FILES) src/*.c
	hasktags -e $(filter %.lhs %.hs,$^)
	etags -a $(filter %.c,$^)

clean:
	rm -f TAGS tags
	rm -f doc/manual/bigpage.tex doc/manual/bigpage.css
	rm -f doc/manual/bigimg*.png doc/manual/bigimages.*
	rm -f doc/manual/*.html doc/manual/darcs*.??? doc/manual/darcs.lg
	rm -f doc/manual/darcs.html
	rm -f doc/manual/darcs.xref c_context.c
	rm -f doc/manual/WARNINGS doc/manual/*.pl
	rm -f doc/manual/images.* doc/manual/img*.png doc/manual/*.html

.PHONY: pdf html clean website