make/common/shared/Compiler-msvc.gmk

Thu, 17 Jun 2010 16:27:56 -0700

author
mikejwre
date
Thu, 17 Jun 2010 16:27:56 -0700
changeset 171
95db968660e7
parent 158
91006f157c46
permissions
-rw-r--r--

Added tag jdk7-b98 for changeset 3b99409057e4

     1 #
     2 # Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4 #
     5 # This code is free software; you can redistribute it and/or modify it
     6 # under the terms of the GNU General Public License version 2 only, as
     7 # published by the Free Software Foundation.  Oracle designates this
     8 # particular file as subject to the "Classpath" exception as provided
     9 # by Oracle in the LICENSE file that accompanied this code.
    10 #
    11 # This code is distributed in the hope that it will be useful, but WITHOUT
    12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14 # version 2 for more details (a copy is included in the LICENSE file that
    15 # accompanied this code).
    16 #
    17 # You should have received a copy of the GNU General Public License version
    18 # 2 along with this work; if not, write to the Free Software Foundation,
    19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20 #
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22 # or visit www.oracle.com if you need additional information or have any
    23 # questions.
    24 #
    26 #
    27 # MSVC Compiler settings
    28 #
    30 ifeq ($(PLATFORM), windows)
    31   CC           = $(COMPILER_PATH)cl
    32   CPP          = $(COMPILER_PATH)cl
    33   CXX          = $(COMPILER_PATH)cl
    34   CCC          = $(COMPILER_PATH)cl
    35   LIBEXE       = $(COMPILER_PATH)lib
    36   LINK         = $(COMPILER_PATH)link
    37   RC           = $(MSDEVTOOLS_PATH)rc
    38   LINK32       = $(LINK)
    39   RSC          = $(RC)
    41   # Fill in unknown values
    42   COMPILER_NAME=Unknown MSVC Compiler
    43   COMPILER_VERSION=
    44   REQUIRED_CC_VER=
    45   REQUIRED_LINK_VER=
    47   # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
    48   NMAKE          = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
    50   # Compiler version and type (Always get word after "Version")
    51   ifndef CC_VER
    52     CC_VER  := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
    53     export CC_VER
    54   endif
    56   # SDK-64 and MSVC6 put REBASE.EXE in a different places - go figure...
    57   ifeq ($(ARCH_DATA_MODEL), 32)
    58     ifndef LINK_VER
    59       LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
    60       export LINK_VER
    61     endif
    62     CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
    63     ifeq ($(CC_MAJORVER), 13)
    64       # This should be: CC_VER=13.10.3077 LINK_VER=7.10.3077
    65       REQUIRED_CC_VER = 13.10.3077
    66       REQUIRED_LINK_VER = 7.10.3077
    67       COMPILER_NAME=Visual Studio .NET 2003 Professional C++
    68       COMPILER_VERSION=VS2003
    69       REBASE     = $(COMPILER_PATH)../../Common7/Tools/Bin/rebase
    70       MTL        = $(COMPILER_PATH)../../Common7/Tools/Bin/midl
    71       ifndef COMPILER_PATH
    72 	COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
    73       endif
    74     endif
    75     ifeq ($(CC_MAJORVER), 14)
    76       # This should be: CC_VER=14.00.50727.42 LINK_VER=8.00.50727.42
    77       REQUIRED_CC_VER = 14.00.50727.42
    78       REQUIRED_LINK_VER = 8.00.50727.42
    79       COMPILER_NAME=Visual Studio 8
    80       COMPILER_VERSION=VS2005
    81       REBASE     = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase
    82       MTL        = $(COMPILER_PATH)../../Common8/Tools/Bin/midl
    83       ifndef COMPILER_PATH
    84 	COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
    85       endif
    86     endif
    87     ifeq ($(CC_MAJORVER), 15)
    88       # This should be: CC_VER=15.00.21022.08 LINK_VER=9.00.21022.08
    89       REQUIRED_CC_VER = 15.00.21022.08
    90       REQUIRED_LINK_VER = 9.00.21022.08
    91       COMPILER_NAME=Visual Studio 9
    92       COMPILER_VERSION=VS2008
    93       #rebase and midl moved out of Visual Studio into the SDK:
    94       REBASE     = $(MSDEVTOOLS_PATH)/rebase
    95       MTL        = $(MSDEVTOOLS_PATH)/midl.exe
    96       ifndef COMPILER_PATH
    97 	COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
    98       endif
    99     endif
   100     ifeq ($(CC_MAJORVER), 16)
   101       # This should be: CC_VER=16.00.30319.01 LINK_VER=10.00.30319.01
   102       REQUIRED_CC_VER = 16.00.30319.01
   103       REQUIRED_LINK_VER = 10.00.30319.01
   104       COMPILER_NAME=Visual Studio 10
   105       COMPILER_VERSION=VS2010
   106       #rebase and midl moved out of Visual Studio into the SDK:
   107       REBASE     = $(MSDEVTOOLS_PATH)/rebase
   108       MTL        = $(MSDEVTOOLS_PATH)/midl.exe
   109       ifndef COMPILER_PATH
   110 	COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
   111       endif
   112     endif
   113   else
   114     # else ARCH_DATA_MODEL is 64
   115     ifndef LINK_VER
   116       LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
   117       export LINK_VER
   118     endif
   119     CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
   120     CC_MINORVER :=$(call MinorVersion,$(CC_VER))
   121     CC_MICROVER :=$(call MicroVersion,$(CC_VER))
   122     ifeq ($(ARCH), ia64)
   123       REQUIRED_CC_VER = 13.00.9337.7
   124       REQUIRED_LINK_VER = 7.00.9337.7
   125     endif
   126     ifeq ($(ARCH), amd64)
   127       REQUIRED_CC_VER = 14.00.40310.41
   128       REQUIRED_LINK_VER = 8.00.40310.39
   129     endif
   130     ifeq ($(CC_MAJORVER), 13)
   131       ifeq ($(ARCH), ia64)
   132         # This should be: CC_VER=13.00.9337.7 LINK_VER=7.00.9337.7
   133         COMPILER_NAME=Microsoft Platform SDK - November 2001 Edition
   134         COMPILER_VERSION=VS2003
   135       endif
   136     endif
   137     ifeq ($(CC_MAJORVER), 14)
   138       ifeq ($(ARCH), amd64)
   139         ifeq ($(CC_MICROVER), 30701)
   140           # This should be: CC_VER=14.00.30701 LINK_VER=8.00.30701
   141 	  # WARNING: it says 14, but it is such an early build it doesn't
   142 	  #          have all the VS2005 compiler option changes, so treat
   143 	  #          this like a VS2003 compiler.
   144           COMPILER_NAME=Microsoft Platform SDK - February 2003 Edition
   145           COMPILER_VERSION=VS2003
   146         else
   147           # This should be: CC_VER=14.00.40310.41 LINK_VER=8.00.40310.39
   148 	  COMPILER_NAME=Microsoft Platform SDK - April 2005 Edition (3790.1830)
   149           COMPILER_VERSION=VS2005
   150         endif
   151       endif
   152     endif
   153     ifeq ($(CC_MAJORVER), 15)
   154       # This should be: CC_VER=15.00.21022.8 LINK_VER=9.00.21022.8
   155       REQUIRED_CC_VER = 15.00.21022.8
   156       REQUIRED_LINK_VER = 9.00.21022.8
   157       COMPILER_NAME=Windows SDK 6.1 Visual Studio 9
   158       COMPILER_VERSION=VS2008
   159       RC = $(MSSDK61)/bin/x64/rc
   160       REBASE = $(MSSDK61)/bin/x64/rebase
   161     else
   162       ifeq ($(CC_MAJORVER), 16)
   163         # This should be: CC_VER=16.00.30319.01 LINK_VER=9.00.30319.01
   164         REQUIRED_CC_VER = 16.00.30319.01
   165         REQUIRED_LINK_VER = 10.00.30319.01
   166         COMPILER_NAME=Microsoft Visual Studio 10
   167         COMPILER_VERSION=VS2010
   168         RC = $(MSSDK7)/bin/x64/rc
   169         REBASE = $(MSSDK7)/bin/x64/rebase
   170       else
   171         # This will cause problems if ALT_COMPILER_PATH is defined to ""
   172         # which is a directive to use the PATH.
   173         REBASE         = $(COMPILER_PATH)../REBASE
   174       endif
   175     endif
   176     ifndef COMPILER_PATH
   177       COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
   178     endif
   179   endif
   180   ifndef COMPILER_VERSION
   181     COMPILER_VERSION := $(error COMPILER_VERSION cannot be empty here)
   182   endif
   183   # Shared library generation flag
   184   SHARED_LIBRARY_FLAG = -LD
   185 endif

mercurial