| [12] | 1 | # Copyright 2001 David Abrahams. | 
|---|
 | 2 | # Copyright 2004, 2005 Markus Schoepflin. | 
|---|
 | 3 | # Distributed under the Boost Software License, Version 1.0. | 
|---|
 | 4 | # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) | 
|---|
 | 5 |  | 
|---|
 | 6 | # | 
|---|
 | 7 | # Jam tools information for : | 
|---|
 | 8 | # Compaq Alpha CXX compiler | 
|---|
 | 9 | # | 
|---|
 | 10 | # Notes on this toolset: | 
|---|
 | 11 | # | 
|---|
 | 12 | # - Because of very subtle issues with the default ansi mode, strict_ansi mode | 
|---|
 | 13 | #   is used for compilation. One example of things that don't work correctly in | 
|---|
 | 14 | #   the default ansi mode is overload resolution of function templates when | 
|---|
 | 15 | #   mixed with non-template functions. | 
|---|
 | 16 | # | 
|---|
 | 17 | # - For template instantiation "-timplicit_local" is used. Previously, | 
|---|
 | 18 | #   "-tlocal" has been tried to avoid the need for a template repository | 
|---|
 | 19 | #   but this doesn't work with manually instantiated templates. "-tweak" | 
|---|
 | 20 | #   has not been used to avoid the stream of warning messages issued by | 
|---|
 | 21 | #   ar or ld when creating a library or linking an application. | 
|---|
 | 22 | # | 
|---|
 | 23 | # - Debug symbols are generated with "-g3", as this works both in debug and | 
|---|
 | 24 | #   release mode. When compiling C++ code without optimization, we additionally | 
|---|
 | 25 | #   use "-gall", which generates full symbol table information for all classes, | 
|---|
 | 26 | #   structs, and unions. As this turns off optimization, it can't be used when | 
|---|
 | 27 | #   optimization is needed. | 
|---|
 | 28 | # | 
|---|
 | 29 |  | 
|---|
 | 30 | # No static linking as far as I can tell. | 
|---|
 | 31 | # flags cxx LINKFLAGS <runtime-link>static : -bstatic ; | 
|---|
 | 32 | flags tru64cxx65 CFLAGS <debug-symbols>on : -g3 ; | 
|---|
 | 33 | flags tru64cxx65 C++FLAGS <optimization>off/<debug-symbols>on : -gall ; | 
|---|
 | 34 | flags tru64cxx65 LINKFLAGS <debug-symbols>on : -g ; | 
|---|
 | 35 | flags tru64cxx65 LINKFLAGS <debug-symbols>off : -s ; | 
|---|
 | 36 | flags tru64cxx65 LINKFLAGS <target-type>$(SHARED_TYPES) : -shared -expect_unresolved 'Py*' -expect_unresolved '_Py*' ; | 
|---|
 | 37 | flags tru64cxx65 CFLAGS <optimization>off : -O0 ; | 
|---|
 | 38 | flags tru64cxx65 CFLAGS <optimization>speed/<inlining>on : -O2 ; | 
|---|
 | 39 | flags tru64cxx65 CFLAGS <optimization>speed : -O2 ; | 
|---|
 | 40 |  | 
|---|
 | 41 | # This (undocumented) macro needs to be defined to get all C function | 
|---|
 | 42 | # overloads required by the C++ standard. | 
|---|
 | 43 | flags tru64cxx65 C++FLAGS : -D__CNAME_OVERLOADS ; | 
|---|
 | 44 |  | 
|---|
 | 45 | # Added for threading support | 
|---|
 | 46 | flags tru64cxx65 CFLAGS <threading>multi : -pthread ; | 
|---|
 | 47 | flags tru64cxx65 LINKFLAGS <threading>multi : -pthread ; | 
|---|
 | 48 |  | 
|---|
 | 49 | flags tru64cxx65 CFLAGS <optimization>space/<inlining>on : <inlining>size ; | 
|---|
 | 50 | flags tru64cxx65 CFLAGS <optimization>space : -O1 ; | 
|---|
 | 51 | flags tru64cxx65 CFLAGS <inlining>off : -inline none ; | 
|---|
 | 52 |  | 
|---|
 | 53 | # The compiler versions tried (up to V6.5-040) hang when compiling Boost code | 
|---|
 | 54 | # with full inlining enabled. So leave it at the default level for now. | 
|---|
 | 55 | # | 
|---|
 | 56 | # flags tru64cxx65 CFLAGS <inlining>full : -inline all ; | 
|---|
 | 57 |  | 
|---|
 | 58 | flags tru64cxx65 CFLAGS <profiling>on : -pg ; | 
|---|
 | 59 | flags tru64cxx65 LINKFLAGS <profiling>on : -pg ; | 
|---|
 | 60 |  | 
|---|
 | 61 | # Selection of the object model. This flag is needed on both the C++ compiler | 
|---|
 | 62 | # and linker command line. | 
|---|
 | 63 | # | 
|---|
 | 64 | flags tru64cxx65 C++FLAGS <object-model>arm : -model arm ; | 
|---|
 | 65 | flags tru64cxx65 C++FLAGS <object-model>ansi : -model ansi ; | 
|---|
 | 66 | flags tru64cxx65 C++FLAGS <object-model>default : -model ansi ; | 
|---|
 | 67 | # | 
|---|
 | 68 | flags tru64cxx65 LINKFLAGS <object-model>arm : -model arm ; | 
|---|
 | 69 | flags tru64cxx65 LINKFLAGS <object-model>ansi : -model ansi ; | 
|---|
 | 70 | flags tru64cxx65 LINKFLAGS <object-model>default : -model ansi ; | 
|---|
 | 71 | # | 
|---|
 | 72 |  | 
|---|
 | 73 | flags tru64cxx65 CFLAGS <cflags> ; | 
|---|
 | 74 | flags tru64cxx65 C++FLAGS <cxxflags> ; | 
|---|
 | 75 | flags tru64cxx65 DEFINES <define> ; | 
|---|
 | 76 | flags tru64cxx65 UNDEFS <undef> ; | 
|---|
 | 77 | flags tru64cxx65 HDRS <include> ; | 
|---|
 | 78 | flags tru64cxx65 SYSHDRS <sysinclude> ; | 
|---|
 | 79 | flags tru64cxx65 LINKFLAGS <linkflags> ; | 
|---|
 | 80 | flags tru64cxx65 ARFLAGS <arflags> ; | 
|---|
 | 81 |  | 
|---|
 | 82 | if ! $(ARFLAGS) | 
|---|
 | 83 | { | 
|---|
 | 84 |     flags tru64cxx65 ARFLAGS : "" ; | 
|---|
 | 85 | } | 
|---|
 | 86 |  | 
|---|
 | 87 | flags tru64cxx65 LIBPATH <library-path> ; | 
|---|
 | 88 | flags tru64cxx65 NEEDLIBS <library-file> ; | 
|---|
 | 89 | flags tru64cxx65 FINDLIBS <find-library> ; | 
|---|
 | 90 |  | 
|---|
 | 91 | #### Link #### | 
|---|
 | 92 |  | 
|---|
 | 93 | rule Link-action ( target : sources + : target-type ) | 
|---|
 | 94 | { | 
|---|
 | 95 |    tru64cxx65-Link-action $(target) : $(sources) ; | 
|---|
 | 96 | } | 
|---|
 | 97 |  | 
|---|
 | 98 | # for tru64cxx, we repeat all libraries so that dependencies are always resolved | 
|---|
 | 99 | actions tru64cxx65-Link-action bind NEEDLIBS | 
|---|
 | 100 | { | 
|---|
 | 101 |    cxx -noimplicit_include $(LINKFLAGS) -o "$(<)" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -lrt -lm | 
|---|
 | 102 | } | 
|---|
 | 103 |  | 
|---|
 | 104 | actions tru64cxx65-Link-shared bind NEEDLIBS | 
|---|
 | 105 | { | 
|---|
 | 106 |     cxx -qrtti  -noimplicit_include $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) -lm | 
|---|
 | 107 | } | 
|---|
 | 108 |  | 
|---|
 | 109 | #### Cc ##### | 
|---|
 | 110 |  | 
|---|
 | 111 | rule Cc-action | 
|---|
 | 112 | { | 
|---|
 | 113 |    tru64cxx65-Cc-action $(<) : $(>) ; | 
|---|
 | 114 | } | 
|---|
 | 115 |  | 
|---|
 | 116 | # Note: Relaxed ANSI mode (-std) is used for compilation because in strict ANSI | 
|---|
 | 117 | # C89 mode (-std1) the compiler doesn't accept C++ comments in C files. As -std | 
|---|
 | 118 | # is the default, no special flag is needed. | 
|---|
 | 119 |  | 
|---|
 | 120 | actions tru64cxx65-Cc-action | 
|---|
 | 121 | { | 
|---|
 | 122 |    cc -msg_display_number -msg-disable 186,450,1115 -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -I"$(SYSHDRS)" -o "$(<)" "$(>)" | 
|---|
 | 123 | } | 
|---|
 | 124 |  | 
|---|
 | 125 | #### C++ #### | 
|---|
 | 126 | rule C++-action | 
|---|
 | 127 | { | 
|---|
 | 128 |    tru64cxx65-C++-action $(<) : $(>) ; | 
|---|
 | 129 | } | 
|---|
 | 130 |  | 
|---|
 | 131 | # Note: DON'T disable warning 1133 -- the compiler is buggy and you | 
|---|
 | 132 | # really can't ignore this one! | 
|---|
 | 133 | actions tru64cxx65-C++-action | 
|---|
 | 134 | { | 
|---|
 | 135 |    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 "$(<)" "$(>)" | 
|---|
 | 136 | } | 
|---|
 | 137 |  | 
|---|
 | 138 | #### Archive #### | 
|---|
 | 139 |  | 
|---|
 | 140 | rule Archive-action | 
|---|
 | 141 | { | 
|---|
 | 142 |   tru64cxx65-Archive-action $(<) : $(>) ; | 
|---|
 | 143 | } | 
|---|
 | 144 |  | 
|---|
 | 145 | actions updated together piecemeal tru64cxx65-Archive-action | 
|---|
 | 146 | { | 
|---|
 | 147 |   ar -ru$(ARFLAGS) $(<) $(>) | 
|---|
 | 148 | } | 
|---|