diff options
author | Steve Hay <steve.m.hay@googlemail.com> | 2013-11-26 09:06:30 +0000 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2013-11-26 17:57:54 +0000 |
commit | a2b0867187c3f1dc1866fb63cfd59da300fb4dd5 (patch) | |
tree | fad4c1b14a48a1d934a3d8d52b07682cdf648644 | |
parent | a0ccbf74dd8e08dd5f5574e95fa73f9d2332896a (diff) | |
download | perl-a2b0867187c3f1dc1866fb63cfd59da300fb4dd5.tar.gz |
Extend Intel C++ compiler support (a48cc4c427) to dmake builds
-rw-r--r-- | README.win32 | 10 | ||||
-rw-r--r-- | pod/perldelta.pod | 5 | ||||
-rw-r--r-- | win32/makefile.mk | 18 |
3 files changed, 26 insertions, 7 deletions
diff --git a/README.win32 b/README.win32 index 37a7177b75..fda4487d4b 100644 --- a/README.win32 +++ b/README.win32 @@ -40,7 +40,7 @@ system). Currently, this port is capable of using one of the following compilers on the Intel x86 architecture: Microsoft Visual C++ version 6.0 or later - Intel C++ Compiler (experimental, nmake only) + Intel C++ Compiler (experimental) Gcc by mingw.org gcc version 3.2 or later Gcc by mingw-w64.sf.net gcc version 4.4.3 or later @@ -315,10 +315,10 @@ You also need dmake. See L</"Make"> above on how to get it. =item Intel C++ Compiler -Experimental support for using Intel C++ Compiler has been added. You must use -nmake, not dmake. Edit win32/Makefile and pick the correct CCTYPE for the -Visual C that Intel C was installed into. Also uncomment __ICC to enable Intel -C on Visual C support. To set up the build enviroment, from the Start Menu run +Experimental support for using Intel C++ Compiler has been added. Edit +win32/Makefile and pick the correct CCTYPE for the Visual C that Intel C was +installed into. Also uncomment __ICC to enable Intel C on Visual C support. +To set up the build enviroment, from the Start Menu run IA-32 Visual Studio 20__ mode or Intel 64 Visual Studio 20__ mode as appropriate. Then run nmake as usually in that prompt box. diff --git a/pod/perldelta.pod b/pod/perldelta.pod index f80bd5faa8..a6032661d2 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -305,9 +305,10 @@ L</Modules and Pragmata> section. =over 4 -=item XXX-some-platform +=item Windows -XXX +Experimental support for building with Intel C++ Compiler has been extended to +cover the dmake makefile (win32/makefile.mk) as well. =back diff --git a/win32/makefile.mk b/win32/makefile.mk index 691b3caa2c..00d140656b 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -140,6 +140,11 @@ USE_LARGE_FILES *= define CCTYPE *= GCC # +# If you are using Intel C++ Compiler uncomment this +# +#__ICC *= define + +# # uncomment next line if you want debug version of perl (big,slow) # If not enabled, we automatically try to use maximum optimization # with all compilers that are known to have a working optimizer. @@ -487,8 +492,13 @@ PREMSVC80 = define PREMSVC80 = undef .ENDIF +.IF "$(__ICC)" != "define" CC = cl LINK32 = link +.ELSE +CC = icl +LINK32 = xilink +.ENDIF LIB32 = $(LINK32) -lib RSC = rc @@ -558,6 +568,14 @@ LIBBASEFILES = \ netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \ version.lib odbc32.lib odbccp32.lib comctl32.lib +# Avoid __intel_new_proc_init link error for libircmt. +# libmmd is /MD equivelent, other variants exist. +# libmmd is Intel C's math addon funcs to MS CRT, contains long doubles, C99, +# and optimized C89 funcs +.IF "$(__ICC)" == "define" +LIBBASEFILES += libircmt.lib libmmd.lib +.ENDIF + # The 64 bit Windows Server 2003 SP1 SDK compilers link against MSVCRT.dll, which # doesn't include the buffer overrun verification code used by the /GS switch. # Since the code links against libraries that are compiled with /GS, this |