Sync contact titles
[openssl-web.git] / Makefile
1 ##
2 ## Build procedure for www.openssl.org
3
4 ##  Checkouts.
5 CHECKOUTS = /var/cache/openssl/checkouts
6 ##  Snapshot directory
7 SNAP = $(CHECKOUTS)/openssl
8 ## Where releases are found.
9 RELEASEDIR = /var/www/openssl/source
10
11
12 # All simple generated files.
13 SIMPLE = newsflash.inc sitemap.txt \
14          community/committers.inc \
15          docs/faq.inc docs/fips.inc \
16          news/changelog.inc news/changelog.txt \
17          news/cl102.txt news/cl110.txt \
18          news/openssl-1.0.2-notes.inc \
19          news/openssl-1.1.0-notes.inc \
20          news/newsflash.inc \
21          news/vulnerabilities.inc \
22          source/.htaccess \
23          source/license.txt \
24          source/index.inc
25 SRCLISTS = \
26            source/old/0.9.x/index.inc \
27            source/old/1.0.0/index.inc \
28            source/old/1.0.1/index.inc \
29            source/old/1.0.2/index.inc \
30            source/old/1.1.0/index.inc \
31            source/old/fips/index.inc \
32
33
34 all: suball
35
36 suball: $(SIMPLE) $(SRCLISTS) manmaster
37
38 relupd: suball manpages
39
40 clean:
41         rm -f $(SIMPLE) $(SRCLISTS)
42
43 # Legacy targets
44 hack-source_htaccess: all
45 simple: all
46 generated: all
47 rebuild: all
48
49 define makemanpages
50         ./bin/mk-manpages $(1) $(2) docs
51         ./bin/mk-filelist -a docs/man$(2)/apps '' '*.html' >docs/man$(2)/apps/index.inc
52         ./bin/mk-filelist -a docs/man$(2)/crypto '' '*.html' >docs/man$(2)/crypto/index.inc
53         ./bin/mk-filelist -a docs/man$(2)/ssl '' '*.html' >docs/man$(2)/ssl/index.inc
54 endef
55 manpages: manmaster
56         $(call makemanpages,$(CHECKOUTS)/openssl-1.1.0-stable,1.1.0)
57         $(call makemanpages,$(CHECKOUTS)/openssl-1.0.2-stable,1.0.2)
58
59 manmaster:
60         ./bin/mk-manmaster $(CHECKOUTS)/openssl master docs
61         ./bin/mk-filelist -a docs/manmaster/man1 '' '*.html' >docs/manmaster/man1/index.inc
62         ./bin/mk-filelist -a docs/manmaster/man3 '' '*.html' >docs/manmaster/man3/index.inc
63         ./bin/mk-filelist -a docs/manmaster/man5 '' '*.html' >docs/manmaster/man5/index.inc
64         ./bin/mk-filelist -a docs/manmaster/man7 '' '*.html' >docs/manmaster/man7/index.inc
65
66 ## $(SIMPLE) -- SIMPLE GENERATED FILES
67 .PHONY: sitemap community/committers.inc
68 newsflash.inc: news/newsflash.inc
69         @rm -f $@
70         head -7 $? >$@
71 sitemap sitemap.txt:
72         @rm -f sitemap.txt
73         ./bin/mk-sitemap > sitemap.txt
74
75 community/committers.inc:
76         @rm -f $@
77         wget -q https://api.openssl.org/0/Group/commit/Members
78         ./bin/mk-committers <Members >$@
79         @rm -f Members
80
81 docs/faq.inc: $(wildcard docs/faq-[0-9]-*.txt) bin/mk-faq
82         @rm -f $@
83         ./bin/mk-faq docs/faq-[0-9]-*txt >$@
84 docs/fips.inc: $(wildcard docs/fips/*) bin/mk-filelist
85         @rm -f $@
86         ./bin/mk-filelist docs/fips fips/ '*' >$@
87
88 news/changelog.inc: news/changelog.txt bin/mk-changelog
89         @rm -f $@
90         ./bin/mk-changelog <news/changelog.txt >$@
91 news/changelog.txt: $(SNAP)/CHANGES
92         @rm -f $@
93         cp $? $@
94 news/cl102.txt: $(CHECKOUTS)/openssl-1.0.2-stable/CHANGES
95         @rm -f $@
96         cp $? $@
97 news/cl110.txt: $(CHECKOUTS)/openssl-1.1.0-stable/CHANGES
98         @rm -f $@
99         cp $? $@
100 news/openssl-1.0.2-notes.html: news/openssl-notes.html.in
101         @rm -f $@
102         sed -e 's|@VERSION@|1.0.2|g' < $< > $@
103 news/openssl-1.1.0-notes.html: news/openssl-notes.html.in
104         @rm -f $@
105         sed -e 's|@VERSION@|1.1.0|g' < $< > $@
106 news/openssl-1.0.2-notes.inc: $(CHECKOUTS)/openssl-1.0.2-stable/NEWS news/openssl-1.0.2-notes.html bin/mk-notes
107         @rm -f $@
108         ./bin/mk-notes 1.0.2 < $(CHECKOUTS)/openssl-1.0.2-stable/NEWS > $@
109 news/openssl-1.1.0-notes.inc: $(CHECKOUTS)/openssl-1.1.0-stable/NEWS news/openssl-1.1.0-notes.html bin/mk-notes
110         @rm -f $@
111         ./bin/mk-notes 1.1.0 < $(CHECKOUTS)/openssl-1.1.0-stable/NEWS > $@
112 news/newsflash.inc: news/newsflash.txt
113         sed <$? >$@ \
114             -e '/^#/d' \
115             -e 's@^@<tr><td class="d">@' \
116             -e 's@: @</td><td class="t">@' \
117             -e 's@$$@</td></tr>@'
118 news/vulnerabilities.inc: bin/vulnerabilities.xsl news/vulnerabilities.xml
119         @rm -f $@
120         xsltproc bin/vulnerabilities.xsl news/vulnerabilities.xml >$@
121
122 source/.htaccess: $(wildcard source/openssl-*.tar.gz) bin/mk-latest
123         @rm -f @?
124         ./bin/mk-latest source >$@
125 source/license.txt: $(SNAP)/LICENSE
126         @rm -f $@
127         cp $? $@
128 source/index.inc: $(wildcard $(RELEASEDIR)/openssl-*.tar.gz) bin/mk-filelist
129         @rm -f $@
130         ./bin/mk-filelist $(RELEASEDIR) '' 'openssl-*.tar.gz' >$@
131
132 ## $(SRCLISTS) -- LISTS OF SOURCES
133 source/old/0.9.x/index.inc: $(wildcard source/old/0.9.x/*.gz) bin/mk-filelist
134         @rm -f $@
135         ./bin/mk-filelist source/old/0.9.x '' '*.gz' >$@
136 source/old/1.0.0/index.inc: $(wildcard source/old/1.0.0/*.gz) bin/mk-filelist
137         @rm -f $@
138         ./bin/mk-filelist source/old/1.0.0 '' '*.gz' >$@
139 source/old/1.0.1/index.inc: $(wildcard source/old/1.0.1/*.gz) bin/mk-filelist
140         @rm -f $@
141         ./bin/mk-filelist source/old/1.0.1 '' '*.gz' >$@
142 source/old/1.0.2/index.inc: $(wildcard source/old/1.0.2/*.gz) bin/mk-filelist
143         @rm -f $@
144         ./bin/mk-filelist source/old/1.0.2 '' '*.gz' >$@
145 source/old/1.1.0/index.inc: $(wildcard source/old/1.1.0/*.gz) bin/mk-filelist
146         @rm -f $@
147         ./bin/mk-filelist source/old/1.1.0 '' '*.gz' >$@
148 source/old/fips/index.inc: $(wildcard source/old/fips/*.gz) bin/mk-filelist
149         @rm -f $@
150         ./bin/mk-filelist source/old/fips '' '*.gz' >$@
151
152 # Because these the indexes of old tarballs will inevitably be newer
153 # than the tarballs that are moved into their respective directory,
154 # we must declare them phony, or they will not be regenerated when
155 # they should.
156 .PHONY : \
157          source/old/1.0.1/index.inc source/old/1.0.2/index.inc \
158          source/old/1.1.0/index.inc source/old/fips/index.inc