view make/common/shared/Compiler-msvc.gmk @ 105:60ace1f28c4b

OPENJDK6-32: OpenJDK6-b31 isn't compatible with Windows platform Summary: Fixing broken build in openjdk6 for windows. This change bumps up the VS compiler required for build to VS2010 and brings in multiple changes in awt and network stacks from openjdk7u required for compiler upgrade. Reviewed-by: andrew Contributed-by: vladislav@azulsystems.com, ygaevsky@azulsystems.com, ivan@azulsystems.com
author ikrylov
date Fri, 30 May 2014 17:11:50 +0400
parents a5d2d7fd4d91
children b221ddfc8abb
line wrap: on
line source

#
# Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# This file is a derivative work resulting from (and including) modifications
# made by Azul Systems, Inc. The date of such changes is 2014.
# These modification are copyright 2014 Azul Systems, Inc., and are made 
# available on the same license terms set forth above.
#
# Please contact Azul Systems, Inc., 1173 Borregas Avenue, Sunnyvale, CA 94089
# USA or visit www.azulsystems.com if you need additional information or have
# any questions.

#
# MSVC Compiler settings
#

ifeq ($(PLATFORM), windows)
  CC           = $(COMPILER_PATH)cl
  CPP          = $(COMPILER_PATH)cl
  CXX          = $(COMPILER_PATH)cl
  CCC          = $(COMPILER_PATH)cl
  LIBEXE       = $(COMPILER_PATH)lib
  LINK         = $(COMPILER_PATH)link
  RC           = $(MSDEVTOOLS_PATH)rc
  LINK32       = $(LINK)
  RSC          = $(RC)
 
  # Fill in unknown values
  COMPILER_NAME=Unknown MSVC Compiler
  COMPILER_VERSION=
  REQUIRED_CC_VER=16.10.40219.01
  REQUIRED_LINK_VER=10.00.40219.01
  
  # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
  NMAKE          = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo

 # Compiler version and type (Always get word after "Version")
  CC_VER  := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')

  LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
  CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
  
  # The VS2010 compiler is the same one used on both 32bit and 64bit
  ifeq ($(CC_MAJORVER), 16)
    COMPILER_NAME=Microsoft Visual Studio 10 (16.00.30319.01)
    COMPILER_VERSION=VS2010
    ifeq ($(WINDOWSSDKDIR),)
      WINDOWSSDKDIR := $(error WINDOWSSDKDIR cannot be empty here)
    endif
    ifeq ($(ARCH_DATA_MODEL), 32)
      _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin
    else
      ifeq ($(ARCH), ia64)
        _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/ia64
      else
        _OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/x64
      endif
    endif
    RC     = $(_OTHER_TOOLS_BIN)/RC.Exe
    REBASE = $(_OTHER_TOOLS_BIN)/ReBase.Exe
    MT     = $(_OTHER_TOOLS_BIN)/mt.exe
    MTL    = $(_OTHER_TOOLS_BIN)/midl.exe
  endif
 
  # These variables can never be empty
  ifndef COMPILER_PATH
    COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
  endif
  ifndef COMPILER_VERSION
    COMPILER_VERSION := $(error COMPILER_VERSION cannot be empty here)
  endif
  ifneq ($(COMPILER_VERSION),VS2010)
    COMPILER_VERSION := $(error COMPILER_VERSION must be VS2010)
  endif

  # Shared library generation flag
  SHARED_LIBRARY_FLAG = -LD
endif