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