Projektbeschr: Aufgabenliste ueberarbeitet.
[wortliste.git] / Makefile
blobda39e9450c1855a576d1a5dc6b5fa4ef7f4261b4
1 # This Makefile creates German hyphenation patterns in subdirectories
2 # $(TRAD) and $(REFO). The input data is in $(SRCDIR).
4 SRCDIR = ~/git/wortliste
5 WORDLIST = wortliste
7 TRAD = dehypht-x
8 REFO = dehyphn-x
10 LC_ENVVARS = LC_COLLATE=de_DE.ISO8859-1 \
11 LC_CTYPE=de_DE.ISO8859-1
13 CAT = cat
14 CHDIR = cd
15 COPY = cp
16 DATE = $(shell date '+%Y-%m-%d')
17 ECHO = echo
18 GIT = git
19 ICONV = iconv -f latin1 -t utf8
20 MKDIR = mkdir -p
21 PERL = perl
22 SED = sed
23 SH = sh
24 SORT = $(LC_ENVVARS) sort -d \
25 | $(LC_ENVVARS) uniq -i
27 GIT_VERSION := `$(CHDIR) $(SRCDIR); \
28 $(GIT) log --pretty=oneline -1 $(WORDLIST) \
29 | $(SED) 's/ .*//'`
30 TRADFILES = $(TRAD)/$(TRAD)-$(DATE).pat $(TRAD)/$(TRAD)-$(DATE).tex
31 REFOFILES = $(REFO)/$(REFO)-$(DATE).pat $(REFO)/$(REFO)-$(DATE).tex
35 all: pattern-trad pattern-refo
37 .PHONY: pattern-trad pattern-refo
38 pattern-trad: $(TRADFILES)
39 pattern-refo: $(REFOFILES)
41 # auxiliary targets
43 .PHONY: words-trad words-refo
44 words-trad: $(TRAD)/words.hyphenated.trad
45 words-refo: $(REFO)/words.hyphenated.refo
48 .PHONY: pre-trad pre-refo
49 pre-trad:
50 $(MKDIR) $(TRAD)
51 pre-refo:
52 $(MKDIR) $(REFO)
54 $(TRADFILES) $(TRAD)/words.hyphenated.trad: pre-trad
55 $(REFOFILES) $(REFO)/words.hyphenated.refo: pre-refo
58 # GNU make supports creation of multiple targets by a single
59 # invocation of a recipe only for pattern rules, thus we have
60 # to use a `sentinel file' (using `echo' for the time stamp).
63 $(TRAD)/pattern.8 $(TRAD)/pattern.rules: $(TRAD)/make-full-pattern-trad
65 $(TRAD)/make-full-pattern-trad: $(TRAD)/words.hyphenated.trad
66 $(CHDIR) $(TRAD); \
67 $(SH) $(SRCDIR)/make-full-pattern.sh $(<F) $(SRCDIR)/german.tr
68 $(ECHO) done > $@
70 $(TRAD)/$(TRAD)-$(DATE).pat: $(TRAD)/pattern.8 $(TRAD)/pattern.rules
71 $(CAT) $(SRCDIR)/$(TRAD).1 \
72 | $(SED) -e "s/@DATE@/$(DATE)/" \
73 -e "s/@GIT_VERSION@/$(GIT_VERSION)/" > $@; \
74 $(CAT) $(TRAD)/pattern.rules >> $@; \
75 $(CAT) $(SRCDIR)/$(TRAD).2 >> $@; \
76 $(CAT) $(TRAD)/pattern.8 \
77 | $(ICONV) >> $@; \
78 $(CAT) $(SRCDIR)/$(TRAD).3 >> $@
80 $(REFO)/pattern.8 $(REFO)/pattern.rules: $(REFO)/make-full-pattern-refo
82 $(REFO)/make-full-pattern-refo: $(REFO)/words.hyphenated.refo
83 $(CHDIR) $(REFO); \
84 $(SH) $(SRCDIR)/make-full-pattern.sh $(<F) $(SRCDIR)/german.tr
85 $(ECHO) done > $@
87 $(REFO)/$(REFO)-$(DATE).pat: $(REFO)/pattern.8 $(REFO)/pattern.rules
88 $(CAT) $(SRCDIR)/$(REFO).1 \
89 | $(SED) -e "s/@DATE@/$(DATE)/" \
90 -e "s/@GIT_VERSION@/$(GIT_VERSION)/" > $@; \
91 $(CAT) $(REFO)/pattern.rules >> $@; \
92 $(CAT) $(SRCDIR)/$(REFO).2 >> $@; \
93 $(CAT) $(REFO)/pattern.8 \
94 | $(ICONV) >> $@; \
95 $(CAT) $(SRCDIR)/$(REFO).3 >> $@
97 $(TRAD)/words.hyphenated.trad: $(SRCDIR)/$(WORDLIST)
98 $(CAT) $< \
99 | $(PERL) $(SRCDIR)/extract-tex-trad.pl \
100 | $(SORT) > $@
102 $(REFO)/words.hyphenated.refo: $(SRCDIR)/$(WORDLIST)
103 $(CAT) $< \
104 | $(PERL) $(SRCDIR)/extract-tex-refo.pl \
105 | $(SORT) > $@
107 $(TRAD)/$(TRAD)-$(DATE).tex: $(SRCDIR)/$(TRAD).tex.in
108 $(CAT) $< \
109 | $(SED) -e "s/@DATE@/$(DATE)/" > $@
111 $(REFO)/$(REFO)-$(DATE).tex: $(SRCDIR)/$(REFO).tex.in
112 $(CAT) $< \
113 | $(SED) -e "s/@DATE@/$(DATE)/" > $@
115 # EOF