diff -r 000000000000 -r 55540e827aef make/common/shared/Compiler-msvc.gmk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make/common/shared/Compiler-msvc.gmk Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,138 @@ +# +# Copyright 2005-2006 Sun Microsystems, Inc. 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. Sun designates this +# particular file as subject to the "Classpath" exception as provided +# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +# CA 95054 USA or visit www.sun.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= + REQUIRED_LINK_VER= + + # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake + NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo + + # SDK-64 and MSVC6 put REBASE.EXE in a different places - go figure... + ifeq ($(ARCH_DATA_MODEL), 32) + CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$8}') + LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}') + CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$5}') + CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) + REQUIRED_CCTYPE = Optimizing + REQUIRED_CC_VER = 13.10.3077 + REQUIRED_LINK_VER = 7.10.3077 + ifeq ($(CC_MAJORVER), 12) + # This should be: CC_VER=12.00.8168 LINK_VER=6.00.8447 + COMPILER_NAME=Visual C++ 6.0 Professional + VC6-SP 3 + COMPILER_VERSION=VC6 + REBASE = $(COMPILER_PATH)rebase + MTL = $(COMPILER_PATH)midl + endif + ifeq ($(CC_MAJORVER), 13) + # This should be: CC_VER=13.10.3077 LINK_VER=7.10.3077 + COMPILER_NAME=Visual Studio .NET 2003 Professional C++ + COMPILER_VERSION=VS2003 + REBASE = $(COMPILER_PATH)../../Common7/Tools/Bin/rebase + MTL = $(COMPILER_PATH)../../Common7/Tools/Bin/midl + ifndef COMPILER_PATH + COMPILER_PATH := $(error COMPILER_PATH cannot be empty here) + endif + endif + ifeq ($(CC_MAJORVER), 14) + # This should be: CC_VER=14.00.0000 LINK_VER=8.00.0000 + # NOTE: This compiler has not been tried yet on 32bit systems + COMPILER_NAME=Visual Studio .NET 2005 + COMPILER_VERSION=VS2005 + REBASE = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase + MTL = $(COMPILER_PATH)../../Common8/Tools/Bin/midl + ifndef COMPILER_PATH + COMPILER_PATH := $(error COMPILER_PATH cannot be empty here) + endif + endif + else + CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$7}') + LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}') + CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$4}') + CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) + CC_MINORVER :=$(call MinorVersion,$(CC_VER)) + CC_MICROVER :=$(call MicroVersion,$(CC_VER)) + ifeq ($(ARCH), ia64) + REQUIRED_CC_VER = 13.00.9337.7 + REQUIRED_LINK_VER = 7.00.9337.7 + endif + ifeq ($(ARCH), amd64) + REQUIRED_CC_VER = 14.00.40310.41 + REQUIRED_LINK_VER = 8.00.40310.39 + endif + ifeq ($(CC_MAJORVER), 13) + ifeq ($(ARCH), ia64) + # This should be: CC_VER=13.00.9337.7 LINK_VER=7.00.9337.7 + COMPILER_NAME=Microsoft Platform SDK - November 2001 Edition + COMPILER_VERSION=VS2003 + endif + endif + ifeq ($(CC_MAJORVER), 14) + ifeq ($(ARCH), amd64) + ifeq ($(CC_MICROVER), 30701) + # This should be: CC_VER=14.00.30701 LINK_VER=8.00.30701 + # WARNING: it says 14, but it is such an early build it doesn't + # have all the VS2005 compiler option changes, so treat + # this like a VS2003 compiler. + COMPILER_NAME=Microsoft Platform SDK - February 2003 Edition + COMPILER_VERSION=VS2003 + else + # This should be: CC_VER=14.00.40310.41 LINK_VER=8.00.40310.39 + COMPILER_NAME=Microsoft Platform SDK - April 2005 Edition (3790.1830) + COMPILER_VERSION=VS2005 + endif + endif + endif + # This will cause problems if ALT_COMPILER_PATH is defined to "" + # which is a directive to use the PATH. + REBASE = $(COMPILER_PATH)../REBASE + ifndef COMPILER_PATH + COMPILER_PATH := $(error COMPILER_PATH cannot be empty here) + endif + endif + ifndef COMPILER_VERSION + COMPILER_VERSION := $(error COMPILER_VERSION cannot be empty here) + endif + # Shared library generation flag + SHARED_LIBRARY_FLAG = -LD +endif +