168 lines
5.2 KiB
Makefile
168 lines
5.2 KiB
Makefile
# -*- Makefile -*-
|
|
#
|
|
# $Id: sunpro.config 580483 2007-09-28 20:55:52Z sebor $
|
|
#
|
|
# configuration file for SunPro CC on SunOS
|
|
#
|
|
########################################################################
|
|
#
|
|
# 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.
|
|
#
|
|
# Copyright 1999-2007 Rogue Wave Software, Inc.
|
|
#
|
|
########################################################################
|
|
|
|
CXX = CC
|
|
|
|
# extract the "C++ m.n" substring from version string (whcih changes
|
|
# from one release of the compiler to another)
|
|
CCVER := $(shell $(CXX) -V 2>&1 | head -n1 \
|
|
| sed 's/.*C++ *\([^ ]*\).*/\1/')
|
|
CCMAJOR := $(shell echo $(CCVER) | cut -f1 -d'.')
|
|
CCMINOR := $(shell echo $(CCVER) | cut -f2 -d'.')
|
|
|
|
ifeq ($(shell expr $(CCMAJOR) = 5 \& $(CCMINOR) = 9),1)
|
|
# in Sun C++ 5.9 -xM can only be used with C and C++ files
|
|
# and it produces the wrong results with .{S,s} files
|
|
DEPENDFLAGS.cpp = -xM
|
|
|
|
# deliberately undefined:
|
|
# DEPENDFLAGS.S =
|
|
# DEPENDFLAGS =
|
|
else
|
|
DEPENDFLAGS = -xM
|
|
endif
|
|
|
|
WARNFLAGS = +w
|
|
|
|
ifeq ($(shell expr \( $(CCMAJOR) = 5 \& $(CCMINOR) \> 6 \) \
|
|
\| $(CCMAJOR) \> 5),1)
|
|
# for Sun C++ 5.7 and beyond, enable diagnostic "tags" in compiler output
|
|
# and use -erroff to silence Warning: std::stringstream::rdbuf hides the
|
|
# function std::ios::rdbuf(std::streambuf*) (see STDCXX-344)
|
|
WARNFLAGS += -errtags -erroff=hidef
|
|
endif
|
|
|
|
PICFLAGS = -KPIC
|
|
LDSOFLAGS =
|
|
CXXFLAGS = -library=%none
|
|
CXXPRELINK =
|
|
CPPFLAGS =
|
|
LDFLAGS = -library=%none
|
|
LDSOFLAGS = -G
|
|
|
|
# use CC to invoke the compiler (needed to pick up template
|
|
# instantiations from SunWS_cache)
|
|
AR = CC
|
|
ARFLAGS = -xar -o
|
|
|
|
# The flag(s) to use to embed a library search path into generated executables.
|
|
RPATH = -R
|
|
|
|
# debug/optimization options
|
|
DEBUG_CXXFLAGS = -g
|
|
DEBUG_CPPFLAGS =
|
|
|
|
OPTMZ_CXXFLAGS = -O
|
|
OPTMZ_CPPFLAGS =
|
|
|
|
# shared/static library options
|
|
SHARED_CXXFLAGS =
|
|
SHARED_CPPFLAGS =
|
|
SHARED_LDFLAGS =
|
|
|
|
STATIC_CXXFLAGS =
|
|
STATIC_CPPFLAGS =
|
|
STATIC_LDFLAGS =
|
|
|
|
# multi/single thread options; -mt defines _REENTRANT
|
|
MULTI_CPPFLAGS_POSIX = -mt
|
|
MULTI_CPPFLAGS_SOLARIS = -mt -D_RWSTD_SOLARIS_THREADS
|
|
MULTI_CPPFLAGS_DCE =
|
|
|
|
# avoid linking with the redundant libpthread and libthread
|
|
# on Solaris 10 and beyond to prevent error 543
|
|
ifeq ($(OSNAME),SunOS)
|
|
OSVER = $(shell uname -r)
|
|
OSMAJOR = $(shell echo $(OSVER) | sed "s/\([0-9][0-9]*\)\..*/\1/")
|
|
OSMINOR = $(shell echo $(OSVER) | sed "s/[^.]*\.\([0-9][0-9]*\)/\1/")
|
|
|
|
ifneq ($(shell expr $(OSMAJOR) \> 5 \| $(OSMINOR) = 10),1)
|
|
LIBPTHREAD = -lpthread
|
|
LIBTHREAD = -lthread
|
|
endif
|
|
else
|
|
LIBPTHREAD = -lpthread
|
|
LIBTHREAD = -lthread
|
|
endif
|
|
|
|
MULTI_LDFLAGS_POSIX = -mt $(LIBPTHREAD)
|
|
MULTI_LDFLAGS_SOLARIS = -mt $(LIBTHREAD)
|
|
MULTI_LDFLAGS_DCE =
|
|
|
|
# POSIX
|
|
MULTI_CPPFLAGS = $(MULTI_CPPFLAGS_POSIX)
|
|
MULTI_LDFLAGS = $(MULTI_LDFLAGS_POSIX)
|
|
|
|
SINGL_CPPFLAGS =
|
|
SINGL_LDFLAGS =
|
|
|
|
ifeq ($(shell expr $(CCMAJOR) \>= 5 \& $(CCMINOR) \>= 9),1)
|
|
|
|
# starting with Sun C++ 5.9, the compiler prefers the generic
|
|
# -m32 and -m64 options to the architecture specific -xarch
|
|
# options some of which have been deprecated
|
|
wide_flags = -m64
|
|
narrow_flags = -m32
|
|
else
|
|
# (try to) determine the architecture via the (non-standard)
|
|
# -p option recognized on (at least) Linux and Solaris
|
|
arch := $(shell uname -p 2>/dev/null)
|
|
|
|
ifeq ($(arch),sparc)
|
|
# wide (64-bit) flags -- must be set explicitly
|
|
# narrow (32-bit) flags are implicit on SPARC
|
|
wide_flags = -xarch=v9
|
|
narrow_flags = -xarch=v8
|
|
else
|
|
# wide (64-bit) flags -- must be set explicitly
|
|
# narrow (32-bit) flags are implicit on AMD64
|
|
ifeq ($(OSNAME),SunOS)
|
|
# Solaris uname -p prints i386 on AMD64, use the optisa
|
|
# command to deterrmine "the best" architecture
|
|
arch := $(shell optisa amd64)
|
|
endif
|
|
ifeq ($(arch),amd64)
|
|
wide_flags = -xarch=amd64
|
|
narrow_flags = -xarch=386 # the default (same as generic)
|
|
else
|
|
wide_flags = -xarch=generic64
|
|
narrow_flags = -xarch=generic # the default (same as 386)
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
CXXFLAGS.wide = $(wide_flags)
|
|
LDFLAGS.wide = $(wide_flags)
|
|
LDSOFLAGS.wide = $(wide_flags)
|
|
ARFLAGS.wide =
|
|
|
|
CXXFLAGS.narrow = $(narrow_flags)
|
|
LDFLAGS.narrow = $(narrow_flags)
|
|
LDSOFLAGS.narrow = $(narrow_flags)
|
|
ARFLAGS.narrow =
|