make/common/shared/Compiler-gcc.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

duke@1 1 #
ohair@158 2 # Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
duke@1 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@1 4 #
duke@1 5 # This code is free software; you can redistribute it and/or modify it
duke@1 6 # under the terms of the GNU General Public License version 2 only, as
ohair@158 7 # published by the Free Software Foundation. Oracle designates this
duke@1 8 # particular file as subject to the "Classpath" exception as provided
ohair@158 9 # by Oracle in the LICENSE file that accompanied this code.
duke@1 10 #
duke@1 11 # This code is distributed in the hope that it will be useful, but WITHOUT
duke@1 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@1 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@1 14 # version 2 for more details (a copy is included in the LICENSE file that
duke@1 15 # accompanied this code).
duke@1 16 #
duke@1 17 # You should have received a copy of the GNU General Public License version
duke@1 18 # 2 along with this work; if not, write to the Free Software Foundation,
duke@1 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@1 20 #
ohair@158 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@158 22 # or visit www.oracle.com if you need additional information or have any
ohair@158 23 # questions.
duke@1 24 #
duke@1 25
duke@1 26 #
duke@1 27 # GCC Compiler settings
duke@1 28 #
duke@1 29
duke@1 30 COMPILER_NAME=GCC
duke@1 31
duke@1 32 ifeq ($(PLATFORM), windows)
duke@1 33
duke@1 34 # Settings specific to Windows, pretty stale, hasn't been used
duke@1 35 CC = $(COMPILER_PATH)gcc
duke@1 36 CPP = $(COMPILER_PATH)gcc -E
duke@1 37 CXX = $(COMPILER_PATH)g++
duke@1 38 CCC = $(COMPILER_PATH)g++
duke@1 39 LIBEXE = $(COMPILER_PATH)lib
duke@1 40 LINK = $(COMPILER_PATH)link
duke@1 41 RC = $(MSDEVTOOLS_PATH)link
duke@1 42 LINK32 = $(LINK)
duke@1 43 RSC = $(RC)
duke@1 44 # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
duke@1 45 NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
duke@1 46 ifeq ($(ARCH_DATA_MODEL), 32)
duke@1 47 CC_VER = UNKNOWN
duke@1 48 CC_TYPE = UNKNOWN
duke@1 49 else
duke@1 50 CC_VER = UNKNOWN
duke@1 51 CC_TYPE = UNKNOWN
duke@1 52 endif
duke@1 53 _LINK_VER :=$(shell $(LINK) 2>&1 | $(HEAD) -n 1)
duke@1 54 LINK_VER :=$(call GetVersion,"$(_LINK_VER)")
duke@1 55
duke@1 56 endif
duke@1 57
duke@1 58 ifeq ($(PLATFORM), linux)
duke@1 59
duke@1 60 # Settings specific to Linux
duke@1 61 CC = $(COMPILER_PATH)gcc
duke@1 62 CPP = $(COMPILER_PATH)gcc -E
duke@1 63 # statically link libstdc++ before C++ ABI is stablized on Linux
duke@1 64 STATIC_CXX = true
duke@1 65 ifeq ($(STATIC_CXX),true)
duke@1 66 # g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
duke@1 67 # We need to use gcc to statically link the C++ runtime. gcc and g++ use
duke@1 68 # the same subprocess to compile C++ files, so it is OK to build using gcc.
duke@1 69 CXX = $(COMPILER_PATH)gcc
duke@1 70 else
duke@1 71 CXX = $(COMPILER_PATH)g++
duke@1 72 endif
gbenson@123 73 ifeq ($(ZERO_BUILD), true)
gbenson@123 74 # zero
gbenson@123 75 REQUIRED_CC_VER = 3.2
gbenson@123 76 REQUIRED_GCC_VER = 3.2.*
gbenson@123 77 else
duke@1 78 ifneq ("$(findstring sparc,$(ARCH))", "")
duke@1 79 # sparc or sparcv9
duke@1 80 REQUIRED_CC_VER = 4.0
duke@1 81 else
duke@1 82 ifeq ($(ARCH_DATA_MODEL), 32)
duke@1 83 # i586
duke@1 84 REQUIRED_CC_VER = 3.2
duke@1 85 else
duke@1 86 ifeq ($(ARCH), amd64)
duke@1 87 # amd64
duke@1 88 REQUIRED_CC_VER = 3.2
duke@1 89 endif
duke@1 90 ifeq ($(ARCH), ia64)
duke@1 91 # ia64
duke@1 92 REQUIRED_CC_VER = 3.2
duke@1 93 endif
duke@1 94 endif
duke@1 95 endif
gbenson@123 96 endif
duke@1 97 # Option used to create a shared library
duke@1 98 SHARED_LIBRARY_FLAG = -shared -mimpure-text
duke@1 99 SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
duke@1 100
duke@1 101 endif
duke@1 102
duke@1 103 ifeq ($(PLATFORM), solaris)
duke@1 104
duke@1 105 # Settings specific to Solaris
duke@1 106 CC = $(COMPILER_PATH)gcc
duke@1 107 CPP = $(COMPILER_PATH)gcc -E
duke@1 108 CXX = $(COMPILER_PATH)g++
duke@1 109 REQUIRED_CC_VER = 3.2
duke@1 110
duke@1 111 # Option used to create a shared library
duke@1 112 SHARED_LIBRARY_FLAG = -G
duke@1 113
duke@1 114 endif
duke@1 115
duke@1 116 # Get gcc version
duke@1 117 _CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
duke@1 118 CC_VER :=$(call GetVersion,"$(_CC_VER)")
duke@1 119

mercurial