Perl. Make sure you are building within one of the "Build Environment"
shells available after you install the Platform SDK from the Start Menu.
-=item Mingw32 with GCC
+=item MinGW32 with gcc
-GCC-2.95.2 binaries can be downloaded from:
+The latest release of MinGW (at the time of writing) is 2.0.0, which comes
+with gcc-3.2, and can be downloaded here:
- ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/
+ http://sourceforge.net/projects/mingw
+
+Perl compiles with earlier releases of gcc (2.95 and up) that can be
+downloaded from the same place. If you use gcc-3.2, comment out the
+line:
+
+ USE_GCC_V3_2 *= define
+
+in win32\makefile.mk
You also need dmake. See L</"Make"> above on how to get it.
-The GCC-2.95.2 bundle comes with Mingw32 libraries and headers.
+=item MinGW release 1
+
+The MinGW-1.1 bundle comes with gcc-2.95.3.
Make sure you install the binaries that work with MSVCRT.DLL as indicated
in the README for the GCC bundle. You may need to set up a few environment
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER *= \5.8.0
+INST_VER *= \5.9.0
#
# Comment this out if you DON'T want your perl installation to have
#CCTYPE *= BORLAND
# mingw32+gcc-2.95.2 or better
#CCTYPE *= GCC
+# Uncomment this if you are using the latest MinGW release (2.0.0)
+# with gcc3.2
+#USE_GCC_V3_2 *= define
#
# uncomment this if your Borland compiler is older than v5.4.
CC = gcc
LINK32 = gcc
+.IF "$(USE_GCC_V3_2)" == "define"
+LINK32 = g++
+.END
LIB32 = ar rc
IMPLIB = dlltool
RSC = rc
#define Win32_Winsock
#endif
#include <windows.h>
-#ifndef __MINGW32__ /* GCC/Mingw32-2.95.2 forgot the WINAPI on CommandLineToArgvW() */
+/* GCC-2.95.2/Mingw32-1.1 forgot the WINAPI on CommandLineToArgvW() */
+#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION==1)
# include <shellapi.h>
#else
LPWSTR* WINAPI CommandLineToArgvW(LPCWSTR lpCommandLine, int * pNumArgs);
int _CRT_glob = 0;
#endif
-#if defined(__MINGW32__)
-/* Mingw32 is missing some prototypes */
+#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION==1)
+/* Mingw32-1.1 is missing some prototypes */
FILE * _wfopen(LPCWSTR wszFileName, LPCWSTR wszMode);
FILE * _wfdopen(int nFd, LPCWSTR wszMode);
FILE * _freopen(LPCWSTR wszFileName, LPCWSTR wszMode, FILE * pOldStream);