The first step in supporting VC++ 8.0. Added macros for the free .NET 2.0 SDK and...
Steve Peters [Wed, 15 Mar 2006 11:06:34 +0000 (11:06 +0000)]
2005.  Added these macros to "if" conditions that were appropriate.  Added a fix to prevent
the .NET 1.1 and 2.0 SDK compilers from attempting to build perlglob.exe (they are both missing
the setargv.obj file necessary to do it).

p4raw-id: //depot/perl@27500

win32/Makefile

index a29b848..d93eb02 100644 (file)
@@ -100,6 +100,10 @@ CCTYPE             = MSVC60
 #CCTYPE                = MSVC70FREE
 # Visual C++ 7.x (aka Visual Studio .NET 2003) (full version)
 #CCTYPE                = MSVC70
+# Visual C++ Toolkit 2005 (free version of Visual C++ 8.x command-line tools)
+#CCTYPE                = MSVC80FREE
+# Visual C++ 8.x (aka Visual Studio .NET 2003) (full version)
+#CCTYPE                = MSVC80
 
 #
 # uncomment next line if you want debug version of perl (big,slow)
@@ -337,7 +341,8 @@ ARCHNAME    = $(ARCHNAME)-thread
 # 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"
+# The addition of VC++ 8.x is currently an educated guess.
+!IF "$(CCTYPE)" == "MSVC60" || "$(CCTYPE)" == "MSVC70" || "$(CCTYPE)" == "MSVC80"
 DELAYLOAD      = -DELAYLOAD:ws2_32.dll -DELAYLOAD:shell32.dll delayimp.lib
 !ENDIF
 
@@ -419,7 +424,7 @@ OPTIMIZE    = $(OPTIMIZE) -Wp64 -Op
 
 # the string-pooling option -Gf is deprecated in VC++ 7.x and will be removed
 # in later versions, so use read-only string-pooling (-GF) instead
-!IF "$(CCTYPE)" == "MSVC70FREE" || "$(CCTYPE)" == "MSVC70"
+!IF "$(CCTYPE)" == "MSVC70FREE" || "$(CCTYPE)" == "MSVC70" || "$(CCTYPE)" == "MSVC80FREE" || "$(CCTYPE)" == "MSVC80"
 STRPOOL                = -GF
 !ELSE
 STRPOOL                = -Gf
@@ -494,6 +499,12 @@ GLOBEXE            = ..\perlglob.exe
 CONFIGPM       = ..\lib\Config.pm ..\lib\Config_heavy.pl
 MINIMOD                = ..\lib\ExtUtils\Miniperl.pm
 X2P            = ..\x2p\a2p.exe
+  
+# With .NET 1.1 and 2.0, setargs.obj is not available with the .NET SDK.  It
+# only comes with Visual Studio 2003 and Visual Studio 2005.
+!IF "$(CCTYPE)" != "MSVC70FREE" && "$(CCTYPE)" != "MSVC80FREE"
+GLOBEXEBUILD         = 
+!ENDIF
 
 # Unicode data files generated by mktables
 UNIDATAFILES    = ..\lib\unicore\Canonical.pl ..\lib\unicore\Exact.pl \
@@ -910,8 +921,12 @@ $(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