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 | } |
---|