From: Steve Hay Date: Wed, 18 Aug 2004 13:44:13 +0000 (+0000) Subject: Add notes for building with MS VC++ Toolkit 2003 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7241fd2809f71df7303ed0a304105fc622c4058d;p=p5sagit%2Fp5-mst-13.2.git Add notes for building with MS VC++ Toolkit 2003 p4raw-id: //depot/perl@23224 --- diff --git a/README.win32 b/README.win32 index 9d99244..bace76b 100644 --- a/README.win32 +++ b/README.win32 @@ -41,13 +41,18 @@ additional software to run (other than what came with your operating system). Currently, this port is capable of using one of the following compilers on the Intel x86 architecture: - Borland C++ version 5.02 or later - Microsoft Visual C++ version 4.2 or later - MinGW with gcc gcc version 2.95.2 or later + Borland C++ version 5.02 or later + Microsoft Visual C++ version 4.2 or later + MinGW with gcc gcc version 2.95.2 or later The last of these is a high quality freeware compiler. Use version 3.2.x or later for the best results with this compiler. +The Microsoft Visual C++ compiler is also now being given away free in +the "Visual C++ Toolkit 2003", and also as part of the ".NET Framework +SDK". This is the same compiler that ships with "Visual Studio .NET 2003 +Professional". + This port can also be built on the Intel IA64 using: Microsoft Platform SDK Nov 2001 (64-bit compiler and tools) @@ -132,6 +137,84 @@ and edit win32/config.vc to change "make=nmake" into "make=dmake". The latter step is only essential if you want to use dmake as your default make for building extensions using MakeMaker. +=item Microsoft Visual C++ Toolkit 2003 + +This free toolkit contains the same compiler and linker that ship with +Visual Studio .NET 2003 Professional, but doesn't contain everything +necessary to build Perl. + +You will also need to download the "Platform SDK" (the "Core SDK" and "MDAC +SDK" components are required) for header files, libraries and rc.exe, and +".NET Framework SDK" for more libraries and nmake.exe. Note that the latter +(which also includes the free compiler and linker) requires the ".NET +Framework Redistributable" to be installed first. This can be downloaded and +installed separately, but is included in the "Visual C++ Toolkit 2003" anyway. + +These packages can all be downloaded by searching in the Download Center at +http://www.microsoft.com/downloads/search.aspx?displaylang=en + +Note that the "Platform SDK February 2003" download requires Internet Explorer +5.0 to function. Alternatively, the very latest version at the time of writing +(called "Windows XP Service Pack 2 Platform SDK RC2") is now available as an +ISO-9660 CD image file and does not require IE5 to be downloaded but will only +work on Windows XP. + +According to the download pages the Toolkit and the .NET Framework SDK are only +supported on Windows 2000/XP/2003, so trying to use these tools on Windows +95/98/ME and even Windows NT probably won't work. + +Install the Toolkit first, then the Platform SDK, then the .NET Framework SDK. +Setup your environment as follows (assuming default installation locations +were chosen): + + SET PATH=%SystemRoot%\system32;%SystemRoot%;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft SDK\Bin;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin + SET INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft SDK\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include + SET LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;C:\Program Files\Microsoft SDK\lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib + +Several required files will still be missing: + +=over 4 + +=item * + +cvtres.exe is required by link.exe when using a .res file. It is actually +installed by the .NET Framework SDK, but into a location such as the +following: + + C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 + +Copy it from there to C:\Program Files\Microsoft SDK\Bin + +=item * + +lib.exe is normally used to build libraries, but link.exe with the /lib +option also works, so create a batch file called lib.bat in +C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin containing: + + @echo off + link /lib %* + +This will work as long as "lib.exe" is invoked simply as "lib" (which it is +during the Perl build process). + +=item * + +setargv.obj is required to build perlglob.exe (and perl.exe if the USE_SETARGV +option is enabled). The Platform SDK supplies this object file in source form +in C:\Program Files\Microsoft SDK\src\crt. Copy setargv.c, cruntime.h and +internal.h from there to some temporary location and build setargv.obj using + + cl.exe /c /I. /D_CRTBLD setargv.c + +Then copy setargv.obj to C:\Program Files\Microsoft SDK\lib + +=back + +Perl should now build using the win32/Makefile. You will need to edit that +file to comment-out CCTYPE = MSVC60 (since that enables delay-loading of the +Winsock DLL which the free toolkit does not support) and to set CCHOME, +CCINCDIR and CCLIBDIR as per the environment setup above. + =item Microsoft Platform SDK 64-bit Compiler The nmake that comes with the Platform SDK will suffice for building @@ -140,8 +223,8 @@ shells available after you install the Platform SDK from the Start Menu. =item MinGW release 3 with gcc -The latest release of MinGW at the time of writing is 3.1.0, which comes -with gcc-3.2.3, and can be downloaded here: +The latest release of MinGW at the time of writing is 3.1.0, which contains +gcc-3.2.3. It can be downloaded here: http://www.mingw.org/ @@ -152,7 +235,7 @@ You also need dmake. See L above on how to get it. =item MinGW release 1 with gcc -The MinGW-1.1 bundle comes with gcc-2.95.3. +The MinGW-1.1 bundle contains 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