From 1c847d4b24b4811e0a135df4f0a725e3a5ccb70b Mon Sep 17 00:00:00 2001 From: Steve Hay Date: Tue, 10 Oct 2006 10:25:06 +0000 Subject: Updates for building on Win32 with Visual C++ 2005 Express Edition Add some instructions in README.win32, clarify macro comments and add missing macros to makefile.mk, and drop the GLOBEXEBUILD macro from Makefile--the Express Edition of Visual C++ 2005 is free and includes setargv.obj, so there is no need to support the .NET 2.0 SDK compiler which didn't include it. Unfortunately, the build still doesn't work yet--my attempt got as far as building extensions, but miniperl.exe crashed. Hopefully this can be sorted out soon. p4raw-id: //depot/perl@28978 --- win32/Makefile | 31 +++++++++++-------------------- win32/makefile.mk | 22 ++++++++++++++-------- 2 files changed, 25 insertions(+), 28 deletions(-) (limited to 'win32') diff --git a/win32/Makefile b/win32/Makefile index d65a9fc23a..b78866743d 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -94,15 +94,15 @@ USE_LARGE_FILES = define #CCTYPE = MSVC20 # Visual C++ > 2.x and < 6.x #CCTYPE = MSVC -# Visual C++ 6.x (aka Visual Studio 98) +# Visual C++ 6.x (aka Visual C++ 98) CCTYPE = MSVC60 -# Visual C++ Toolkit 2003 (free version of Visual C++ 7.x command-line tools) +# Visual C++ Toolkit 2003 (aka Visual C++ 7.x) (free command-line tools) #CCTYPE = MSVC70FREE -# Visual C++ 7.x (aka Visual Studio .NET 2003) (full version) +# Visual C++ .NET 2003 (aka Visual C++ 7.x) (full version) #CCTYPE = MSVC70 -# Visual C++ Toolkit 2005 (free version of Visual C++ 8.x command-line tools) +# Visual C++ 2005 Express Edition (aka Visual C++ 8.x) (free version) #CCTYPE = MSVC80FREE -# Visual C++ 8.x (aka Visual Studio 2005) (full version) +# Visual C++ 2005 (aka Visual C++ 8.x) (full version) #CCTYPE = MSVC80 # @@ -349,11 +349,12 @@ BUILDOPT = $(BUILDOPT) -DUSE_PERLIO ARCHNAME = $(ARCHNAME)-thread !ENDIF -# Visual Studio 98 and .NET 2003 specific -# VC++ 6.x and 7.x can load DLL's on demand. Makes the test suite run in -# about 10% less time. (The free version of 7.x can't do this, however.) -# The addition of VC++ 8.x is currently an educated guess. -!IF "$(CCTYPE)" == "MSVC60" || "$(CCTYPE)" == "MSVC70" || "$(CCTYPE)" == "MSVC80" +# Visual C++ 98, .NET 2003 and 2005 specific. +# VC++ 6.x, 7.x and 8.x can load DLL's on demand. Makes the test suite run in +# about 10% less time. (The free version of 7.x can't do this, but the free +# version of 8.x can.) +!IF "$(CCTYPE)" == "MSVC60" || "$(CCTYPE)" == "MSVC70" || \ + "$(CCTYPE)" == "MSVC80" || "$(CCTYPE)" == "MSVC80FREE" DELAYLOAD = -DELAYLOAD:ws2_32.dll -DELAYLOAD:shell32.dll delayimp.lib !ENDIF @@ -507,12 +508,6 @@ CONFIGPM = ..\lib\Config.pm ..\lib\Config_heavy.pl MINIMOD = ..\lib\ExtUtils\Miniperl.pm X2P = ..\x2p\a2p.exe -# With the .NET 2.0 SDK, setargs.obj is not available with the .NET SDK. It -# only comes with Visual Studio 2005. -!IF "$(CCTYPE)" != "MSVC80FREE" -GLOBEXEBUILD = -!ENDIF - # Unicode data files generated by mktables FIRSTUNIFILE = ..\lib\unicore\Canonical.pl UNIDATAFILES = ..\lib\unicore\Canonical.pl ..\lib\unicore\Exact.pl \ @@ -931,12 +926,8 @@ $(DYNALOADER)$(o) : $(DYNALOADER).c $(CORE_H) $(EXTDIR)\DynaLoader\dlutils.c #------------------------------------------------------------ $(GLOBEXE) : perlglob$(o) -!ifdef GLOBEXEBUILD $(LINK32) $(LINK_FLAGS) $(LIBFILES) -out:$@ -subsystem:$(SUBSYS) \ perlglob$(o) setargv$(o) -!else - echo Skipping $(GLOBEXE) -!endif perlglob$(o) : perlglob.c diff --git a/win32/makefile.mk b/win32/makefile.mk index 5239ef9789..a96625f1da 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -3,7 +3,7 @@ # Supported compilers: # Visual C++ 2.0 through 7.0 (and possibly newer versions) # Borland C++ 5.02 or better -# Mingw32 with gcc-2.95.2 or better +# MinGW with gcc-2.95.2 or better # MS Platform SDK 64-bit compiler and tools **experimental** # # This is set up to build a perl.exe that runs off a shared library @@ -96,12 +96,16 @@ USE_LARGE_FILES *= define #CCTYPE *= MSVC20 # Visual C++ > 2.x and < 6.x #CCTYPE *= MSVC -# Visual C++ 6.x (aka Visual Studio 98) +# Visual C++ 6.x (aka Visual C++ 98) #CCTYPE *= MSVC60 -# Visual C++ Toolkit 2003 (free version of Visual C++ 7.x command-line tools) +# Visual C++ Toolkit 2003 (aka Visual C++ 7.x) (free command-line tools) #CCTYPE *= MSVC70FREE -# Visual C++ 7.x (aka Visual Studio .NET 2003) (full version) +# Visual C++ .NET 2003 (aka Visual C++ 7.x) (full version) #CCTYPE *= MSVC70 +# Visual C++ 2005 Express Edition (aka Visual C++ 8.x) (free version) +#CCTYPE *= MSVC80FREE +# Visual C++ 2005 (aka Visual C++ 8.x) (full version) +#CCTYPE *= MSVC80 # Borland 5.02 or later #CCTYPE *= BORLAND # MinGW with gcc-2.95.2 or later @@ -344,10 +348,12 @@ ARCHNAME = MSWin32-$(ARCHITECTURE) ARCHNAME !:= $(ARCHNAME)-thread .ENDIF -# Visual Studio 98 and .NET 2003 specific -# VC++ 6.x and 7.x can load DLL's on demand. Makes the test suite run in -# about 10% less time. (The free version of 7.x can't do this, however.) -.IF "$(CCTYPE)" == "MSVC60" || "$(CCTYPE)" == "MSVC70" +# Visual C++ 98, .NET 2003 and 2005 specific. +# VC++ 6.x, 7.x and 8.x can load DLL's on demand. Makes the test suite run in +# about 10% less time. (The free version of 7.x can't do this, but the free +# version of 8.x can.) +.IF "$(CCTYPE)" == "MSVC60" || "$(CCTYPE)" == "MSVC70" \ + "$(CCTYPE)" == "MSVC80" || "$(CCTYPE)" == "MSVC80FREE" DELAYLOAD *= -DELAYLOAD:ws2_32.dll -DELAYLOAD:shell32.dll delayimp.lib .ENDIF -- cgit v1.2.1