mirror of
https://github.com/boostorg/build.git
synced 2026-02-20 14:42:14 +00:00
with function template overload resolution but might introduce others where the compiler now is too strict. [SVN r29624]
149 lines
5.2 KiB
Plaintext
149 lines
5.2 KiB
Plaintext
# Copyright 2001 David Abrahams.
|
|
# Copyright 2004, 2005 Markus Schoepflin.
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
#
|
|
# Jam tools information for :
|
|
# Compaq Alpha CXX compiler
|
|
#
|
|
# Notes on this toolset:
|
|
#
|
|
# - Because of very subtle issues with the default ansi mode, strict_ansi mode
|
|
# is used for compilation. One example of things that don't work correctly in
|
|
# the default ansi mode is overload resolution of function templates when
|
|
# mixed with non-template functions.
|
|
#
|
|
# - For template instantiation "-timplicit_local" is used. Previously,
|
|
# "-tlocal" has been tried to avoid the need for a template repository
|
|
# but this doesn't work with manually instantiated templates. "-tweak"
|
|
# has not been used to avoid the stream of warning messages issued by
|
|
# ar or ld when creating a library or linking an application.
|
|
#
|
|
# - Debug symbols are generated with "-g3", as this works both in debug and
|
|
# release mode. When compiling C++ code without optimization, we additionally
|
|
# use "-gall", which generates full symbol table information for all classes,
|
|
# structs, and unions. As this turns off optimization, it can't be used when
|
|
# optimization is needed.
|
|
#
|
|
|
|
# No static linking as far as I can tell.
|
|
# flags cxx LINKFLAGS <runtime-link>static : -bstatic ;
|
|
flags tru64cxx65 CFLAGS <debug-symbols>on : -g3 ;
|
|
flags tru64cxx65 C++FLAGS <optimization>off/<debug-symbols>on : -gall ;
|
|
flags tru64cxx65 LINKFLAGS <debug-symbols>on : -g ;
|
|
flags tru64cxx65 LINKFLAGS <debug-symbols>off : -s ;
|
|
flags tru64cxx65 LINKFLAGS <target-type>$(SHARED_TYPES) : -shared -expect_unresolved 'Py*' -expect_unresolved '_Py*' ;
|
|
flags tru64cxx65 CFLAGS <optimization>off : -O0 ;
|
|
flags tru64cxx65 CFLAGS <optimization>speed/<inlining>on : -O2 ;
|
|
flags tru64cxx65 CFLAGS <optimization>speed : -O2 ;
|
|
|
|
# This (undocumented) macro needs to be defined to get all C function
|
|
# overloads required by the C++ standard.
|
|
flags tru64cxx65 C++FLAGS : -D__CNAME_OVERLOADS ;
|
|
|
|
# Added for threading support
|
|
flags tru64cxx65 CFLAGS <threading>multi : -pthread ;
|
|
flags tru64cxx65 LINKFLAGS <threading>multi : -pthread ;
|
|
|
|
flags tru64cxx65 CFLAGS <optimization>space/<inlining>on : <inlining>size ;
|
|
flags tru64cxx65 CFLAGS <optimization>space : -O1 ;
|
|
flags tru64cxx65 CFLAGS <inlining>off : -inline none ;
|
|
|
|
# The compiler versions tried (up to V6.5-040) hang when compiling Boost code
|
|
# with full inlining enabled. So leave it at the default level for now.
|
|
#
|
|
# flags tru64cxx65 CFLAGS <inlining>full : -inline all ;
|
|
|
|
flags tru64cxx65 CFLAGS <profiling>on : -pg ;
|
|
flags tru64cxx65 LINKFLAGS <profiling>on : -pg ;
|
|
|
|
# Selection of the object model. This flag is needed on both the C++ compiler
|
|
# and linker command line.
|
|
#
|
|
flags tru64cxx65 C++FLAGS <object-model>arm : -model arm ;
|
|
flags tru64cxx65 C++FLAGS <object-model>ansi : -model ansi ;
|
|
flags tru64cxx65 C++FLAGS <object-model>default : -model ansi ;
|
|
#
|
|
flags tru64cxx65 LINKFLAGS <object-model>arm : -model arm ;
|
|
flags tru64cxx65 LINKFLAGS <object-model>ansi : -model ansi ;
|
|
flags tru64cxx65 LINKFLAGS <object-model>default : -model ansi ;
|
|
#
|
|
|
|
flags tru64cxx65 CFLAGS <cflags> ;
|
|
flags tru64cxx65 C++FLAGS <cxxflags> ;
|
|
flags tru64cxx65 DEFINES <define> ;
|
|
flags tru64cxx65 UNDEFS <undef> ;
|
|
flags tru64cxx65 HDRS <include> ;
|
|
flags tru64cxx65 SYSHDRS <sysinclude> ;
|
|
flags tru64cxx65 LINKFLAGS <linkflags> ;
|
|
flags tru64cxx65 ARFLAGS <arflags> ;
|
|
|
|
if ! $(ARFLAGS)
|
|
{
|
|
flags tru64cxx65 ARFLAGS : "" ;
|
|
}
|
|
|
|
flags tru64cxx65 LIBPATH <library-path> ;
|
|
flags tru64cxx65 NEEDLIBS <library-file> ;
|
|
flags tru64cxx65 FINDLIBS <find-library> ;
|
|
|
|
#### Link ####
|
|
|
|
rule Link-action ( target : sources + : target-type )
|
|
{
|
|
tru64cxx65-Link-action $(target) : $(sources) ;
|
|
}
|
|
|
|
# for tru64cxx, we repeat all libraries so that dependencies are always resolved
|
|
actions tru64cxx65-Link-action bind NEEDLIBS
|
|
{
|
|
cxx -noimplicit_include $(LINKFLAGS) -o "$(<)" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -lrt -lm
|
|
}
|
|
|
|
actions tru64cxx65-Link-shared bind NEEDLIBS
|
|
{
|
|
cxx -qrtti -noimplicit_include $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -lm
|
|
}
|
|
|
|
#### Cc #####
|
|
|
|
rule Cc-action
|
|
{
|
|
tru64cxx65-Cc-action $(<) : $(>) ;
|
|
}
|
|
|
|
# Note: Relaxed ANSI mode (-std) is used for compilation because in strict ANSI
|
|
# C89 mode (-std1) the compiler doesn't accept C++ comments in C files. As -std
|
|
# is the default, no special flag is needed.
|
|
|
|
actions tru64cxx65-Cc-action
|
|
{
|
|
cc -msg_display_number -msg-disable 186,450,1115 -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
|
|
}
|
|
|
|
#### C++ ####
|
|
rule C++-action
|
|
{
|
|
tru64cxx65-C++-action $(<) : $(>) ;
|
|
}
|
|
|
|
# Note: DON'T disable warning 1133 -- the compiler is buggy and you
|
|
# really can't ignore this one!
|
|
actions tru64cxx65-C++-action
|
|
{
|
|
cxx -c -std strict_ansi -nopure_cname -noimplicit_include -timplicit_local -ptr "$(<[1]:D)/cxx_repository" -msg_display_number -msg_disable 186,450,1115 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)"
|
|
}
|
|
|
|
#### Archive ####
|
|
|
|
rule Archive-action
|
|
{
|
|
tru64cxx65-Archive-action $(<) : $(>) ;
|
|
}
|
|
|
|
actions updated together piecemeal tru64cxx65-Archive-action
|
|
{
|
|
ar -ru$(ARFLAGS) $(<) $(>)
|
|
}
|