1 # 2 # Copyright 2005-2009 Sun Microsystems, Inc. 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. Sun designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 22 # CA 95054 USA or visit www.sun.com if you need additional information or 23 # have any questions. 24 # 25 26 # 27 # GCC Compiler settings 28 # 29 30 COMPILER_NAME=GCC 31 32 ifeq ($(PLATFORM), windows) 33 34 # Settings specific to Windows, pretty stale, hasn't been used 35 CC = $(COMPILER_PATH)gcc 36 CPP = $(COMPILER_PATH)gcc -E 37 CXX = $(COMPILER_PATH)g++ 38 CCC = $(COMPILER_PATH)g++ 39 LIBEXE = $(COMPILER_PATH)lib 40 LINK = $(COMPILER_PATH)link 41 RC = $(MSDEVTOOLS_PATH)link 42 LINK32 = $(LINK) 43 RSC = $(RC) 44 # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake 45 NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo 46 ifeq ($(ARCH_DATA_MODEL), 32) 47 CC_VER = UNKNOWN 48 CC_TYPE = UNKNOWN 49 else 50 CC_VER = UNKNOWN 51 CC_TYPE = UNKNOWN 52 endif 53 _LINK_VER :=$(shell $(LINK) 2>&1 | $(HEAD) -n 1) 54 LINK_VER :=$(call GetVersion,"$(_LINK_VER)") 55 56 endif 57 58 ifeq ($(PLATFORM), linux) 59 60 # Settings specific to Linux 61 CC = $(COMPILER_PATH)gcc 62 CPP = $(COMPILER_PATH)gcc -E 63 # statically link libstdc++ before C++ ABI is stablized on Linux 64 STATIC_CXX = true 65 ifeq ($(STATIC_CXX),true) 66 # g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++" 67 # We need to use gcc to statically link the C++ runtime. gcc and g++ use 68 # the same subprocess to compile C++ files, so it is OK to build using gcc. 69 CXX = $(COMPILER_PATH)gcc 70 else 71 CXX = $(COMPILER_PATH)g++ 72 endif 73 ifeq ($(ZERO_BUILD), true) 74 # zero 75 REQUIRED_CC_VER = 3.2 76 REQUIRED_GCC_VER = 3.2.* 77 else 78 ifneq ("$(findstring sparc,$(ARCH))", "") 79 # sparc or sparcv9 80 REQUIRED_CC_VER = 4.0 81 else 82 ifeq ($(ARCH_DATA_MODEL), 32) 83 # i586 84 REQUIRED_CC_VER = 3.2 85 else 86 ifeq ($(ARCH), amd64) 87 # amd64 88 REQUIRED_CC_VER = 3.2 89 endif 90 ifeq ($(ARCH), ia64) 91 # ia64 92 REQUIRED_CC_VER = 3.2 93 endif 94 endif 95 endif 96 endif 97 # Option used to create a shared library 98 SHARED_LIBRARY_FLAG = -shared -mimpure-text 99 SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 ) 100 101 endif 102 103 ifeq ($(PLATFORM), solaris) 104 105 # Settings specific to Solaris 106 CC = $(COMPILER_PATH)gcc 107 CPP = $(COMPILER_PATH)gcc -E 108 CXX = $(COMPILER_PATH)g++ 109 REQUIRED_CC_VER = 3.2 110 111 # Option used to create a shared library 112 SHARED_LIBRARY_FLAG = -G 113 114 endif 115 116 # Get gcc version 117 _CC_VER :=$(shell $(CC) -dumpversion 2>&1 ) 118 CC_VER :=$(call GetVersion,"$(_CC_VER)") 119