annotate xml/en/docs/howto_build_on_win32.xml @ 2060:237b67ef69a6

Improved win32 build instructions. Added "--with-openssl-opt=no-asm" argument which is required since OpenSSL 1.0.2, as OpenSSL started to use assembler by default in 1.0.0 and then broke builds with MASM in OpenSSL 1.0.2 (ticket #1396). While here, added "--with-debug", added missing "--http-scgi-temp-path" and "--http-uwsgi-temp-path", updated OpenSSL to 1.0.2l, switched to slightly more readable one-argument-per-line style in configure example, added indentation to continuation lines, removed useless "--builddir=objs" argument ("objs" is the default), and removed useless "-f objs/Makefile" argument in nmake (nginx generates appropriate Makefile in the current directory).
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 17 Oct 2017 17:57:36 +0300
parents 7ee425a5ae29
children bea2d4e62376
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
1 <?xml version="1.0"?>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
2
580
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 461
diff changeset
3 <!--
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 461
diff changeset
4 Copyright (C) Nginx, Inc.
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 461
diff changeset
5 -->
be54c443235a Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents: 461
diff changeset
6
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
7 <!DOCTYPE article SYSTEM "../../../dtd/article.dtd">
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
8
853
d1446e47d17d Unified on the look of titles.
Ruslan Ermilov <ru@nginx.com>
parents: 700
diff changeset
9 <article name="Building nginx on the Win32 platform with Visual C"
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
10 link="/en/docs/howto_build_on_win32.html"
589
764fbac1b8b4 Added document revision.
Ruslan Ermilov <ru@nginx.com>
parents: 580
diff changeset
11 lang="en"
2060
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
12 rev="9">
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
13
121
49443032011c Unified <section> syntax for "article" and "module" documents.
Ruslan Ermilov <ru@nginx.com>
parents: 119
diff changeset
14 <section name="Prerequisites">
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
15
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
16 <para>
128
5530e24f9d58 * reg symbol replaced with 'registered' tags
Sergey Budnevitch <sb@waeme.net>
parents: 123
diff changeset
17 To build nginx on the <registered>Microsoft Win32</registered> platform you need:
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
18
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
19 <list type="bullet">
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
20
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
21 <listitem>
128
5530e24f9d58 * reg symbol replaced with 'registered' tags
Sergey Budnevitch <sb@waeme.net>
parents: 123
diff changeset
22 Microsoft Visual C compiler. <registered>Microsoft Visual Studio</registered>
5530e24f9d58 * reg symbol replaced with 'registered' tags
Sergey Budnevitch <sb@waeme.net>
parents: 123
diff changeset
23 8 and 10 are known to work.
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
24 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
25
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
26 <listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
27 <link url="http://www.mingw.org/wiki/MSYS">MSYS</link>.
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
28 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
29
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
30 <listitem>
128
5530e24f9d58 * reg symbol replaced with 'registered' tags
Sergey Budnevitch <sb@waeme.net>
parents: 123
diff changeset
31 Perl, if you want to build <registered>OpenSSL</registered> and nginx with SSL support.
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
32 For example <link url="http://www.activestate.com/activeperl">ActivePerl</link>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
33 or <link url="http://strawberryperl.com">Strawberry Perl</link>.
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
34 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
35
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
36 <listitem>
1775
a469e77d446f Fixed links to Mercurial SCM site.
Ruslan Ermilov <ru@nginx.com>
parents: 1749
diff changeset
37 <link url="https://www.mercurial-scm.org">Mercurial</link> client.
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
38 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
39
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
40 <listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
41 <link url="http://www.pcre.org">PCRE</link>, <link url="http://zlib.net">zlib</link>
118
b2462c2e2e47 o OpenSSL, Visual Studio, Subversion, Win32 are trademarks.
Maxim Konovalov <maxim@nginx.com>
parents: 117
diff changeset
42 and <link url="http://www.openssl.org">OpenSSL</link> libraries sources.
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
43 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
44 </list>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
45
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
46 </para>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
47
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
48 </section>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
49
121
49443032011c Unified <section> syntax for "article" and "module" documents.
Ruslan Ermilov <ru@nginx.com>
parents: 119
diff changeset
50 <section id="build_steps"
49443032011c Unified <section> syntax for "article" and "module" documents.
Ruslan Ermilov <ru@nginx.com>
parents: 119
diff changeset
51 name="Build steps">
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
52
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
53 <para>
889
675f5c67b45c Source code repository switch to Mercurial.
Maxim Dounin <mdounin@mdounin.ru>
parents: 859
diff changeset
54 Ensure that paths to Perl, Mercurial and MSYS bin directories are added to
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
55 PATH environment variable before you start build. To set Visual C environment
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
56 run vcvarsall.bat script from Visual C directory.
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
57 </para>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
58
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
59 <para>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
60
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
61 To build nginx:
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
62 <list type="bullet">
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
63
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
64 <listitem>
128
5530e24f9d58 * reg symbol replaced with 'registered' tags
Sergey Budnevitch <sb@waeme.net>
parents: 123
diff changeset
65 Start MSYS bash.
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
66 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
67
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
68 <listitem>
889
675f5c67b45c Source code repository switch to Mercurial.
Maxim Dounin <mdounin@mdounin.ru>
parents: 859
diff changeset
69 Check out nginx sources from the hg.nginx.org repository. For example:
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
70 <programlisting>
889
675f5c67b45c Source code repository switch to Mercurial.
Maxim Dounin <mdounin@mdounin.ru>
parents: 859
diff changeset
71 hg clone http://hg.nginx.org/nginx
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
72 </programlisting>
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
73 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
74
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
75 <listitem>
119
0c565b407027 s/openssl/OpenSSL/
Maxim Konovalov <maxim@nginx.com>
parents: 118
diff changeset
76 Create a build and lib directories, and unpack zlib, PCRE and OpenSSL libraries
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
77 sources into lib directory:
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
78 <programlisting>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
79 mkdir objs
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
80 mkdir objs/lib
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
81 cd objs/lib
2018
7ee425a5ae29 Updated PCRE version.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1905
diff changeset
82 tar -xzf ../../pcre-8.41.tar.gz
1894
d011ffde3760 Updated zlib and PCRE versions.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 1822
diff changeset
83 tar -xzf ../../zlib-1.2.11.tar.gz
2060
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
84 tar -xzf ../../openssl-1.0.2l.tar.gz
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
85 </programlisting>
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
86 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
87
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
88 <listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
89 Run configure script:
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
90 <programlisting>
2060
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
91 auto/configure \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
92 --with-cc=cl \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
93 --with-debug \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
94 --prefix= \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
95 --conf-path=conf/nginx.conf \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
96 --pid-path=logs/nginx.pid \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
97 --http-log-path=logs/access.log \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
98 --error-log-path=logs/error.log \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
99 --sbin-path=nginx.exe \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
100 --http-client-body-temp-path=temp/client_body_temp \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
101 --http-proxy-temp-path=temp/proxy_temp \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
102 --http-fastcgi-temp-path=temp/fastcgi_temp \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
103 --http-scgi-temp-path=temp/scgi_temp \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
104 --http-uwsgi-temp-path=temp/uwsgi_temp \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
105 --with-cc-opt=-DFD_SETSIZE=1024 \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
106 --with-pcre=objs/lib/pcre-8.41 \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
107 --with-zlib=objs/lib/zlib-1.2.11 \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
108 --with-openssl=objs/lib/openssl-1.0.2l \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
109 --with-openssl-opt=no-asm \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
110 --with-select_module \
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
111 --with-http_ssl_module
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
112 </programlisting>
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
113 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
114
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
115 <listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
116 Run make:
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
117 <programlisting>
2060
237b67ef69a6 Improved win32 build instructions.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2018
diff changeset
118 nmake
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
119 </programlisting>
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
120 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
121
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
122
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
123 </list>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
124
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
125 </para>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
126
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
127 </section>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
128
121
49443032011c Unified <section> syntax for "article" and "module" documents.
Ruslan Ermilov <ru@nginx.com>
parents: 119
diff changeset
129 <section id="see_also"
49443032011c Unified <section> syntax for "article" and "module" documents.
Ruslan Ermilov <ru@nginx.com>
parents: 119
diff changeset
130 name="See also">
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
131
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
132 <para>
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
133 <list type="bullet">
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
134
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
135 <listitem>
374
a413dffb0557 Replaced "a href" with "link doc" / "link url".
Ruslan Ermilov <ru@nginx.com>
parents: 221
diff changeset
136 <link doc="windows.xml"/>
461
6135f3c95bf6 Unified markup for lists.
Ruslan Ermilov <ru@nginx.com>
parents: 374
diff changeset
137 </listitem>
113
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
138
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
139 </list>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
140 </para>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
141
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
142 </section>
f9fe7330f8e8 Win32 build instructions added
Sergey Budnevitch <sb@waeme.net>
parents:
diff changeset
143 </article>