9292 </para>
9393
9494 <para>
95- The tools for building using <productname>Visual C++</productname>,
96- are in the <filename>src/tools/msvc</filename> directory. When building,
97- make sure there are no tools from <productname>MinGW</productname> or
95+ The tools for building using <productname>Visual C++</productname> or
96+ <productname>Platform SDK</productname> are in the
97+ <filename>src/tools/msvc</filename> directory. When building, make sure
98+ there are no tools from <productname>MinGW</productname> or
9899 <productname>Cygwin</productname> present in your system PATH. Also, make
99100 sure you have all the required Visual C++ tools available in the PATH. In
100101 <productname>Visual Studio</productname>, start the
103104 the command, and vice versa.
104105 In the <productname>Microsoft Windows SDK</productname>, start the
105106 <application>CMD shell</application> listed under the SDK on the Start Menu.
106- In recent SDK versions you can change the targeted CPU architecture by using
107- the <command>setenv</command> command.
108- All commands should be run from the <filename>src\tools\msvc</filename>
109- directory.
107+ In recent SDK versions you can change the targeted CPU architecture, build
108+ type, and target OS by using the <command>setenv</command> command, e.g.
109+ <command>setenv /x86 /release /xp</command> to target Windows XP or later
110+ with a 32-bit release build. See <command>/?</command> for other options to
111+ <command>setenv</command>. All commands should be run from the
112+ <filename>src\tools\msvc</filename> directory.
110113 </para>
111114
112115 <para>
@@ -191,17 +194,32 @@ $ENV{PATH}=$ENV{PATH} . ';c:\some\where\bison\bin';
191194 <varlistentry>
192195 <term><productname>Bison</productname> and
193196 <productname>Flex</productname></term>
194- <listitem><para>
195- Bison and Flex are required to build from Git, but not required when
196- building from a release file. Note that only Bison 1.875 or versions
197- 2.2 and later will work. Also, Flex version 2.5.31 or later is required.
198- Bison can be downloaded from <ulink url="http://gnuwin32.sourceforge.net"></>.
199- Flex can be downloaded from
200- <ulink url="http://www.postgresql.org/ftp/misc/winflex/"></>.
201- If you are using <productname>msysGit</productname> for accessing the
202- PostgreSQL <productname>Git</productname> repository you probably already
203- have recent versions of bison and flex in your <productname>Git</productname>
204- binary directory.
197+ <listitem>
198+ <para>
199+ <productname>Bison</productname> and <productname>Flex</productname> are
200+ required to build from Git, but not required when building from a release
201+ file. Only <productname>Bison</productname> 1.875 or versions 2.2 and later
202+ will work. <productname>Flex</productname> must be version 2.5.31 or later.
203+ </para>
204+
205+ <para>
206+ Both <productname>Bison</productname> and <productname>Flex</productname>
207+ are included in the <productname>msys</productname> tool suite, available
208+ from <ulink url="http://www.mingw.org/wiki/MSYS"></> as part of the
209+ <productname>MinGW</productname> compiler suite. You can also get
210+ <productname>msys</productname> as part of
211+ <productname>msysGit</productname> from <ulink url="http://git-scm.com/"></>.
212+ </para>
213+
214+ <para>
215+ You will need to add the directory containing
216+ <filename>flex.exe</filename> and <filename>bison.exe</filename> to the
217+ PATH environment variable in <filename>buildenv.pl</filename> unless
218+ they are already in PATH. In the case of MinGW, the directory is the
219+ <filename>\msys\1.0\bin</filename> subdirectory of your MinGW
220+ installation directory. For msysGit, it's the <filename>bin</filename>
221+ directory in your Git install directory. Do not add the MinGW compiler
222+ tools themselves to PATH.
205223 </para>
206224
207225 <note>
@@ -210,7 +228,18 @@ $ENV{PATH}=$ENV{PATH} . ';c:\some\where\bison\bin';
210228 causes Bison to malfunction when installed in a directory with
211229 spaces in the name, such as the default location on English
212230 installations <filename>C:\Program Files\GnuWin32</filename>.
213- Consider installing into <filename>C:\GnuWin32</filename> instead.
231+ Consider installing into <filename>C:\GnuWin32</filename> or use the
232+ NTFS shortname path to GnuWin32 in your PATH environment setting
233+ (e.g. <filename>C:\PROGRA~1\GnuWin32</filename>).
234+ </para>
235+ </note>
236+
237+ <note>
238+ <para>
239+ The obsolete "winflex" binaries distributed on the PostgreSQL FTP site
240+ and referenced in older documentation will fail with "flex: fatal
241+ internal error, exec failed" on 64-bit Windows hosts. Use flex from
242+ msys instead.
214243 </para>
215244 </note>
216245 </listitem>
0 commit comments