blob: 46e252d17dc8bcf1babe6df6a893ecbb3310805a [file] [log] [blame]
#**************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
#**************************************************************
COMPVERMK:=$(SOLARINCDIR)/comp_ver.mk
.INCLUDE .IGNORE : $(COMPVERMK)
.IF "$(COMNAME)"=="" || "$(COMPATH:s!\!/!)"!="$(COMPATH_STORED)"
.IF "$(L10N_framework)"==""
COMNAME:=
.IF "$(COM)"=="GCC"
CFLAGSVERSION=-dumpversion
CFLAGSVERSION_CMD=-dumpversion
CFLAGSNUMVERSION_CMD=-dumpversion $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk
#CFLAGSNUMVERSION_CMD=-dumpversion | 2>&1 $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk
.ENDIF
.IF "$(COM)"=="MSC"
CFLAGSVERSION=
CFLAGSVERSION_CMD= $(PIPEERROR) $(AWK) -f $(SOLARENV)/bin/getcompver.awk
CFLAGSNUMVERSION_CMD= $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk
.ENDIF
.IF "$(COM)"=="C55" || "$(COM)"=="C54" || "$(COM)"=="C52" || "$(COM)"=="C40" || "$(COM)"=="sunpro"
CFLAGSVERSION= -V
CFLAGSVERSION_CMD= -V $(PIPEERROR) $(AWK) -f $(SOLARENV)/bin/getcompver.awk
CFLAGSNUMVERSION_CMD= -V $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk
.ENDIF
.IF "$(COM)"=="C730"
CFLAGSVERSION= -version
CFLAGSVERSION_CMD= -version |& cut -d" " -f4-
CFLAGSNUMVERSION_CMD= -version |& cut -d" " -f4-
.ENDIF
# that's the version known by the specific
# compiler
CCVER:=$(shell @-$(CXX) $(CFLAGSVERSION_CMD))
# and a computed integer for comparing
# each point seperated token blown up to 4 digits
CCNUMVER:=$(shell @-$(CXX) $(CFLAGSNUMVERSION_CMD))
.IF "$(COM)"=="MSC"
.IF "$(CCNUMVER)">="001200000000"
COMID=MSC
COMNAME=msci
.ENDIF
.ENDIF
.IF "$(COM)"=="GCC"
SHORTSTDCPP3:=
SHORTSTDC3:="1"
.IF "$(CCNUMVER)">="000200910000"
COMID=GCC
COMNAME=gcc2
.ENDIF
.IF "$(CCNUMVER)">="000300000001"
COMID=gcc3
COMNAME=gcc3
.IF "$(CCNUMVER)">="000300000001"
SHORTSTDCPP3="3"
.ENDIF
.IF "$(CCNUMVER)">="000300010000"
SHORTSTDCPP3="4"
.ENDIF
.IF "$(CCNUMVER)">="000300020000"
SHORTSTDCPP3="5"
.ENDIF
.IF "$(CCNUMVER)">="000300040000"
.IF "$(OS)$(CPU)" == "LINUX6" || "$(OS)$(CPU)" == "LINUXH"
#for gcc >= 3.4.0 on m68k-linux this is libgcc_s.so.2.
#for gcc >= 3.4.0 < 4.2.0 on hppa-linux this is libgcc_s.so.2.
SHORTSTDC3:="2"
.ENDIF
SHORTSTDCPP3="6"
.ENDIF
.IF "$(CCNUMVER)">="000400020000"
.IF "$(OS)$(CPU)" == "LINUXH"
#for gcc >= 4.2.0 on hppa-linux this is libgcc_s.so.4.
SHORTSTDC3:="4"
.ENDIF
SHORTSTDCPP3="6"
.ENDIF
.ENDIF
.ENDIF
.IF "$(COM)"=="C55" || "$(COM)" == "C54" || "$(COM)"=="C52" || "$(COM)"=="C40" || "$(COM)"=="sunpro"
.IF "$(CCNUMVER)">="00050002"
COMID=C52
COMNAME=sunpro5
.ENDIF
.ENDIF
.IF "$(COM)"=="C730"
COMID=C730
COMNAME=MipsPro
.ENDIF
.IF "$(COM)"=="CLANG"
COMID=s5abi
COMNAME=s5abi
.ENDIF
.IF "$(COMNAME)"==""
# "EXCEPTIONSFILES" get compiled before this, but shouldn't
# appear in the first n modules.
compiler_version_error:
@echo ++++++++++++++++++++++++++++++++++++
@echo ERROR!
@echo Could not detect compiler version!
@echo Please extend tg_compv.mk in
@echo "solenv/inc".
@echo ++++++++++++++++++++++++++++++++++++
@echo "$(CXX) $(CFLAGSVERSION)" returns
@$(CXX) $(CFLAGSVERSION)
@echo ++++++++++++++++++++++++++++++++++++
force_dmake_to_error
.ENDIF # "$(COMNAME)"==""
CDEFS+=-DCPPU_ENV=$(COMNAME)
.ENDIF # "$(L10N_framework)"==""
.ENDIF # "$(COMNAME)"==""