blob: 2ef2b351bad03c4e1fe6e77313ba0a0ff881e8c3 [file] [log] [blame]
# -*- Makefile -*-
#
# $Id$
#
# configuration file for HP aCC on HP-UX
#
########################################################################
#
# 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-2008 Rogue Wave Software, Inc.
#
########################################################################
CXX = aCC
CCVER := $(shell $(CXX) -V 2>&1 \
| sed "s/.* \(A\.[0-9][0-9]*\.[0-9][0-9]\)[^0-9]*.*/\1/")
aCC_MAJOR := $(shell echo $(CCVER) | sed "s/[^.]*\.\([0-9]*\)\..*/\1/")
aCC_MINOR := $(shell echo $(CCVER) | sed "s/[^.]*\.[^.]*\.\([0-9]*\)/\1/")
WARNFLAGS = +w +W392,655,684,818,819,849
ifeq ($(shell [ $(aCC_MAJOR) -eq 3 -a $(aCC_MINOR) -lt 33 ] && echo 1),1)
# disable bogus aCC warnings (aCC prior to 3.32):
# 229 Ambiguous overloaded function call
# 361 Value-returning function might end without executing a return statement
WARNFLAGS += +W229,361
endif
ifeq ($(aCC_MAJOR),06)
# disabled warnings:
# 2193 zero used for undefined preprocessing identifier
# 2236 controlling expression is constant
# 2261 access control not specified (%sq by default)
# 2340 value copied to temporary, reference to temporary used
# 2401 destructor for base class %t is not virtual
# 2487 inline %n cannot be explicitly instantiated
# disable aCC 6.x (EDG front end) warnings emitted with +w:
WARNFLAGS += +W2193,2236,2261,2340,2401,2487
ifeq ($(shell [ $(aCC_MINOR) -gt 10 ] && echo 1),1)
# disabled remarks:
# 4227 padding struct with N bytes to align member
# 4229 64 bit migration: conversion from "long" to "int" may truncate value
# 4231 64 bit migration: conversion between types of different sizes
# 4235 conversion from "T" to "U" may lose significant bits
# 4237 type cast from "T" to "U" may cause sign extension
# 4249 64 bit migration: value could be truncated before cast
# 4255 padding size of struct with N bytes to alignment boundary
# 4272 conversion from "T" to "unsigned T" may lose sign
# 4284 operator= does not return reference to *this
# 4285 operator= does not have a check for the source and destination
# 4286 return non-const handle to non-public data member
# remarks disabled as useless (even according to HP):
# 4296 arithmetic operation on boolean type
# 4297 boolean value is used as array index
WARNFLAGS += +W4227,4229,4231,4235,4237,4249 \
+W4255,4272,4284,4285,4286,4296,4297
ifeq ($(shell [ $(aCC_MINOR) -lt 20 ] && echo 1),1)
# disabled due to STDCXX-694 (hopefully fixed by the time 6.20 comes out)
# 3348 declaration hides constant or variable
WARNFLAGS += +W3348
endif # aCC < 6.20
endif # aCC > 6.10
endif # aCC 6.x
ifeq ($(shell [ $(aCC_MAJOR) -ge 6 -o $(aCC_MINOR) -ge 38 ] && echo 1),1)
# starting with aCC x.38, the +Md option is deprecated in favor of +Maked
DEPENDFLAGS = +Maked -E
else
DEPENDFLAGS = +Md -E
endif
PICFLAGS = +Z
LDSOFLAGS = +Z -b
# the extension of assembly files is .s
AS_EXT = .s
# $(_CPPOPTS), $(_CXXOPTS), and $(_LDOPTS) provided to allow for modification
# of the respective variables w/o underscores on HP-UX where the latter are
# used directly by the compiler and linker, respectively
# use -AA by default, allow -Aa as an option
use_Aa := $(filter -Aa,$(_CXXOPTS))
ifneq ($(use_Aa),-Aa)
CXXFLAGS = -AA "$$"(_CXXOPTS)
CXXPRELINK =
CPPFLAGS = "$$"(_CPPOPTS)
LDFLAGS = -AA +nostl -Wl,+s "$$"(_LDOPTS)
else
# -Aa was specified in _CXXOPTS
CXXFLAGS = -Aa +nostl "$$"(_CXXOPTS)
CXXPRELINK =
CPPFLAGS = -I$(TOPDIR)/include/ansi -I/usr/include "$$"(_CPPOPTS)
# -Wl,+s allows the dynamic loader to consider LD_LIBRARY_PATH (LP64)
# and SHLIB_PATH when loading an executable into memory
LDFLAGS = -Aa +nostl -Wl,+s -Wl,+vnocompatwarnings "$$"(_LDOPTS)
endif
# The flag(s) to use to embed a library search path into generated executables.
RPATH = -Wl,+b
# debug/optimization options
DEBUG_CXXFLAGS = -g +d
DEBUG_CPPFLAGS =
OPTMZ_CXXFLAGS = +O2
OPTMZ_CPPFLAGS =
# shared/static library options
SHARED_CXXFLAGS =
SHARED_CPPFLAGS =
SHARED_LDFLAGS =
SHARED_SUFFIX = .sl
STATIC_CXXFLAGS =
STATIC_CPPFLAGS =
STATIC_LDFLAGS =
# multi/single thread options;
# we use the macros defined by the compiler when the -mt option is used
# DCE threads not added since HP-UX versions after 10.20 use POSIX
MULTI_CPPFLAGS_POSIX = -mt
MULTI_CPPFLAGS_SOLARIS =
MULTI_CPPFLAGS_DCE =
MULTI_LDFLAGS_POSIX = -mt
MULTI_LDFLAGS_SOLARIS =
MULTI_LDFLAGS_DCE =
# POSIX
MULTI_CPPFLAGS = $(MULTI_CPPFLAGS_POSIX)
MULTI_LDFLAGS = $(MULTI_LDFLAGS_POSIX)
SINGL_CPPFLAGS =
SINGL_LDFLAGS =
# wide (64-bit, LP64) flags -- must be set explicitly
CXXFLAGS.wide = +DD64
LDFLAGS.wide = +DD64
LDSOFLAGS.wide = +DD64
ARFLAGS.wide =
# narrow (32-bit, ILP32) flags -- implicit in the default invocation
# CXXFLAGS.narrow = +DD32
# LDFLAGS.narrow = +DD32
# LDSOFLAGS.narrow = +DD32
# ARFLAGS.narrow =