Founders in emphasis
[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          docs/faq.inc docs/fips.inc \
15          news/changelog.inc news/changelog.txt \
16          news/cl098.txt news/cl100.txt news/cl101.txt news/cl102.txt \
17          news/newsflash.inc \
18          news/vulnerabilities.inc \
19          source/.htaccess \
20          source/license.txt \
21          source/index.inc
22 SRCLISTS = \
23            source/old/0.9.x/index.inc \
24            source/old/1.0.0/index.inc \
25            source/old/1.0.1/index.inc \
26            source/old/1.0.2/index.inc \
27            source/old/fips/index.inc \
28
29 all: $(SIMPLE) $(SRCLISTS) manmaster
30
31 relupd: all
32         if [ "`id -un`" != openssl ]; then \
33             echo "You must run this as 'openssl'" ; \
34             echo "     sudo -u openssl -H make"; \
35             exit 1; \
36         fi
37         cd $(CHECKOUTS) ; for dir in openssl* ; do \
38             echo Updating $$dir ; ( cd $$dir ; git pull $(QUIET) ) ; \
39         done
40         git pull $(QUIET)
41         $(MAKE) all manpages
42
43 define makemanpages
44         ./bin/mk-manpages $(1) $(2) docs
45         ./bin/mk-filelist -a docs/man$(2)/apps '' '*.html' >docs/man$(2)/apps/index.inc
46         ./bin/mk-filelist -a docs/man$(2)/crypto '' '*.html' >docs/man$(2)/crypto/index.inc
47         ./bin/mk-filelist -a docs/man$(2)/ssl '' '*.html' >docs/man$(2)/ssl/index.inc
48 endef
49 manpages: manmaster
50         $(call makemanpages,$(CHECKOUTS)/openssl-1.0.2-stable,1.0.2)
51         $(call makemanpages,$(CHECKOUTS)/openssl-1.0.1-stable,1.0.1)
52         $(call makemanpages,$(CHECKOUTS)/openssl-1.0.0-stable,1.0.0)
53         $(call makemanpages,$(CHECKOUTS)/openssl-0.9.8-stable,0.9.8)
54
55 manmaster:
56         $(call makemanpages,$(CHECKOUTS)/openssl,master)
57
58 # Legacy targets
59 hack-source_htaccess: all
60 simple: all
61 generated: all
62 rebuild: all
63
64 clean:
65         rm -f $(SIMPLE) $(SRCLISTS)
66
67 newsflash.inc: news/newsflash.inc
68         @rm -f $@
69         head -6 $? >$@
70 sitemap.txt:
71         @rm -f $@
72         ./bin/mk-sitemap >$@
73
74 news/changelog.inc: news/changelog.txt bin/mk-changelog
75         @rm -f $@
76         ./bin/mk-changelog <news/changelog.txt >$@
77 news/changelog.txt: $(SNAP)/CHANGES
78         @rm -f $@
79         cp $? $@
80 news/cl098.txt: $(CHECKOUTS)/openssl-0.9.8-stable/CHANGES
81         @rm -f $@
82         cp $? $@
83 news/cl100.txt: $(CHECKOUTS)/openssl-1.0.0-stable/CHANGES
84         @rm -f $@
85         cp $? $@
86 news/cl101.txt: $(CHECKOUTS)/openssl-1.0.1-stable/CHANGES
87         @rm -f $@
88         cp $? $@
89 news/cl102.txt: $(CHECKOUTS)/openssl-1.0.2-stable/CHANGES
90         @rm -f $@
91         cp $? $@
92
93 news/newsflash.inc: news/newsflash.txt
94         sed <$? >$@ \
95             -e '/^#/d' \
96             -e 's@^@<tr><td class="d">@' \
97             -e 's@: @</td><td class="t">@' \
98             -e 's@$$@</td></tr>@'
99 news/vulnerabilities.inc: bin/vulnerabilities.xsl news/vulnerabilities.xml
100         @rm -f $@
101         xsltproc bin/vulnerabilities.xsl news/vulnerabilities.xml >$@
102
103 docs/faq.inc: docs/faq.txt
104         @rm -f $@
105         ./bin/mk-faq <$? >$@
106 docs/fips.inc:
107         @rm -f $@
108         ./bin/mk-filelist docs/fips fips/ '*' >$@
109
110 source/.htaccess:
111         @rm -f @?
112         ./bin/mk-latest source >$@
113 source/license.txt: $(SNAP)/LICENSE
114         @rm -f $@
115         cp $? $@
116 source/index.inc:
117         @rm -f $@
118         ./bin/mk-filelist -a $(RELEASEDIR) '' 'openssl-*.tar.gz' >$@
119
120 source/old/0.9.x/index.inc:
121         @rm -f $@
122         ./bin/mk-filelist source/old/0.9.x '' '*.gz' >$@
123 source/old/1.0.0/index.inc:
124         @rm -f $@
125         ./bin/mk-filelist source/old/1.0.0 '' '*.gz' >$@
126 source/old/1.0.1/index.inc:
127         @rm -f $@
128         ./bin/mk-filelist source/old/1.0.1 '' '*.gz' >$@
129 source/old/1.0.2/index.inc:
130         @rm -f $@
131         ./bin/mk-filelist source/old/1.0.2 '' '*.gz' >$@
132 source/old/fips/index.inc:
133         @rm -f $@
134         ./bin/mk-filelist source/old/fips '' '*.gz' >$@