view xml/en/docs/howto_build_on_win32.xml @ 1878:127ae107e5a9

Removed clause about shared memory and Windows versions with ASLR. Starting with nginx 1.9.0 shared memory can be used on Windows versions with address space layout randomization.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 26 Dec 2016 19:38:06 +0300
parents 9c1475613c59
children d011ffde3760
line wrap: on
line source

<?xml version="1.0"?>

<!--
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE article SYSTEM "../../../dtd/article.dtd">

<article name="Building nginx on the Win32 platform with Visual C"
         link="/en/docs/howto_build_on_win32.html"
         lang="en"
         rev="5">

<section name="Prerequisites">

<para>
To build nginx on the <registered>Microsoft Win32</registered> platform you need:

<list type="bullet">

<listitem>
Microsoft Visual C compiler. <registered>Microsoft Visual Studio</registered>
8 and 10 are known to work.
</listitem>

<listitem>
<link url="http://www.mingw.org/wiki/MSYS">MSYS</link>.
</listitem>

<listitem>
Perl, if you want to build <registered>OpenSSL</registered> and nginx with SSL support.
For example <link url="http://www.activestate.com/activeperl">ActivePerl</link>
or <link url="http://strawberryperl.com">Strawberry Perl</link>.
</listitem>

<listitem>
<link url="https://www.mercurial-scm.org">Mercurial</link> client.
</listitem>

<listitem>
<link url="http://www.pcre.org">PCRE</link>, <link url="http://zlib.net">zlib</link>
and <link url="http://www.openssl.org">OpenSSL</link> libraries sources.
</listitem>
</list>

</para>

</section>

<section id="build_steps"
         name="Build steps">

<para>
Ensure that paths to Perl, Mercurial and MSYS bin directories are added to
PATH environment variable before you start build. To set Visual C environment
run vcvarsall.bat script from Visual C directory.
</para>

<para>

To build nginx:
<list type="bullet">

<listitem>
Start MSYS bash.
</listitem>

<listitem>
Check out nginx sources from the hg.nginx.org repository. For example:
<programlisting>
hg clone http://hg.nginx.org/nginx
</programlisting>
</listitem>

<listitem>
Create a build and lib directories, and unpack zlib, PCRE and OpenSSL libraries
sources into lib directory:
<programlisting>
mkdir objs
mkdir objs/lib
cd objs/lib
tar -xzf ../../pcre-8.39.tar.gz
tar -xzf ../../zlib-1.2.8.tar.gz
tar -xzf ../../openssl-1.0.2j.tar.gz
</programlisting>
</listitem>

<listitem>
Run configure script:
<programlisting>
auto/configure --with-cc=cl --builddir=objs --prefix= \
--conf-path=conf/nginx.conf --pid-path=logs/nginx.pid \
--http-log-path=logs/access.log --error-log-path=logs/error.log \
--sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.39 \
--with-zlib=objs/lib/zlib-1.2.8 --with-openssl=objs/lib/openssl-1.0.2j \
--with-select_module --with-http_ssl_module
</programlisting>
</listitem>

<listitem>
Run make:
<programlisting>
nmake -f objs/Makefile
</programlisting>
</listitem>


</list>

</para>

</section>

<section id="see_also"
         name="See also">

<para>
<list type="bullet">

<listitem>
<link doc="windows.xml"/>
</listitem>

</list>
</para>

</section>
</article>