summaryrefslogtreecommitdiff
path: root/README.win32
diff options
context:
space:
mode:
authorSteve Hay <SteveHay@planit.com>2004-08-18 13:44:13 +0000
committerSteve Hay <SteveHay@planit.com>2004-08-18 13:44:13 +0000
commit7241fd2809f71df7303ed0a304105fc622c4058d (patch)
tree589404a088cf89fbc585d7a0dd623036cc37d486 /README.win32
parent96ad942f8d2c927db846bf31c9b14b2779e6f99f (diff)
downloadperl-7241fd2809f71df7303ed0a304105fc622c4058d.tar.gz
Add notes for building with MS VC++ Toolkit 2003
p4raw-id: //depot/perl@23224
Diffstat (limited to 'README.win32')
-rw-r--r--README.win3295
1 files changed, 89 insertions, 6 deletions
diff --git a/README.win32 b/README.win32
index 9d99244f17..bace76be0d 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</"Make"> 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