duke@1: # ohair@158: # Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. duke@1: # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. duke@1: # duke@1: # This code is free software; you can redistribute it and/or modify it duke@1: # under the terms of the GNU General Public License version 2 only, as ohair@158: # published by the Free Software Foundation. Oracle designates this duke@1: # particular file as subject to the "Classpath" exception as provided ohair@158: # by Oracle in the LICENSE file that accompanied this code. duke@1: # duke@1: # This code is distributed in the hope that it will be useful, but WITHOUT duke@1: # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or duke@1: # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License duke@1: # version 2 for more details (a copy is included in the LICENSE file that duke@1: # accompanied this code). duke@1: # duke@1: # You should have received a copy of the GNU General Public License version duke@1: # 2 along with this work; if not, write to the Free Software Foundation, duke@1: # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. duke@1: # ohair@158: # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ohair@158: # or visit www.oracle.com if you need additional information or have any ohair@158: # questions. duke@1: # duke@1: duke@1: # duke@1: # GCC Compiler settings duke@1: # duke@1: duke@1: COMPILER_NAME=GCC duke@1: duke@1: ifeq ($(PLATFORM), windows) duke@1: duke@1: # Settings specific to Windows, pretty stale, hasn't been used duke@1: CC = $(COMPILER_PATH)gcc duke@1: CPP = $(COMPILER_PATH)gcc -E duke@1: CXX = $(COMPILER_PATH)g++ duke@1: CCC = $(COMPILER_PATH)g++ duke@1: LIBEXE = $(COMPILER_PATH)lib duke@1: LINK = $(COMPILER_PATH)link duke@1: RC = $(MSDEVTOOLS_PATH)link duke@1: LINK32 = $(LINK) duke@1: RSC = $(RC) duke@1: # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake duke@1: NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo duke@1: ifeq ($(ARCH_DATA_MODEL), 32) duke@1: CC_VER = UNKNOWN duke@1: CC_TYPE = UNKNOWN duke@1: else duke@1: CC_VER = UNKNOWN duke@1: CC_TYPE = UNKNOWN duke@1: endif duke@1: _LINK_VER :=$(shell $(LINK) 2>&1 | $(HEAD) -n 1) duke@1: LINK_VER :=$(call GetVersion,"$(_LINK_VER)") duke@1: duke@1: endif duke@1: duke@1: ifeq ($(PLATFORM), linux) duke@1: duke@1: # Settings specific to Linux duke@1: CC = $(COMPILER_PATH)gcc duke@1: CPP = $(COMPILER_PATH)gcc -E duke@1: # statically link libstdc++ before C++ ABI is stablized on Linux duke@1: STATIC_CXX = true duke@1: ifeq ($(STATIC_CXX),true) duke@1: # g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++" duke@1: # We need to use gcc to statically link the C++ runtime. gcc and g++ use duke@1: # the same subprocess to compile C++ files, so it is OK to build using gcc. duke@1: CXX = $(COMPILER_PATH)gcc duke@1: else duke@1: CXX = $(COMPILER_PATH)g++ duke@1: endif gbenson@123: ifeq ($(ZERO_BUILD), true) gbenson@123: # zero gbenson@123: REQUIRED_CC_VER = 3.2 gbenson@123: REQUIRED_GCC_VER = 3.2.* gbenson@123: else duke@1: ifneq ("$(findstring sparc,$(ARCH))", "") duke@1: # sparc or sparcv9 duke@1: REQUIRED_CC_VER = 4.0 duke@1: else duke@1: ifeq ($(ARCH_DATA_MODEL), 32) duke@1: # i586 duke@1: REQUIRED_CC_VER = 3.2 duke@1: else duke@1: ifeq ($(ARCH), amd64) duke@1: # amd64 duke@1: REQUIRED_CC_VER = 3.2 duke@1: endif duke@1: ifeq ($(ARCH), ia64) duke@1: # ia64 duke@1: REQUIRED_CC_VER = 3.2 duke@1: endif duke@1: endif duke@1: endif gbenson@123: endif duke@1: # Option used to create a shared library duke@1: SHARED_LIBRARY_FLAG = -shared -mimpure-text duke@1: SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 ) duke@1: duke@1: endif duke@1: duke@1: ifeq ($(PLATFORM), solaris) duke@1: duke@1: # Settings specific to Solaris duke@1: CC = $(COMPILER_PATH)gcc duke@1: CPP = $(COMPILER_PATH)gcc -E duke@1: CXX = $(COMPILER_PATH)g++ duke@1: REQUIRED_CC_VER = 3.2 duke@1: duke@1: # Option used to create a shared library duke@1: SHARED_LIBRARY_FLAG = -G duke@1: duke@1: endif duke@1: duke@1: # Get gcc version duke@1: _CC_VER :=$(shell $(CC) -dumpversion 2>&1 ) duke@1: CC_VER :=$(call GetVersion,"$(_CC_VER)") duke@1: