| @@ -1,892 +1,892 @@ | | | @@ -1,892 +1,892 @@ |
1 | # $NetBSD: gcc.mk,v 1.157 2015/04/02 23:42:15 jperkin Exp $ | | 1 | # $NetBSD: gcc.mk,v 1.158 2015/04/02 23:50:25 jperkin Exp $ |
2 | # | | 2 | # |
3 | # This is the compiler definition for the GNU Compiler Collection. | | 3 | # This is the compiler definition for the GNU Compiler Collection. |
4 | # | | 4 | # |
5 | # User-settable variables: | | 5 | # User-settable variables: |
6 | # | | 6 | # |
7 | # GCCBASE | | 7 | # GCCBASE |
8 | # If using a native GCC and the compiler is not in $PATH then | | 8 | # If using a native GCC and the compiler is not in $PATH then |
9 | # this should be set to the base installation directory. | | 9 | # this should be set to the base installation directory. |
10 | # | | 10 | # |
11 | # USE_NATIVE_GCC | | 11 | # USE_NATIVE_GCC |
12 | # When set to "yes", the native gcc is used, no matter which | | 12 | # When set to "yes", the native gcc is used, no matter which |
13 | # compiler version a package requires. | | 13 | # compiler version a package requires. |
14 | # | | 14 | # |
15 | # USE_PKGSRC_GCC | | 15 | # USE_PKGSRC_GCC |
16 | # When set to "yes", use an appropriate version of GCC from | | 16 | # When set to "yes", use an appropriate version of GCC from |
17 | # pkgsrc based on GCC_REQD instead of the native compiler. | | 17 | # pkgsrc based on GCC_REQD instead of the native compiler. |
18 | # | | 18 | # |
19 | # USE_PKGSRC_GCC_RUNTIME | | 19 | # USE_PKGSRC_GCC_RUNTIME |
20 | # When set to "yes", the runtime gcc libraries (libgcc, libstdc++ | | 20 | # When set to "yes", the runtime gcc libraries (libgcc, libstdc++ |
21 | # etc) will be used from pkgsrc rather than the native compiler. | | 21 | # etc) will be used from pkgsrc rather than the native compiler. |
22 | # | | 22 | # |
23 | # Package-settable variables: | | 23 | # Package-settable variables: |
24 | # | | 24 | # |
25 | # GCC_REQD | | 25 | # GCC_REQD |
26 | # The minimum version of the GNU Compiler Collection that is | | 26 | # The minimum version of the GNU Compiler Collection that is |
27 | # required to build this package. Setting this variable doesn't | | 27 | # required to build this package. Setting this variable doesn't |
28 | # change the compiler that is used for building packages. See | | 28 | # change the compiler that is used for building packages. See |
29 | # ONLY_FOR_COMPILER for that purpose. This is a list of version | | 29 | # ONLY_FOR_COMPILER for that purpose. This is a list of version |
30 | # numbers, of which the maximum version is the definitive one. | | 30 | # numbers, of which the maximum version is the definitive one. |
31 | # | | 31 | # |
32 | # This variable can also be set by the user when USE_PKGSRC_GCC | | 32 | # This variable can also be set by the user when USE_PKGSRC_GCC |
33 | # is in effect to ensure that a specific compiler is used for | | 33 | # is in effect to ensure that a specific compiler is used for |
34 | # packages which do not specify a higher version. | | 34 | # packages which do not specify a higher version. |
35 | # | | 35 | # |
36 | # USE_GCC_RUNTIME | | 36 | # USE_GCC_RUNTIME |
37 | # Packages which build shared libraries but do not use libtool to | | 37 | # Packages which build shared libraries but do not use libtool to |
38 | # do so should define this variable. It is used to determine whether | | 38 | # do so should define this variable. It is used to determine whether |
39 | # the gcc runtime should be depended upon when a user has enabled | | 39 | # the gcc runtime should be depended upon when a user has enabled |
40 | # USE_PKGSRC_GCC_RUNTIME. | | 40 | # USE_PKGSRC_GCC_RUNTIME. |
41 | # | | 41 | # |
42 | # System-defined variables: | | 42 | # System-defined variables: |
43 | # | | 43 | # |
44 | # CC_VERSION | | 44 | # CC_VERSION |
45 | # A string of the form "gcc-4.3.2" | | 45 | # A string of the form "gcc-4.3.2" |
46 | # | | 46 | # |
47 | # CC_VERSION_STRING | | 47 | # CC_VERSION_STRING |
48 | # The same(?) as CC_VERSION. FIXME: What's the difference between | | 48 | # The same(?) as CC_VERSION. FIXME: What's the difference between |
49 | # the two? | | 49 | # the two? |
50 | # | | 50 | # |
51 | # Keywords: gcc | | 51 | # Keywords: gcc |
52 | # | | 52 | # |
53 | | | 53 | |
54 | .if !defined(COMPILER_GCC_MK) | | 54 | .if !defined(COMPILER_GCC_MK) |
55 | COMPILER_GCC_MK= defined | | 55 | COMPILER_GCC_MK= defined |
56 | | | 56 | |
57 | _VARGROUPS+= gcc | | 57 | _VARGROUPS+= gcc |
58 | _USER_VARS.gcc= USE_NATIVE_GCC USE_PKGSRC_GCC | | 58 | _USER_VARS.gcc= USE_NATIVE_GCC USE_PKGSRC_GCC |
59 | _PKG_VARS.gcc= GCC_REQD | | 59 | _PKG_VARS.gcc= GCC_REQD |
60 | _SYS_VARS.gcc= CC_VERSION CC_VERSION_STRING LANGUAGES.gcc | | 60 | _SYS_VARS.gcc= CC_VERSION CC_VERSION_STRING LANGUAGES.gcc |
61 | _DEF_VARS.gcc= \ | | 61 | _DEF_VARS.gcc= \ |
62 | CCPATH CPPPATH CXXPATH \ | | 62 | CCPATH CPPPATH CXXPATH \ |
63 | F77PATH FCPATH \ | | 63 | F77PATH FCPATH \ |
64 | ADAPATH GMKPATH GLKPATH GDBPATH CHPPATH GLSPATH GNTPATH PRPPATH \ | | 64 | ADAPATH GMKPATH GLKPATH GDBPATH CHPPATH GLSPATH GNTPATH PRPPATH \ |
65 | IMAKEOPTS \ | | 65 | IMAKEOPTS \ |
66 | LDFLAGS \ | | 66 | LDFLAGS \ |
67 | PKG_CC PKG_CPP PKG_CXX PKG_FC \ | | 67 | PKG_CC PKG_CPP PKG_CXX PKG_FC \ |
68 | PKG_ADA PKG_GMK PKG_GLK PKG_GDB PKG_CHP PKG_GLK PKG_GNT PKG_PRP \ | | 68 | PKG_ADA PKG_GMK PKG_GLK PKG_GDB PKG_CHP PKG_GLK PKG_GNT PKG_PRP \ |
69 | _CC _COMPILER_RPATH_FLAG _COMPILER_STRIP_VARS \ | | 69 | _CC _COMPILER_RPATH_FLAG _COMPILER_STRIP_VARS \ |
70 | _GCCBINDIR _GCC_ARCHDIR _GCC_BIN_PREFIX _GCC_CC \ | | 70 | _GCCBINDIR _GCC_ARCHDIR _GCC_BIN_PREFIX _GCC_CC \ |
71 | _GCC_CPP _GCC_CXX _GCC_DEPENDENCY _GCC_DEPENDS \ | | 71 | _GCC_CPP _GCC_CXX _GCC_DEPENDENCY _GCC_DEPENDS \ |
72 | _GCC_FC _GCC_LDFLAGS _GCC_LIBDIRS _GCC_PKG \ | | 72 | _GCC_FC _GCC_LDFLAGS _GCC_LIBDIRS _GCC_PKG \ |
73 | _GCC_PKGBASE _GCC_PKGSRCDIR _GCC_PKG_SATISFIES_DEP \ | | 73 | _GCC_PKGBASE _GCC_PKGSRCDIR _GCC_PKG_SATISFIES_DEP \ |
74 | _GCC_PREFIX _GCC_REQD _GCC_STRICTEST_REQD _GCC_SUBPREFIX \ | | 74 | _GCC_PREFIX _GCC_REQD _GCC_STRICTEST_REQD _GCC_SUBPREFIX \ |
75 | _GCC_TEST_DEPENDS _GCC_NEEDS_A_FORTRAN _GCC_VARS _GCC_VERSION \ | | 75 | _GCC_TEST_DEPENDS _GCC_NEEDS_A_FORTRAN _GCC_VARS _GCC_VERSION \ |
76 | _GCC_VERSION_STRING \ | | 76 | _GCC_VERSION_STRING \ |
77 | _GCC_ADA _GCC_GMK _GCC_GLK _GCC_GDB _GCC_CHP _GCC_GLS _GCC_GNT _GCC_PRP \ | | 77 | _GCC_ADA _GCC_GMK _GCC_GLK _GCC_GDB _GCC_CHP _GCC_GLS _GCC_GNT _GCC_PRP \ |
78 | _IGNORE_GCC _IGNORE_GCC3CXX _IGNORE_GCC3F77 _IGNORE_GCC3OBJC \ | | 78 | _IGNORE_GCC _IGNORE_GCC3CXX _IGNORE_GCC3F77 _IGNORE_GCC3OBJC \ |
79 | _IS_BUILTIN_GCC \ | | 79 | _IS_BUILTIN_GCC \ |
80 | _LANGUAGES.gcc \ | | 80 | _LANGUAGES.gcc \ |
81 | _LINKER_RPATH_FLAG \ | | 81 | _LINKER_RPATH_FLAG \ |
82 | _NEED_GCC2 _NEED_GCC3 _NEED_GCC34 _NEED_GCC44 _NEED_NEWER_GCC \ | | 82 | _NEED_GCC2 _NEED_GCC3 _NEED_GCC34 _NEED_GCC44 _NEED_NEWER_GCC \ |
83 | _PKGSRC_GCC_VERSION \ | | 83 | _PKGSRC_GCC_VERSION \ |
84 | _USE_GCC_SHLIB _USE_PKGSRC_GCC \ | | 84 | _USE_GCC_SHLIB _USE_PKGSRC_GCC \ |
85 | _WRAP_EXTRA_ARGS.CC | | 85 | _WRAP_EXTRA_ARGS.CC |
86 | | | 86 | |
87 | .include "../../mk/bsd.prefs.mk" | | 87 | .include "../../mk/bsd.prefs.mk" |
88 | | | 88 | |
89 | USE_NATIVE_GCC?= no | | 89 | USE_NATIVE_GCC?= no |
90 | USE_PKGSRC_GCC?= no | | 90 | USE_PKGSRC_GCC?= no |
91 | USE_PKGSRC_GCC_RUNTIME?=no | | 91 | USE_PKGSRC_GCC_RUNTIME?=no |
92 | | | 92 | |
93 | GCC_REQD+= 2.8.0 | | 93 | GCC_REQD+= 2.8.0 |
94 | | | 94 | |
95 | # gcc2 doesn't support c99 and amd64 | | 95 | # gcc2 doesn't support c99 and amd64 |
96 | .if !empty(USE_LANGUAGES:Mc99) || ${MACHINE_ARCH} == "x86_64" | | 96 | .if !empty(USE_LANGUAGES:Mc99) || ${MACHINE_ARCH} == "x86_64" |
97 | GCC_REQD+= 3.0 | | 97 | GCC_REQD+= 3.0 |
98 | .endif | | 98 | .endif |
99 | | | 99 | |
100 | # Only one compiler defined here supports Ada: lang/gcc-aux | | 100 | # Only one compiler defined here supports Ada: lang/gcc-aux |
101 | # If the Ada language is requested, force lang/gcc-aux to be selected | | 101 | # If the Ada language is requested, force lang/gcc-aux to be selected |
102 | .if !empty(USE_LANGUAGES:Mada) | | 102 | .if !empty(USE_LANGUAGES:Mada) |
103 | GCC_REQD+= 20120614 | | 103 | GCC_REQD+= 20120614 |
104 | .endif | | 104 | .endif |
105 | | | 105 | |
106 | # _GCC_DIST_VERSION is the highest version of GCC installed by the pkgsrc | | 106 | # _GCC_DIST_VERSION is the highest version of GCC installed by the pkgsrc |
107 | # without the PKGREVISIONs. | | 107 | # without the PKGREVISIONs. |
108 | _GCC_DIST_NAME:= gcc49 | | 108 | _GCC_DIST_NAME:= gcc49 |
109 | .include "../../lang/${_GCC_DIST_NAME}/version.mk" | | 109 | .include "../../lang/${_GCC_DIST_NAME}/version.mk" |
110 | _GCC_DIST_VERSION:= ${${_GCC_DIST_NAME:tu}_DIST_VERSION} | | 110 | _GCC_DIST_VERSION:= ${${_GCC_DIST_NAME:tu}_DIST_VERSION} |
111 | | | 111 | |
112 | # _GCC2_PATTERNS matches N s.t. N <= 2.95.3. | | 112 | # _GCC2_PATTERNS matches N s.t. N <= 2.95.3. |
113 | _GCC2_PATTERNS= [0-1].* 2.[0-9] 2.[0-9].* 2.[1-8][0-9] 2.[1-8][0-9].* \ | | 113 | _GCC2_PATTERNS= [0-1].* 2.[0-9] 2.[0-9].* 2.[1-8][0-9] 2.[1-8][0-9].* \ |
114 | 2.9[0-4] 2.9[0-4].* 2.95 2.95.[0-3] | | 114 | 2.9[0-4] 2.9[0-4].* 2.95 2.95.[0-3] |
115 | | | 115 | |
116 | # _GCC3_PATTERNS matches N s.t. 2.95.3 < N < 3.4. | | 116 | # _GCC3_PATTERNS matches N s.t. 2.95.3 < N < 3.4. |
117 | _GCC3_PATTERNS= 2.95.[4-9]* 2.95.[1-9][0-9]* 2.9[6-9] 2.9[6-9].* \ | | 117 | _GCC3_PATTERNS= 2.95.[4-9]* 2.95.[1-9][0-9]* 2.9[6-9] 2.9[6-9].* \ |
118 | 2.[1-9][0-9][0-9]* 3.[0-3] 3.[0-3].* | | 118 | 2.[1-9][0-9][0-9]* 3.[0-3] 3.[0-3].* |
119 | | | 119 | |
120 | # _GCC34_PATTERNS matches N s.t. 3.4 <= N < 4. | | 120 | # _GCC34_PATTERNS matches N s.t. 3.4 <= N < 4. |
121 | _GCC34_PATTERNS= 3.[4-9] 3.[4-9].* 3.[1-9][0-9]* | | 121 | _GCC34_PATTERNS= 3.[4-9] 3.[4-9].* 3.[1-9][0-9]* |
122 | | | 122 | |
123 | # _GCC44_PATTERNS matches N s.t. 4.4 <= N < 4.5. | | 123 | # _GCC44_PATTERNS matches N s.t. 4.4 <= N < 4.5. |
124 | _GCC44_PATTERNS= 4.4 4.4.* | | 124 | _GCC44_PATTERNS= 4.4 4.4.* |
125 | | | 125 | |
126 | # _GCC45_PATTERNS matches N s.t. 4.5 <= N < 4.6. | | 126 | # _GCC45_PATTERNS matches N s.t. 4.5 <= N < 4.6. |
127 | _GCC45_PATTERNS= 4.5 4.5.* | | 127 | _GCC45_PATTERNS= 4.5 4.5.* |
128 | | | 128 | |
129 | # _GCC46_PATTERNS matches N s.t. 4.6 <= N < 4.7. | | 129 | # _GCC46_PATTERNS matches N s.t. 4.6 <= N < 4.7. |
130 | _GCC46_PATTERNS= 4.6 4.6.* | | 130 | _GCC46_PATTERNS= 4.6 4.6.* |
131 | | | 131 | |
132 | # _GCC47_PATTERNS matches N s.t. 4.7 <= N < 4.8. | | 132 | # _GCC47_PATTERNS matches N s.t. 4.7 <= N < 4.8. |
133 | _GCC47_PATTERNS= 4.7 4.7.* | | 133 | _GCC47_PATTERNS= 4.7 4.7.* |
134 | | | 134 | |
135 | # _GCC48_PATTERNS matches N s.t. 4.8 <= N < 4.9. | | 135 | # _GCC48_PATTERNS matches N s.t. 4.8 <= N < 4.9. |
136 | _GCC48_PATTERNS= 4.8 4.8.* | | 136 | _GCC48_PATTERNS= 4.8 4.8.* |
137 | | | 137 | |
138 | # _GCC49_PATTERNS matches N s.t. 4.9 <= N < 4.10. | | 138 | # _GCC49_PATTERNS matches N s.t. 4.9 <= N < 4.10. |
139 | _GCC49_PATTERNS= 4.9 4.9.* | | 139 | _GCC49_PATTERNS= 4.9 4.9.* |
140 | | | 140 | |
141 | # _GCC_AUX_PATTERNS matches 8-digit date YYYYMMDD* | | 141 | # _GCC_AUX_PATTERNS matches 8-digit date YYYYMMDD* |
142 | _GCC_AUX_PATTERNS= 20[1-2][0-9][0-1][0-9][0-3][0-9]* | | 142 | _GCC_AUX_PATTERNS= 20[1-2][0-9][0-1][0-9][0-3][0-9]* |
143 | | | 143 | |
144 | # _CC is the full path to the compiler named by ${CC} if it can be found. | | 144 | # _CC is the full path to the compiler named by ${CC} if it can be found. |
145 | .if !defined(_CC) | | 145 | .if !defined(_CC) |
146 | _CC:= ${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//} | | 146 | _CC:= ${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//} |
147 | . if !empty(GCCBASE) && exists(${GCCBASE}/bin) | | 147 | . if !empty(GCCBASE) && exists(${GCCBASE}/bin) |
148 | _EXTRA_CC_DIRS= ${GCCBASE}/bin | | 148 | _EXTRA_CC_DIRS= ${GCCBASE}/bin |
149 | . endif | | 149 | . endif |
150 | . for _dir_ in ${_EXTRA_CC_DIRS} ${PATH:C/\:/ /g} | | 150 | . for _dir_ in ${_EXTRA_CC_DIRS} ${PATH:C/\:/ /g} |
151 | . if empty(_CC:M/*) | | 151 | . if empty(_CC:M/*) |
152 | . if exists(${_dir_}/${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}) | | 152 | . if exists(${_dir_}/${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}) |
153 | _CC:= ${_dir_}/${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//} | | 153 | _CC:= ${_dir_}/${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//} |
154 | . endif | | 154 | . endif |
155 | . endif | | 155 | . endif |
156 | . endfor | | 156 | . endfor |
157 | MAKEFLAGS+= _CC=${_CC:Q} | | 157 | MAKEFLAGS+= _CC=${_CC:Q} |
158 | .endif | | 158 | .endif |
159 | | | 159 | |
160 | .if !defined(_GCC_VERSION) | | 160 | .if !defined(_GCC_VERSION) |
161 | # | | 161 | # |
162 | # FIXME: Ideally we'd use PKGSRC_SETENV here, but not enough of the tools | | 162 | # FIXME: Ideally we'd use PKGSRC_SETENV here, but not enough of the tools |
163 | # infrastructure is loaded for SETENV to be defined when mk/compiler.mk is | | 163 | # infrastructure is loaded for SETENV to be defined when mk/compiler.mk is |
164 | # included first. LC_ALL is required here for similar reasons, as ALL_ENV | | 164 | # included first. LC_ALL is required here for similar reasons, as ALL_ENV |
165 | # is not defined at this stage. | | 165 | # is not defined at this stage. |
166 | # | | 166 | # |
167 | _GCC_VERSION_STRING!= \ | | 167 | _GCC_VERSION_STRING!= \ |
168 | ( env LC_ALL=C ${_CC} -v 2>&1 | ${GREP} 'gcc version') 2>/dev/null || ${ECHO} 0 | | 168 | ( env LC_ALL=C ${_CC} -v 2>&1 | ${GREP} 'gcc version') 2>/dev/null || ${ECHO} 0 |
169 | . if !empty(_GCC_VERSION_STRING:Megcs*) | | 169 | . if !empty(_GCC_VERSION_STRING:Megcs*) |
170 | _GCC_VERSION= 2.8.1 # egcs is considered to be gcc-2.8.1. | | 170 | _GCC_VERSION= 2.8.1 # egcs is considered to be gcc-2.8.1. |
171 | . elif !empty(DRAGONFLY_CCVER) && ${OPSYS} == "DragonFly" | | 171 | . elif !empty(DRAGONFLY_CCVER) && ${OPSYS} == "DragonFly" |
172 | _GCC_VERSION!= env CCVER=${DRAGONFLY_CCVER} ${_CC} -dumpversion | | 172 | _GCC_VERSION!= env CCVER=${DRAGONFLY_CCVER} ${_CC} -dumpversion |
173 | . elif !empty(_GCC_VERSION_STRING:Mgcc*) | | 173 | . elif !empty(_GCC_VERSION_STRING:Mgcc*) |
174 | _GCC_VERSION!= ${_CC} -dumpversion | | 174 | _GCC_VERSION!= ${_CC} -dumpversion |
175 | . else | | 175 | . else |
176 | _GCC_VERSION= 0 | | 176 | _GCC_VERSION= 0 |
177 | . endif | | 177 | . endif |
178 | .endif | | 178 | .endif |
179 | _GCC_PKG= gcc-${_GCC_VERSION:C/-.*$//} | | 179 | _GCC_PKG= gcc-${_GCC_VERSION:C/-.*$//} |
180 | | | 180 | |
181 | .if !empty(_CC:M${LOCALBASE}/*) | | 181 | .if !empty(_CC:M${LOCALBASE}/*) |
182 | _IS_BUILTIN_GCC= NO | | 182 | _IS_BUILTIN_GCC= NO |
183 | GCC_REQD+= ${_GCC_VERSION} | | 183 | GCC_REQD+= ${_GCC_VERSION} |
184 | .else | | 184 | .else |
185 | . if !empty(_CC:M/*) | | 185 | . if !empty(_CC:M/*) |
186 | # | | 186 | # |
187 | # GCC in older versions of Darwin report "Apple Computer ... based on gcc | | 187 | # GCC in older versions of Darwin report "Apple Computer ... based on gcc |
188 | # version ...", so we can't just grep for "^gcc". | | 188 | # version ...", so we can't just grep for "^gcc". |
189 | # | | 189 | # |
190 | . if ${_GCC_VERSION} != "0" | | 190 | . if ${_GCC_VERSION} != "0" |
191 | _IS_BUILTIN_GCC= YES | | 191 | _IS_BUILTIN_GCC= YES |
192 | . else | | 192 | . else |
193 | _IS_BUILTIN_GCC= NO | | 193 | _IS_BUILTIN_GCC= NO |
194 | . endif | | 194 | . endif |
195 | . else | | 195 | . else |
196 | _IS_BUILTIN_GCC= NO | | 196 | _IS_BUILTIN_GCC= NO |
197 | . endif | | 197 | . endif |
198 | .endif | | 198 | .endif |
199 | | | 199 | |
200 | # Distill the GCC_REQD list into a single _GCC_REQD value that is the | | 200 | # Distill the GCC_REQD list into a single _GCC_REQD value that is the |
201 | # highest version of GCC required. | | 201 | # highest version of GCC required. |
202 | # | | 202 | # |
203 | _GCC_STRICTEST_REQD?= none | | 203 | _GCC_STRICTEST_REQD?= none |
204 | .for _version_ in ${GCC_REQD} | | 204 | .for _version_ in ${GCC_REQD} |
205 | . for _pkg_ in gcc-${_version_} | | 205 | . for _pkg_ in gcc-${_version_} |
206 | . if ${_GCC_STRICTEST_REQD} == "none" | | 206 | . if ${_GCC_STRICTEST_REQD} == "none" |
207 | _GCC_PKG_SATISFIES_DEP= YES | | 207 | _GCC_PKG_SATISFIES_DEP= YES |
208 | . for _vers_ in ${GCC_REQD} | | 208 | . for _vers_ in ${GCC_REQD} |
209 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) | | 209 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) |
210 | _GCC_PKG_SATISFIES_DEP!= \ | | 210 | _GCC_PKG_SATISFIES_DEP!= \ |
211 | if ${PKG_ADMIN} pmatch 'gcc>=${_vers_}' ${_pkg_} 2>/dev/null; then \ | | 211 | if ${PKG_ADMIN} pmatch 'gcc>=${_vers_}' ${_pkg_} 2>/dev/null; then \ |
212 | ${ECHO} "YES"; \ | | 212 | ${ECHO} "YES"; \ |
213 | else \ | | 213 | else \ |
214 | ${ECHO} "NO"; \ | | 214 | ${ECHO} "NO"; \ |
215 | fi | | 215 | fi |
216 | . endif | | 216 | . endif |
217 | . endfor | | 217 | . endfor |
218 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) | | 218 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) |
219 | _GCC_STRICTEST_REQD= ${_version_} | | 219 | _GCC_STRICTEST_REQD= ${_version_} |
220 | . endif | | 220 | . endif |
221 | . endif | | 221 | . endif |
222 | . endfor | | 222 | . endfor |
223 | .endfor | | 223 | .endfor |
224 | _GCC_REQD= ${_GCC_STRICTEST_REQD} | | 224 | _GCC_REQD= ${_GCC_STRICTEST_REQD} |
225 | | | 225 | |
226 | # Determine whether we require GCC-2.x or GCC-3.x by examining _GCC_REQD. | | 226 | # Determine whether we require GCC-2.x or GCC-3.x by examining _GCC_REQD. |
227 | _NEED_GCC2?= no | | 227 | _NEED_GCC2?= no |
228 | .for _pattern_ in ${_GCC2_PATTERNS} | | 228 | .for _pattern_ in ${_GCC2_PATTERNS} |
229 | . if !empty(_GCC_REQD:M${_pattern_}) | | 229 | . if !empty(_GCC_REQD:M${_pattern_}) |
230 | _NEED_GCC2= yes | | 230 | _NEED_GCC2= yes |
231 | . endif | | 231 | . endif |
232 | .endfor | | 232 | .endfor |
233 | _NEED_GCC3?= no | | 233 | _NEED_GCC3?= no |
234 | .for _pattern_ in ${_GCC3_PATTERNS} | | 234 | .for _pattern_ in ${_GCC3_PATTERNS} |
235 | . if !empty(_GCC_REQD:M${_pattern_}) | | 235 | . if !empty(_GCC_REQD:M${_pattern_}) |
236 | _NEED_GCC3= yes | | 236 | _NEED_GCC3= yes |
237 | . endif | | 237 | . endif |
238 | .endfor | | 238 | .endfor |
239 | _NEED_GCC34?= no | | 239 | _NEED_GCC34?= no |
240 | .for _pattern_ in ${_GCC34_PATTERNS} | | 240 | .for _pattern_ in ${_GCC34_PATTERNS} |
241 | . if !empty(_GCC_REQD:M${_pattern_}) | | 241 | . if !empty(_GCC_REQD:M${_pattern_}) |
242 | _NEED_GCC34= yes | | 242 | _NEED_GCC34= yes |
243 | . endif | | 243 | . endif |
244 | .endfor | | 244 | .endfor |
245 | _NEED_GCC44?= no | | 245 | _NEED_GCC44?= no |
246 | .for _pattern_ in ${_GCC44_PATTERNS} | | 246 | .for _pattern_ in ${_GCC44_PATTERNS} |
247 | . if !empty(_GCC_REQD:M${_pattern_}) | | 247 | . if !empty(_GCC_REQD:M${_pattern_}) |
248 | _NEED_GCC44= yes | | 248 | _NEED_GCC44= yes |
249 | . endif | | 249 | . endif |
250 | .endfor | | 250 | .endfor |
251 | _NEED_GCC45?= no | | 251 | _NEED_GCC45?= no |
252 | .for _pattern_ in ${_GCC45_PATTERNS} | | 252 | .for _pattern_ in ${_GCC45_PATTERNS} |
253 | . if !empty(_GCC_REQD:M${_pattern_}) | | 253 | . if !empty(_GCC_REQD:M${_pattern_}) |
254 | _NEED_GCC45= yes | | 254 | _NEED_GCC45= yes |
255 | . endif | | 255 | . endif |
256 | .endfor | | 256 | .endfor |
257 | _NEED_GCC46?= no | | 257 | _NEED_GCC46?= no |
258 | .for _pattern_ in ${_GCC46_PATTERNS} | | 258 | .for _pattern_ in ${_GCC46_PATTERNS} |
259 | . if !empty(_GCC_REQD:M${_pattern_}) | | 259 | . if !empty(_GCC_REQD:M${_pattern_}) |
260 | _NEED_GCC46= yes | | 260 | _NEED_GCC46= yes |
261 | . endif | | 261 | . endif |
262 | .endfor | | 262 | .endfor |
263 | _NEED_GCC47?= no | | 263 | _NEED_GCC47?= no |
264 | .for _pattern_ in ${_GCC47_PATTERNS} | | 264 | .for _pattern_ in ${_GCC47_PATTERNS} |
265 | . if !empty(_GCC_REQD:M${_pattern_}) | | 265 | . if !empty(_GCC_REQD:M${_pattern_}) |
266 | _NEED_GCC47= yes | | 266 | _NEED_GCC47= yes |
267 | . endif | | 267 | . endif |
268 | .endfor | | 268 | .endfor |
269 | _NEED_GCC48?= no | | 269 | _NEED_GCC48?= no |
270 | .for _pattern_ in ${_GCC48_PATTERNS} | | 270 | .for _pattern_ in ${_GCC48_PATTERNS} |
271 | . if !empty(_GCC_REQD:M${_pattern_}) | | 271 | . if !empty(_GCC_REQD:M${_pattern_}) |
272 | _NEED_GCC48= yes | | 272 | _NEED_GCC48= yes |
273 | . endif | | 273 | . endif |
274 | .endfor | | 274 | .endfor |
275 | _NEED_GCC49?= no | | 275 | _NEED_GCC49?= no |
276 | .for _pattern_ in ${_GCC49_PATTERNS} | | 276 | .for _pattern_ in ${_GCC49_PATTERNS} |
277 | . if !empty(_GCC_REQD:M${_pattern_}) | | 277 | . if !empty(_GCC_REQD:M${_pattern_}) |
278 | _NEED_GCC49= yes | | 278 | _NEED_GCC49= yes |
279 | . endif | | 279 | . endif |
280 | .endfor | | 280 | .endfor |
281 | _NEED_GCC_AUX?= no | | 281 | _NEED_GCC_AUX?= no |
282 | .for _pattern_ in ${_GCC_AUX_PATTERNS} | | 282 | .for _pattern_ in ${_GCC_AUX_PATTERNS} |
283 | . if !empty(_GCC_REQD:M${_pattern_}) | | 283 | . if !empty(_GCC_REQD:M${_pattern_}) |
284 | _NEED_GCC_AUX= yes | | 284 | _NEED_GCC_AUX= yes |
285 | _NEED_NEWER_GCC=NO | | 285 | _NEED_NEWER_GCC=NO |
286 | . endif | | 286 | . endif |
287 | .endfor | | 287 | .endfor |
288 | .if !empty(_NEED_GCC2:M[nN][oO]) && !empty(_NEED_GCC3:M[nN][oO]) && \ | | 288 | .if !empty(_NEED_GCC2:M[nN][oO]) && !empty(_NEED_GCC3:M[nN][oO]) && \ |
289 | !empty(_NEED_GCC34:M[nN][oO]) && !empty(_NEED_GCC44:M[nN][oO]) && \ | | 289 | !empty(_NEED_GCC34:M[nN][oO]) && !empty(_NEED_GCC44:M[nN][oO]) && \ |
290 | !empty(_NEED_GCC45:M[nN][oO]) && !empty(_NEED_GCC46:M[nN][oO]) && \ | | 290 | !empty(_NEED_GCC45:M[nN][oO]) && !empty(_NEED_GCC46:M[nN][oO]) && \ |
291 | !empty(_NEED_GCC47:M[nN][oO]) && !empty(_NEED_GCC48:M[nN][oO]) && \ | | 291 | !empty(_NEED_GCC47:M[nN][oO]) && !empty(_NEED_GCC48:M[nN][oO]) && \ |
292 | !empty(_NEED_GCC49:M[nN][oO]) && !empty(_NEED_GCC_AUX:M[nN][oO]) | | 292 | !empty(_NEED_GCC49:M[nN][oO]) && !empty(_NEED_GCC_AUX:M[nN][oO]) |
293 | _NEED_GCC49= yes | | 293 | _NEED_GCC49= yes |
294 | .endif | | 294 | .endif |
295 | | | 295 | |
296 | # Assume by default that GCC will only provide a C compiler. | | 296 | # Assume by default that GCC will only provide a C compiler. |
297 | LANGUAGES.gcc?= c | | 297 | LANGUAGES.gcc?= c |
298 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) | | 298 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) |
299 | LANGUAGES.gcc= c c++ fortran77 objc | | 299 | LANGUAGES.gcc= c c++ fortran77 objc |
300 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) | | 300 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) |
301 | LANGUAGES.gcc= c c++ fortran77 java objc | | 301 | LANGUAGES.gcc= c c++ fortran77 java objc |
302 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) | | 302 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) |
303 | LANGUAGES.gcc= c c++ fortran77 objc | | 303 | LANGUAGES.gcc= c c++ fortran77 objc |
304 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) | | 304 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) |
305 | LANGUAGES.gcc= c c++ fortran fortran77 java objc | | 305 | LANGUAGES.gcc= c c++ fortran fortran77 java objc |
306 | .elif !empty(_NEED_GCC45:M[yY][eE][sS]) | | 306 | .elif !empty(_NEED_GCC45:M[yY][eE][sS]) |
307 | LANGUAGES.gcc= c c++ fortran fortran77 java objc | | 307 | LANGUAGES.gcc= c c++ fortran fortran77 java objc |
308 | .elif !empty(_NEED_GCC46:M[yY][eE][sS]) | | 308 | .elif !empty(_NEED_GCC46:M[yY][eE][sS]) |
309 | LANGUAGES.gcc= c c++ fortran fortran77 java objc | | 309 | LANGUAGES.gcc= c c++ fortran fortran77 java objc |
310 | .elif !empty(_NEED_GCC47:M[yY][eE][sS]) | | 310 | .elif !empty(_NEED_GCC47:M[yY][eE][sS]) |
311 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 311 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
312 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) | | 312 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) |
313 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 313 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
314 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) | | 314 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) |
315 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 315 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
316 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) | | 316 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) |
317 | LANGUAGES.gcc= c c++ fortran fortran77 objc ada | | 317 | LANGUAGES.gcc= c c++ fortran fortran77 objc ada |
318 | .endif | | 318 | .endif |
319 | _LANGUAGES.gcc= # empty | | 319 | _LANGUAGES.gcc= # empty |
320 | .for _lang_ in ${USE_LANGUAGES} | | 320 | .for _lang_ in ${USE_LANGUAGES} |
321 | _LANGUAGES.gcc+= ${LANGUAGES.gcc:M${_lang_}} | | 321 | _LANGUAGES.gcc+= ${LANGUAGES.gcc:M${_lang_}} |
322 | .endfor | | 322 | .endfor |
323 | | | 323 | |
324 | .if !empty(USE_LANGUAGES:Mc99) | | 324 | .if !empty(USE_LANGUAGES:Mc99) |
325 | _WRAP_EXTRA_ARGS.CC+= -std=gnu99 | | 325 | _WRAP_EXTRA_ARGS.CC+= -std=gnu99 |
326 | CWRAPPERS_APPEND.cc+= -std=gnu99 | | 326 | CWRAPPERS_APPEND.cc+= -std=gnu99 |
327 | .endif | | 327 | .endif |
328 | | | 328 | |
329 | # GCC has this annoying behaviour where it advocates in a multi-line | | 329 | # GCC has this annoying behaviour where it advocates in a multi-line |
330 | # banner the use of "#include" over "#import" when including headers. | | 330 | # banner the use of "#include" over "#import" when including headers. |
331 | # This generates a huge number of warnings when building practically all | | 331 | # This generates a huge number of warnings when building practically all |
332 | # Objective-C code where it is convention to use "#import". Suppress | | 332 | # Objective-C code where it is convention to use "#import". Suppress |
333 | # the warning if we're building Objective-C code using GCC. | | 333 | # the warning if we're building Objective-C code using GCC. |
334 | # | | 334 | # |
335 | .if !empty(_LANGUAGES.gcc:Mobjc) | | 335 | .if !empty(_LANGUAGES.gcc:Mobjc) |
336 | CFLAGS+= -Wno-import | | 336 | CFLAGS+= -Wno-import |
337 | .endif | | 337 | .endif |
338 | | | 338 | |
339 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) | | 339 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) |
340 | # | | 340 | # |
341 | # We require gcc-2.x in the lang/gcc directory. | | 341 | # We require gcc-2.x in the lang/gcc directory. |
342 | # | | 342 | # |
343 | _GCC_PKGBASE= gcc | | 343 | _GCC_PKGBASE= gcc |
344 | . if !empty(PKGPATH:Mlang/gcc) | | 344 | . if !empty(PKGPATH:Mlang/gcc) |
345 | _IGNORE_GCC= yes | | 345 | _IGNORE_GCC= yes |
346 | MAKEFLAGS+= _IGNORE_GCC=yes | | 346 | MAKEFLAGS+= _IGNORE_GCC=yes |
347 | . endif | | 347 | . endif |
348 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 348 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
349 | _GCC_PKGSRCDIR= ../../lang/gcc | | 349 | _GCC_PKGSRCDIR= ../../lang/gcc |
350 | _GCC_DEPENDENCY= gcc>=${_GCC_REQD}:../../lang/gcc | | 350 | _GCC_DEPENDENCY= gcc>=${_GCC_REQD}:../../lang/gcc |
351 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 351 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
352 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 352 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
353 | !empty(_LANGUAGES.gcc:Mobjc) | | 353 | !empty(_LANGUAGES.gcc:Mobjc) |
354 | _USE_GCC_SHLIB?= yes | | 354 | _USE_GCC_SHLIB?= yes |
355 | . endif | | 355 | . endif |
356 | . endif | | 356 | . endif |
357 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) | | 357 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) |
358 | # | | 358 | # |
359 | # We require gcc-3.x in the lang/gcc3-* directories. | | 359 | # We require gcc-3.x in the lang/gcc3-* directories. |
360 | # | | 360 | # |
361 | _GCC_PKGBASE= gcc3-c | | 361 | _GCC_PKGBASE= gcc3-c |
362 | . if !empty(PKGPATH:Mlang/gcc3-c) | | 362 | . if !empty(PKGPATH:Mlang/gcc3-c) |
363 | _IGNORE_GCC= yes | | 363 | _IGNORE_GCC= yes |
364 | MAKEFLAGS+= _IGNORE_GCC=yes | | 364 | MAKEFLAGS+= _IGNORE_GCC=yes |
365 | . endif | | 365 | . endif |
366 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc:Mc) | | 366 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc:Mc) |
367 | _GCC_PKGSRCDIR= ../../lang/gcc3-c | | 367 | _GCC_PKGSRCDIR= ../../lang/gcc3-c |
368 | _GCC_DEPENDENCY= gcc3-c>=${_GCC_REQD}:../../lang/gcc3-c | | 368 | _GCC_DEPENDENCY= gcc3-c>=${_GCC_REQD}:../../lang/gcc3-c |
369 | . endif | | 369 | . endif |
370 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) | | 370 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) |
371 | # | | 371 | # |
372 | # We require gcc-3.4.x in the lang/gcc34 directory. | | 372 | # We require gcc-3.4.x in the lang/gcc34 directory. |
373 | # | | 373 | # |
374 | _GCC_PKGBASE= gcc34 | | 374 | _GCC_PKGBASE= gcc34 |
375 | . if !empty(PKGPATH:Mlang/gcc34) | | 375 | . if !empty(PKGPATH:Mlang/gcc34) |
376 | _IGNORE_GCC= yes | | 376 | _IGNORE_GCC= yes |
377 | MAKEFLAGS+= _IGNORE_GCC=yes | | 377 | MAKEFLAGS+= _IGNORE_GCC=yes |
378 | . endif | | 378 | . endif |
379 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 379 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
380 | _GCC_PKGSRCDIR= ../../lang/gcc34 | | 380 | _GCC_PKGSRCDIR= ../../lang/gcc34 |
381 | _GCC_DEPENDENCY= gcc34>=${_GCC_REQD}:../../lang/gcc34 | | 381 | _GCC_DEPENDENCY= gcc34>=${_GCC_REQD}:../../lang/gcc34 |
382 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 382 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
383 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 383 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
384 | !empty(_LANGUAGES.gcc:Mobjc) | | 384 | !empty(_LANGUAGES.gcc:Mobjc) |
385 | _USE_GCC_SHLIB?= yes | | 385 | _USE_GCC_SHLIB?= yes |
386 | . endif | | 386 | . endif |
387 | . endif | | 387 | . endif |
388 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) | | 388 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) |
389 | # | | 389 | # |
390 | # We require gcc-4.4.x in the lang/gcc44 directory. | | 390 | # We require gcc-4.4.x in the lang/gcc44 directory. |
391 | # | | 391 | # |
392 | _GCC_PKGBASE= gcc44 | | 392 | _GCC_PKGBASE= gcc44 |
393 | . if !empty(PKGPATH:Mlang/gcc44) | | 393 | . if !empty(PKGPATH:Mlang/gcc44) |
394 | _IGNORE_GCC= yes | | 394 | _IGNORE_GCC= yes |
395 | MAKEFLAGS+= _IGNORE_GCC=yes | | 395 | MAKEFLAGS+= _IGNORE_GCC=yes |
396 | . endif | | 396 | . endif |
397 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 397 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
398 | _GCC_PKGSRCDIR= ../../lang/gcc44 | | 398 | _GCC_PKGSRCDIR= ../../lang/gcc44 |
399 | _GCC_DEPENDENCY= gcc44>=${_GCC_REQD}:../../lang/gcc44 | | 399 | _GCC_DEPENDENCY= gcc44>=${_GCC_REQD}:../../lang/gcc44 |
400 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 400 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
401 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 401 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
402 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 402 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
403 | !empty(_LANGUAGES.gcc:Mobjc) | | 403 | !empty(_LANGUAGES.gcc:Mobjc) |
404 | _USE_GCC_SHLIB?= yes | | 404 | _USE_GCC_SHLIB?= yes |
405 | . endif | | 405 | . endif |
406 | . endif | | 406 | . endif |
407 | .elif !empty(_NEED_GCC45:M[yY][eE][sS]) | | 407 | .elif !empty(_NEED_GCC45:M[yY][eE][sS]) |
408 | # | | 408 | # |
409 | # We require gcc-4.5.x in the lang/gcc45 directory. | | 409 | # We require gcc-4.5.x in the lang/gcc45 directory. |
410 | # | | 410 | # |
411 | _GCC_PKGBASE= gcc45 | | 411 | _GCC_PKGBASE= gcc45 |
412 | . if !empty(PKGPATH:Mlang/gcc45) | | 412 | . if !empty(PKGPATH:Mlang/gcc45) |
413 | _IGNORE_GCC= yes | | 413 | _IGNORE_GCC= yes |
414 | MAKEFLAGS+= _IGNORE_GCC=yes | | 414 | MAKEFLAGS+= _IGNORE_GCC=yes |
415 | . endif | | 415 | . endif |
416 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 416 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
417 | _GCC_PKGSRCDIR= ../../lang/gcc45 | | 417 | _GCC_PKGSRCDIR= ../../lang/gcc45 |
418 | _GCC_DEPENDENCY= gcc45>=${_GCC_REQD}:../../lang/gcc45 | | 418 | _GCC_DEPENDENCY= gcc45>=${_GCC_REQD}:../../lang/gcc45 |
419 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 419 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
420 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 420 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
421 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 421 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
422 | !empty(_LANGUAGES.gcc:Mobjc) | | 422 | !empty(_LANGUAGES.gcc:Mobjc) |
423 | _USE_GCC_SHLIB?= yes | | 423 | _USE_GCC_SHLIB?= yes |
424 | . endif | | 424 | . endif |
425 | . endif | | 425 | . endif |
426 | .elif !empty(_NEED_GCC46:M[yY][eE][sS]) | | 426 | .elif !empty(_NEED_GCC46:M[yY][eE][sS]) |
427 | # | | 427 | # |
428 | # We require gcc-4.6.x in the lang/gcc46 directory. | | 428 | # We require gcc-4.6.x in the lang/gcc46 directory. |
429 | # | | 429 | # |
430 | _GCC_PKGBASE= gcc46 | | 430 | _GCC_PKGBASE= gcc46 |
431 | . if !empty(PKGPATH:Mlang/gcc46) | | 431 | . if !empty(PKGPATH:Mlang/gcc46) |
432 | _IGNORE_GCC= yes | | 432 | _IGNORE_GCC= yes |
433 | MAKEFLAGS+= _IGNORE_GCC=yes | | 433 | MAKEFLAGS+= _IGNORE_GCC=yes |
434 | . endif | | 434 | . endif |
435 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 435 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
436 | _GCC_PKGSRCDIR= ../../lang/gcc46 | | 436 | _GCC_PKGSRCDIR= ../../lang/gcc46 |
437 | _GCC_DEPENDENCY= gcc46>=${_GCC_REQD}:../../lang/gcc46 | | 437 | _GCC_DEPENDENCY= gcc46>=${_GCC_REQD}:../../lang/gcc46 |
438 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 438 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
439 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 439 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
440 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 440 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
441 | !empty(_LANGUAGES.gcc:Mobjc) | | 441 | !empty(_LANGUAGES.gcc:Mobjc) |
442 | _USE_GCC_SHLIB?= yes | | 442 | _USE_GCC_SHLIB?= yes |
443 | . endif | | 443 | . endif |
444 | . endif | | 444 | . endif |
445 | .elif !empty(_NEED_GCC47:M[yY][eE][sS]) | | 445 | .elif !empty(_NEED_GCC47:M[yY][eE][sS]) |
446 | # | | 446 | # |
447 | # We require gcc-4.7.x in the lang/gcc47 directory. | | 447 | # We require gcc-4.7.x in the lang/gcc47 directory. |
448 | # | | 448 | # |
449 | _GCC_PKGBASE= gcc47 | | 449 | _GCC_PKGBASE= gcc47 |
450 | . if !empty(PKGPATH:Mlang/gcc47) | | 450 | . if !empty(PKGPATH:Mlang/gcc47) |
451 | _IGNORE_GCC= yes | | 451 | _IGNORE_GCC= yes |
452 | MAKEFLAGS+= _IGNORE_GCC=yes | | 452 | MAKEFLAGS+= _IGNORE_GCC=yes |
453 | . endif | | 453 | . endif |
454 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 454 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
455 | _GCC_PKGSRCDIR= ../../lang/gcc47 | | 455 | _GCC_PKGSRCDIR= ../../lang/gcc47 |
456 | _GCC_DEPENDENCY= gcc47>=${_GCC_REQD}:../../lang/gcc47 | | 456 | _GCC_DEPENDENCY= gcc47>=${_GCC_REQD}:../../lang/gcc47 |
457 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 457 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
458 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 458 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
459 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 459 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
460 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 460 | !empty(_LANGUAGES.gcc:Mgo) || \ |
461 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 461 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
462 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 462 | !empty(_LANGUAGES.gcc:Mobj-c++) |
463 | _USE_GCC_SHLIB?= yes | | 463 | _USE_GCC_SHLIB?= yes |
464 | . endif | | 464 | . endif |
465 | . endif | | 465 | . endif |
466 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) | | 466 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) |
467 | # | | 467 | # |
468 | # We require gcc-4.8.x in the lang/gcc48 directory. | | 468 | # We require gcc-4.8.x in the lang/gcc48 directory. |
469 | # | | 469 | # |
470 | _GCC_PKGBASE= gcc48 | | 470 | _GCC_PKGBASE= gcc48 |
471 | . if !empty(PKGPATH:Mlang/gcc48) | | 471 | . if !empty(PKGPATH:Mlang/gcc48) |
472 | _IGNORE_GCC= yes | | 472 | _IGNORE_GCC= yes |
473 | MAKEFLAGS+= _IGNORE_GCC=yes | | 473 | MAKEFLAGS+= _IGNORE_GCC=yes |
474 | . endif | | 474 | . endif |
475 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 475 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
476 | _GCC_PKGSRCDIR= ../../lang/gcc48 | | 476 | _GCC_PKGSRCDIR= ../../lang/gcc48 |
477 | _GCC_DEPENDENCY= gcc48>=${_GCC_REQD}:../../lang/gcc48 | | 477 | _GCC_DEPENDENCY= gcc48>=${_GCC_REQD}:../../lang/gcc48 |
478 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 478 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
479 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 479 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
480 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 480 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
481 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 481 | !empty(_LANGUAGES.gcc:Mgo) || \ |
482 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 482 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
483 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 483 | !empty(_LANGUAGES.gcc:Mobj-c++) |
484 | _USE_GCC_SHLIB?= yes | | 484 | _USE_GCC_SHLIB?= yes |
485 | . endif | | 485 | . endif |
486 | . endif | | 486 | . endif |
487 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) | | 487 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) |
488 | # | | 488 | # |
489 | # We require gcc-4.9.x in the lang/gcc49-* directory. | | 489 | # We require gcc-4.9.x in the lang/gcc49-* directory. |
490 | # | | 490 | # |
491 | _GCC_PKGBASE= gcc49 | | 491 | _GCC_PKGBASE= gcc49 |
492 | . if !empty(PKGPATH:Mlang/gcc49) | | 492 | . if !empty(PKGPATH:Mlang/gcc49) |
493 | _IGNORE_GCC= yes | | 493 | _IGNORE_GCC= yes |
494 | MAKEFLAGS+= _IGNORE_GCC=yes | | 494 | MAKEFLAGS+= _IGNORE_GCC=yes |
495 | . endif | | 495 | . endif |
496 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 496 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
497 | _GCC_PKGSRCDIR= ../../lang/gcc49 | | 497 | _GCC_PKGSRCDIR= ../../lang/gcc49 |
498 | _GCC_DEPENDENCY= gcc49>=${_GCC_REQD}:../../lang/gcc49 | | 498 | _GCC_DEPENDENCY= gcc49>=${_GCC_REQD}:../../lang/gcc49 |
499 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 499 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
500 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 500 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
501 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 501 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
502 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 502 | !empty(_LANGUAGES.gcc:Mgo) || \ |
503 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 503 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
504 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 504 | !empty(_LANGUAGES.gcc:Mobj-c++) |
505 | _USE_GCC_SHLIB?= yes | | 505 | _USE_GCC_SHLIB?= yes |
506 | . endif | | 506 | . endif |
507 | . endif | | 507 | . endif |
508 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) | | 508 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) |
509 | # | | 509 | # |
510 | # We require Ada-capable compiler in the lang/gcc-aux directory. | | 510 | # We require Ada-capable compiler in the lang/gcc-aux directory. |
511 | # | | 511 | # |
512 | _GCC_PKGBASE= gcc-aux | | 512 | _GCC_PKGBASE= gcc-aux |
513 | . if !empty(PKGPATH:Mlang/gcc-aux) | | 513 | . if !empty(PKGPATH:Mlang/gcc-aux) |
514 | _IGNORE_GCC= yes | | 514 | _IGNORE_GCC= yes |
515 | MAKEFLAGS+= _IGNORE_GCC=yes | | 515 | MAKEFLAGS+= _IGNORE_GCC=yes |
516 | . endif | | 516 | . endif |
517 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 517 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
518 | _GCC_PKGSRCDIR= ../../lang/gcc-aux | | 518 | _GCC_PKGSRCDIR= ../../lang/gcc-aux |
519 | _GCC_DEPENDENCY= gcc-aux>=${_GCC_REQD}:../../lang/gcc-aux | | 519 | _GCC_DEPENDENCY= gcc-aux>=${_GCC_REQD}:../../lang/gcc-aux |
520 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 520 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
521 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 521 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
522 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 522 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
523 | !empty(_LANGUAGES.gcc:Mada) || \ | | 523 | !empty(_LANGUAGES.gcc:Mada) || \ |
524 | !empty(_LANGUAGES.gcc:Mobjc) | | 524 | !empty(_LANGUAGES.gcc:Mobjc) |
525 | _USE_GCC_SHLIB?= yes | | 525 | _USE_GCC_SHLIB?= yes |
526 | . endif | | 526 | . endif |
527 | . endif | | 527 | . endif |
528 | .endif | | 528 | .endif |
529 | _GCC_DEPENDS= ${_GCC_PKGBASE}>=${_GCC_REQD} | | 529 | _GCC_DEPENDS= ${_GCC_PKGBASE}>=${_GCC_REQD} |
530 | | | 530 | |
531 | .if !empty(_NEED_GCC3:M[yY][eE][sS]) | | 531 | .if !empty(_NEED_GCC3:M[yY][eE][sS]) |
532 | . if !empty(PKGPATH:Mlang/gcc3-c++) | | 532 | . if !empty(PKGPATH:Mlang/gcc3-c++) |
533 | _IGNORE_GCC3CXX= yes | | 533 | _IGNORE_GCC3CXX= yes |
534 | MAKEFLAGS+= _IGNORE_GCC3CXX=yes | | 534 | MAKEFLAGS+= _IGNORE_GCC3CXX=yes |
535 | . endif | | 535 | . endif |
536 | . if !defined(_IGNORE_GCC3CXX) && !empty(_LANGUAGES.gcc:Mc++) | | 536 | . if !defined(_IGNORE_GCC3CXX) && !empty(_LANGUAGES.gcc:Mc++) |
537 | _GCC_PKGSRCDIR+= ../../lang/gcc3-c++ | | 537 | _GCC_PKGSRCDIR+= ../../lang/gcc3-c++ |
538 | _GCC_DEPENDENCY+= gcc3-c++>=${_GCC_REQD}:../../lang/gcc3-c++ | | 538 | _GCC_DEPENDENCY+= gcc3-c++>=${_GCC_REQD}:../../lang/gcc3-c++ |
539 | _USE_GCC_SHLIB?= yes | | 539 | _USE_GCC_SHLIB?= yes |
540 | . endif | | 540 | . endif |
541 | . if !empty(PKGPATH:Mlang/gcc3-f77) | | 541 | . if !empty(PKGPATH:Mlang/gcc3-f77) |
542 | _IGNORE_GCC3F77= yes | | 542 | _IGNORE_GCC3F77= yes |
543 | MAKEFLAGS+= _IGNORE_GCC3F77=yes | | 543 | MAKEFLAGS+= _IGNORE_GCC3F77=yes |
544 | . endif | | 544 | . endif |
545 | . if !defined(_IGNORE_GCC3F77) && !empty(_LANGUAGES.gcc:Mfortran77) | | 545 | . if !defined(_IGNORE_GCC3F77) && !empty(_LANGUAGES.gcc:Mfortran77) |
546 | _GCC_PKGSRCDIR+= ../../lang/gcc3-f77 | | 546 | _GCC_PKGSRCDIR+= ../../lang/gcc3-f77 |
547 | _GCC_DEPENDENCY+= gcc3-f77>=${_GCC_REQD}:../../lang/gcc3-f77 | | 547 | _GCC_DEPENDENCY+= gcc3-f77>=${_GCC_REQD}:../../lang/gcc3-f77 |
548 | _USE_GCC_SHLIB?= yes | | 548 | _USE_GCC_SHLIB?= yes |
549 | . endif | | 549 | . endif |
550 | . if !empty(PKGPATH:Mlang/gcc3-objc) | | 550 | . if !empty(PKGPATH:Mlang/gcc3-objc) |
551 | _IGNORE_GCC3OBJC= yes | | 551 | _IGNORE_GCC3OBJC= yes |
552 | MAKEFLAGS+= _IGNORE_GCC3OBJC=yes | | 552 | MAKEFLAGS+= _IGNORE_GCC3OBJC=yes |
553 | . endif | | 553 | . endif |
554 | . if !defined(_IGNORE_GCC3OBJC) && !empty(_LANGUAGES.gcc:Mobjc) | | 554 | . if !defined(_IGNORE_GCC3OBJC) && !empty(_LANGUAGES.gcc:Mobjc) |
555 | _GCC_PKGSRCDIR+= ../../lang/gcc3-objc | | 555 | _GCC_PKGSRCDIR+= ../../lang/gcc3-objc |
556 | _GCC_DEPENDENCY+= gcc3-objc>=${_GCC_REQD}:../../lang/gcc3-objc | | 556 | _GCC_DEPENDENCY+= gcc3-objc>=${_GCC_REQD}:../../lang/gcc3-objc |
557 | _USE_GCC_SHLIB?= yes | | 557 | _USE_GCC_SHLIB?= yes |
558 | . endif | | 558 | . endif |
559 | .endif | | 559 | .endif |
560 | | | 560 | |
561 | # When not using the GNU linker, gcc will always link shared libraries against | | 561 | # When not using the GNU linker, gcc will always link shared libraries against |
562 | # the shared version of libgcc, and so _USE_GCC_SHLIB needs to be enabled on | | 562 | # the shared version of libgcc, and so _USE_GCC_SHLIB needs to be enabled on |
563 | # platforms with non-GNU linkers, such as SunOS. | | 563 | # platforms with non-GNU linkers, such as SunOS. |
564 | # | | 564 | # |
565 | # However, we cannot simply do this by default as it will create circular | | 565 | # However, we cannot simply do this by default as it will create circular |
566 | # dependencies in packages which are required to build gcc itself, and so we | | 566 | # dependencies in packages which are required to build gcc itself, and so we |
567 | # enable it based on USE_LIBTOOL for the majority of packages, and support | | 567 | # enable it based on USE_LIBTOOL for the majority of packages, and support |
568 | # USE_GCC_RUNTIME for packages which create shared libraries but do not use | | 568 | # USE_GCC_RUNTIME for packages which create shared libraries but do not use |
569 | # libtool to do so. | | 569 | # libtool to do so. |
570 | # | | 570 | # |
571 | .if ${OPSYS} == "SunOS" && (defined(USE_LIBTOOL) || defined(USE_GCC_RUNTIME)) | | 571 | .if ${OPSYS} == "SunOS" && (defined(USE_LIBTOOL) || defined(USE_GCC_RUNTIME)) |
572 | _USE_GCC_SHLIB= yes | | 572 | _USE_GCC_SHLIB= yes |
573 | .endif | | 573 | .endif |
574 | | | 574 | |
575 | .if !empty(USE_NATIVE_GCC:M[yY][eE][sS]) && !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) | | 575 | .if !empty(USE_NATIVE_GCC:M[yY][eE][sS]) && !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) |
576 | _USE_PKGSRC_GCC= no | | 576 | _USE_PKGSRC_GCC= no |
577 | .elif !empty(USE_PKGSRC_GCC:M[yY][eE][sS]) | | 577 | .elif !empty(USE_PKGSRC_GCC:M[yY][eE][sS]) |
578 | # For environments where there is an external gcc too, but pkgsrc | | 578 | # For environments where there is an external gcc too, but pkgsrc |
579 | # should use the pkgsrc one for consistency. | | 579 | # should use the pkgsrc one for consistency. |
580 | _USE_PKGSRC_GCC= yes | | 580 | _USE_PKGSRC_GCC= yes |
581 | .endif | | 581 | .endif |
582 | | | 582 | |
583 | .if defined(_IGNORE_GCC) | | 583 | .if defined(_IGNORE_GCC) |
584 | _USE_PKGSRC_GCC= NO | | 584 | _USE_PKGSRC_GCC= NO |
585 | .endif | | 585 | .endif |
586 | | | 586 | |
587 | .if !defined(_USE_PKGSRC_GCC) | | 587 | .if !defined(_USE_PKGSRC_GCC) |
588 | _USE_PKGSRC_GCC= YES | | 588 | _USE_PKGSRC_GCC= YES |
589 | . if !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) | | 589 | . if !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) |
590 | _GCC_TEST_DEPENDS= gcc>=${_GCC_REQD} | | 590 | _GCC_TEST_DEPENDS= gcc>=${_GCC_REQD} |
591 | _USE_PKGSRC_GCC!= \ | | 591 | _USE_PKGSRC_GCC!= \ |
592 | if ${PKG_ADMIN} pmatch '${_GCC_TEST_DEPENDS}' ${_GCC_PKG} 2>/dev/null; then \ | | 592 | if ${PKG_ADMIN} pmatch '${_GCC_TEST_DEPENDS}' ${_GCC_PKG} 2>/dev/null; then \ |
593 | ${ECHO} "NO"; \ | | 593 | ${ECHO} "NO"; \ |
594 | else \ | | 594 | else \ |
595 | ${ECHO} "YES"; \ | | 595 | ${ECHO} "YES"; \ |
596 | fi | | 596 | fi |
597 | . endif | | 597 | . endif |
598 | .endif | | 598 | .endif |
599 | | | 599 | |
600 | # Check if any of the versions of GCC in pkgsrc can satisfy the _GCC_REQD | | 600 | # Check if any of the versions of GCC in pkgsrc can satisfy the _GCC_REQD |
601 | # requirement. | | 601 | # requirement. |
602 | # | | 602 | # |
603 | .if !defined(_NEED_NEWER_GCC) | | 603 | .if !defined(_NEED_NEWER_GCC) |
604 | _PKGSRC_GCC_VERSION= ${_GCC_PKGBASE}-${_GCC_DIST_VERSION} | | 604 | _PKGSRC_GCC_VERSION= ${_GCC_PKGBASE}-${_GCC_DIST_VERSION} |
605 | _NEED_NEWER_GCC!= \ | | 605 | _NEED_NEWER_GCC!= \ |
606 | if ${PKG_ADMIN} pmatch '${_GCC_DEPENDS}' ${_PKGSRC_GCC_VERSION} 2>/dev/null; then \ | | 606 | if ${PKG_ADMIN} pmatch '${_GCC_DEPENDS}' ${_PKGSRC_GCC_VERSION} 2>/dev/null; then \ |
607 | ${ECHO} "NO"; \ | | 607 | ${ECHO} "NO"; \ |
608 | else \ | | 608 | else \ |
609 | ${ECHO} "YES"; \ | | 609 | ${ECHO} "YES"; \ |
610 | fi | | 610 | fi |
611 | #MAKEFLAGS+= _NEED_NEWER_GCC=${_NEED_NEWER_GCC} | | 611 | #MAKEFLAGS+= _NEED_NEWER_GCC=${_NEED_NEWER_GCC} |
612 | .endif | | 612 | .endif |
613 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && \ | | 613 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && \ |
614 | !empty(_NEED_NEWER_GCC:M[yY][eE][sS]) | | 614 | !empty(_NEED_NEWER_GCC:M[yY][eE][sS]) |
615 | PKG_FAIL_REASON= "Unable to satisfy dependency: ${_GCC_DEPENDS}" | | 615 | PKG_FAIL_REASON= "Unable to satisfy dependency: ${_GCC_DEPENDS}" |
616 | .endif | | 616 | .endif |
617 | | | 617 | |
618 | # GNU ld option used to set the rpath | | 618 | # GNU ld option used to set the rpath |
619 | _LINKER_RPATH_FLAG= -R | | 619 | _LINKER_RPATH_FLAG= -R |
620 | | | 620 | |
621 | # GCC passes rpath directives to the linker using "-Wl,-R". | | 621 | # GCC passes rpath directives to the linker using "-Wl,-R". |
622 | _COMPILER_RPATH_FLAG= -Wl,${_LINKER_RPATH_FLAG} | | 622 | _COMPILER_RPATH_FLAG= -Wl,${_LINKER_RPATH_FLAG} |
623 | | | 623 | |
624 | .if !empty(MACHINE_ARCH:Mmips*) | | 624 | .if !empty(MACHINE_ARCH:Mmips*) |
625 | _COMPILER_ABI_FLAG.32= -mabi=n32 # ABI == "32" == "n32" | | 625 | _COMPILER_ABI_FLAG.32= -mabi=n32 # ABI == "32" == "n32" |
626 | _COMPILER_ABI_FLAG.n32= -mabi=n32 | | 626 | _COMPILER_ABI_FLAG.n32= -mabi=n32 |
627 | _COMPILER_ABI_FLAG.o32= -mabi=32 | | 627 | _COMPILER_ABI_FLAG.o32= -mabi=32 |
628 | _COMPILER_ABI_FLAG.64= -mabi=64 | | 628 | _COMPILER_ABI_FLAG.64= -mabi=64 |
629 | | | 629 | |
630 | . if defined(ABI) && !empty(ABI) | | 630 | . if defined(ABI) && !empty(ABI) |
631 | MABIFLAG= ${_COMPILER_ABI_FLAG.${ABI}} | | 631 | MABIFLAG= ${_COMPILER_ABI_FLAG.${ABI}} |
632 | . endif | | 632 | . endif |
633 | .endif | | 633 | .endif |
634 | | | 634 | |
635 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 635 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
636 | # | | 636 | # |
637 | # Ensure that the correct rpath is passed to the linker if we need to | | 637 | # Ensure that the correct rpath is passed to the linker if we need to |
638 | # link against gcc shared libs. | | 638 | # link against gcc shared libs. |
639 | # | | 639 | # |
640 | _GCC_SUBPREFIX!= \ | | 640 | _GCC_SUBPREFIX!= \ |
641 | if ${PKG_INFO} -qe ${_GCC_PKGBASE}; then \ | | 641 | if ${PKG_INFO} -qe ${_GCC_PKGBASE}; then \ |
642 | ${PKG_INFO} -f ${_GCC_PKGBASE} | \ | | 642 | ${PKG_INFO} -f ${_GCC_PKGBASE} | \ |
643 | ${GREP} "File:.*bin/gcc" | \ | | 643 | ${GREP} "File:.*bin/gcc" | \ |
644 | ${GREP} -v "/gcc[0-9][0-9]*-.*" | \ | | 644 | ${GREP} -v "/gcc[0-9][0-9]*-.*" | \ |
645 | ${SED} -e "s/.*File: *//;s/bin\/gcc.*//;q"; \ | | 645 | ${SED} -e "s/.*File: *//;s/bin\/gcc.*//;q"; \ |
646 | else \ | | 646 | else \ |
647 | case ${_CC} in \ | | 647 | case ${_CC} in \ |
648 | ${LOCALBASE}/*) \ | | 648 | ${LOCALBASE}/*) \ |
649 | subprefix="${_CC:H:S/\/bin$//:S/${LOCALBASE}\///:S/${LOCALBASE}//}"; \ | | 649 | subprefix="${_CC:H:S/\/bin$//:S/${LOCALBASE}\///:S/${LOCALBASE}//}"; \ |
650 | case "$${subprefix}" in \ | | 650 | case "$${subprefix}" in \ |
651 | "") ${ECHO} "$${subprefix}" ;; \ | | 651 | "") ${ECHO} "$${subprefix}" ;; \ |
652 | *) ${ECHO} "$${subprefix}/" ;; \ | | 652 | *) ${ECHO} "$${subprefix}/" ;; \ |
653 | esac; \ | | 653 | esac; \ |
654 | ;; \ | | 654 | ;; \ |
655 | *) \ | | 655 | *) \ |
656 | ${ECHO} "_GCC_SUBPREFIX_not_found/"; \ | | 656 | ${ECHO} "_GCC_SUBPREFIX_not_found/"; \ |
657 | ;; \ | | 657 | ;; \ |
658 | esac; \ | | 658 | esac; \ |
659 | fi | | 659 | fi |
660 | _GCC_PREFIX= ${LOCALBASE}/${_GCC_SUBPREFIX} | | 660 | _GCC_PREFIX= ${LOCALBASE}/${_GCC_SUBPREFIX} |
661 | _GCC_ARCHDIR!= \ | | 661 | _GCC_ARCHDIR!= \ |
662 | if [ -x ${_GCC_PREFIX}bin/gcc ]; then \ | | 662 | if [ -x ${_GCC_PREFIX}bin/gcc ]; then \ |
663 | ${DIRNAME} `${_GCC_PREFIX}bin/gcc ${MABIFLAG} -print-libgcc-file-name 2>/dev/null`; \ | | 663 | ${DIRNAME} `${_GCC_PREFIX}bin/gcc ${MABIFLAG} -print-libgcc-file-name 2>/dev/null`; \ |
664 | else \ | | 664 | else \ |
665 | ${ECHO} "_GCC_ARCHDIR_not_found"; \ | | 665 | ${ECHO} "_GCC_ARCHDIR_not_found"; \ |
666 | fi | | 666 | fi |
667 | . if empty(_GCC_ARCHDIR:M*not_found*) | | 667 | . if empty(_GCC_ARCHDIR:M*not_found*) |
668 | . if defined(MABIFLAG) && !empty(MABIFLAG) | | 668 | . if defined(MABIFLAG) && !empty(MABIFLAG) |
669 | _GCC_PREFIX:= ${_GCC_ARCHDIR:H:H:H:H:H}/ | | 669 | _GCC_PREFIX:= ${_GCC_ARCHDIR:H:H:H:H:H}/ |
670 | _GCC_SUBPREFIX:= ${_GCC_ARCHDIR:H:H:H:H:H:T}/ | | 670 | _GCC_SUBPREFIX:= ${_GCC_ARCHDIR:H:H:H:H:H:T}/ |
671 | . endif | | 671 | . endif |
672 | . endif | | 672 | . endif |
673 | _GCC_LIBDIRS= ${_GCC_ARCHDIR} | | 673 | _GCC_LIBDIRS= ${_GCC_ARCHDIR} |
674 | . if empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) | | 674 | . if empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) |
675 | _GCC_LIBDIRS+= ${_GCC_PREFIX}lib | | 675 | _GCC_LIBDIRS+= ${_GCC_PREFIX}lib${LIBABISUFFIX} |
676 | . endif | | 676 | . endif |
677 | _GCC_LDFLAGS= # empty | | 677 | _GCC_LDFLAGS= # empty |
678 | . for _dir_ in ${_GCC_LIBDIRS:N*not_found*} | | 678 | . for _dir_ in ${_GCC_LIBDIRS:N*not_found*} |
679 | _GCC_LDFLAGS+= -L${_dir_} ${COMPILER_RPATH_FLAG}${_dir_} | | 679 | _GCC_LDFLAGS+= -L${_dir_} ${COMPILER_RPATH_FLAG}${_dir_} |
680 | . endfor | | 680 | . endfor |
681 | LDFLAGS+= ${_GCC_LDFLAGS} | | 681 | LDFLAGS+= ${_GCC_LDFLAGS} |
682 | .endif | | 682 | .endif |
683 | | | 683 | |
684 | # Point the variables that specify the compiler to the installed | | 684 | # Point the variables that specify the compiler to the installed |
685 | # GCC executables. | | 685 | # GCC executables. |
686 | # | | 686 | # |
687 | _GCC_DIR= ${WRKDIR}/.gcc | | 687 | _GCC_DIR= ${WRKDIR}/.gcc |
688 | _GCC_VARS= # empty | | 688 | _GCC_VARS= # empty |
689 | | | 689 | |
690 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 690 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
691 | _GCCBINDIR= ${_GCC_PREFIX}bin | | 691 | _GCCBINDIR= ${_GCC_PREFIX}bin |
692 | .elif !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) | | 692 | .elif !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) |
693 | _GCCBINDIR= ${_CC:H} | | 693 | _GCCBINDIR= ${_CC:H} |
694 | .endif | | 694 | .endif |
695 | .if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) | | 695 | .if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) |
696 | _GCC_BIN_PREFIX= ${MACHINE_GNU_PLATFORM}- | | 696 | _GCC_BIN_PREFIX= ${MACHINE_GNU_PLATFORM}- |
697 | .endif | | 697 | .endif |
698 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc) | | 698 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc) |
699 | _GCC_VARS+= CC | | 699 | _GCC_VARS+= CC |
700 | _GCC_CC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gcc | | 700 | _GCC_CC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gcc |
701 | _ALIASES.CC= cc gcc | | 701 | _ALIASES.CC= cc gcc |
702 | CCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc | | 702 | CCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc |
703 | PKG_CC:= ${_GCC_CC} | | 703 | PKG_CC:= ${_GCC_CC} |
704 | .endif | | 704 | .endif |
705 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp) | | 705 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp) |
706 | _GCC_VARS+= CPP | | 706 | _GCC_VARS+= CPP |
707 | _GCC_CPP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}cpp | | 707 | _GCC_CPP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}cpp |
708 | _ALIASES.CPP= cpp | | 708 | _ALIASES.CPP= cpp |
709 | CPPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp | | 709 | CPPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp |
710 | PKG_CPP:= ${_GCC_CPP} | | 710 | PKG_CPP:= ${_GCC_CPP} |
711 | .endif | | 711 | .endif |
712 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++) | | 712 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++) |
713 | _GCC_VARS+= CXX | | 713 | _GCC_VARS+= CXX |
714 | _GCC_CXX= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g++ | | 714 | _GCC_CXX= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g++ |
715 | _ALIASES.CXX= c++ g++ | | 715 | _ALIASES.CXX= c++ g++ |
716 | CXXPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++ | | 716 | CXXPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++ |
717 | PKG_CXX:= ${_GCC_CXX} | | 717 | PKG_CXX:= ${_GCC_CXX} |
718 | .endif | | 718 | .endif |
719 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77) | | 719 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77) |
720 | _GCC_VARS+= FC | | 720 | _GCC_VARS+= FC |
721 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g77 | | 721 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g77 |
722 | _ALIASES.FC= f77 g77 | | 722 | _ALIASES.FC= f77 g77 |
723 | FC= g77 | | 723 | FC= g77 |
724 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77 | | 724 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77 |
725 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77 | | 725 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77 |
726 | PKG_FC:= ${_GCC_FC} | | 726 | PKG_FC:= ${_GCC_FC} |
727 | PKGSRC_FORTRAN?= g77 | | 727 | PKGSRC_FORTRAN?= g77 |
728 | .endif | | 728 | .endif |
729 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran) | | 729 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran) |
730 | _GCC_VARS+= FC | | 730 | _GCC_VARS+= FC |
731 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gfortran | | 731 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gfortran |
732 | _ALIASES.FC= gfortran | | 732 | _ALIASES.FC= gfortran |
733 | FC= gfortran | | 733 | FC= gfortran |
734 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran | | 734 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran |
735 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran | | 735 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran |
736 | PKG_FC:= ${_GCC_FC} | | 736 | PKG_FC:= ${_GCC_FC} |
737 | PKGSRC_FORTRAN?= gfortran | | 737 | PKGSRC_FORTRAN?= gfortran |
738 | .endif | | 738 | .endif |
739 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada) | | 739 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada) |
740 | _GCC_VARS+= ADA GMK GLK GBD CHP PRP GLS GNT | | 740 | _GCC_VARS+= ADA GMK GLK GBD CHP PRP GLS GNT |
741 | _GCC_ADA= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}ada | | 741 | _GCC_ADA= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}ada |
742 | _GCC_GMK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatmake | | 742 | _GCC_GMK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatmake |
743 | _GCC_GLK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatlink | | 743 | _GCC_GLK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatlink |
744 | _GCC_GBD= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatbind | | 744 | _GCC_GBD= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatbind |
745 | _GCC_CHP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatchop | | 745 | _GCC_CHP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatchop |
746 | _GCC_PRP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatprep | | 746 | _GCC_PRP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatprep |
747 | _GCC_GLS= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatls | | 747 | _GCC_GLS= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatls |
748 | _GCC_GNT= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnat | | 748 | _GCC_GNT= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnat |
749 | _ALIASES.ADA= ada | | 749 | _ALIASES.ADA= ada |
750 | _ALIASES.GMK= gnatmake | | 750 | _ALIASES.GMK= gnatmake |
751 | _ALIASES.GLK= gnatlink | | 751 | _ALIASES.GLK= gnatlink |
752 | _ALIASES.GBD= gnatbind | | 752 | _ALIASES.GBD= gnatbind |
753 | _ALIASES.CHP= gnatchop | | 753 | _ALIASES.CHP= gnatchop |
754 | _ALIASES.PRP= gnatprep | | 754 | _ALIASES.PRP= gnatprep |
755 | _ALIASES.GLS= gnatls | | 755 | _ALIASES.GLS= gnatls |
756 | _ALIASES.GNT= gnat | | 756 | _ALIASES.GNT= gnat |
757 | ADAPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada | | 757 | ADAPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada |
758 | GMKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatmake | | 758 | GMKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatmake |
759 | GLKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatlink | | 759 | GLKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatlink |
760 | GBDPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatbind | | 760 | GBDPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatbind |
761 | CHPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatchop | | 761 | CHPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatchop |
762 | PRPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatprep | | 762 | PRPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatprep |
763 | GLSPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatls | | 763 | GLSPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatls |
764 | GNTPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnat | | 764 | GNTPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnat |
765 | PKG_ADA:= ${_GCC_ADA} | | 765 | PKG_ADA:= ${_GCC_ADA} |
766 | PKG_GMK:= ${_GCC_GMK} | | 766 | PKG_GMK:= ${_GCC_GMK} |
767 | PKG_GLK:= ${_GCC_GLK} | | 767 | PKG_GLK:= ${_GCC_GLK} |
768 | PKG_GBD:= ${_GCC_GBD} | | 768 | PKG_GBD:= ${_GCC_GBD} |
769 | PKG_CHP:= ${_GCC_CHP} | | 769 | PKG_CHP:= ${_GCC_CHP} |
770 | PKG_PRP:= ${_GCC_PRP} | | 770 | PKG_PRP:= ${_GCC_PRP} |
771 | PKG_GLS:= ${_GCC_GLS} | | 771 | PKG_GLS:= ${_GCC_GLS} |
772 | PKG_GNT:= ${_GCC_GNT} | | 772 | PKG_GNT:= ${_GCC_GNT} |
773 | PKGSRC_ADA?= ada | | 773 | PKGSRC_ADA?= ada |
774 | PKGSRC_GMK?= gnatmake | | 774 | PKGSRC_GMK?= gnatmake |
775 | PKGSRC_GLK?= gnatlink | | 775 | PKGSRC_GLK?= gnatlink |
776 | PKGSRC_GBD?= gnatbind | | 776 | PKGSRC_GBD?= gnatbind |
777 | PKGSRC_CHP?= gnatchop | | 777 | PKGSRC_CHP?= gnatchop |
778 | PKGSRC_PRP?= gnatprep | | 778 | PKGSRC_PRP?= gnatprep |
779 | PKGSRC_GLS?= gnatls | | 779 | PKGSRC_GLS?= gnatls |
780 | PKGSRC_GNT?= gnat | | 780 | PKGSRC_GNT?= gnat |
781 | .endif | | 781 | .endif |
782 | _COMPILER_STRIP_VARS+= ${_GCC_VARS} | | 782 | _COMPILER_STRIP_VARS+= ${_GCC_VARS} |
783 | | | 783 | |
784 | # Pass the required flags to imake to tell it we're using gcc on Solaris. | | 784 | # Pass the required flags to imake to tell it we're using gcc on Solaris. |
785 | .if ${OPSYS} == "SunOS" | | 785 | .if ${OPSYS} == "SunOS" |
786 | IMAKEOPTS+= -DHasGcc2=YES -DHasGcc2ForCplusplus=YES | | 786 | IMAKEOPTS+= -DHasGcc2=YES -DHasGcc2ForCplusplus=YES |
787 | .endif | | 787 | .endif |
788 | | | 788 | |
789 | .if ${OPSYS} == "Darwin" || ${OPSYS} == "Linux" || ${OPSYS} == "SunOS" | | 789 | .if ${OPSYS} == "Darwin" || ${OPSYS} == "Linux" || ${OPSYS} == "SunOS" |
790 | _COMPILER_ABI_FLAG.32= -m32 | | 790 | _COMPILER_ABI_FLAG.32= -m32 |
791 | _COMPILER_ABI_FLAG.64= -m64 | | 791 | _COMPILER_ABI_FLAG.64= -m64 |
792 | .endif | | 792 | .endif |
793 | | | 793 | |
794 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 794 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
795 | . if exists(${CCPATH}) | | 795 | . if exists(${CCPATH}) |
796 | CC_VERSION_STRING!= ${CCPATH} -v 2>&1 | | 796 | CC_VERSION_STRING!= ${CCPATH} -v 2>&1 |
797 | CC_VERSION!= \ | | 797 | CC_VERSION!= \ |
798 | if ${CCPATH} -dumpversion > /dev/null 2>&1; then \ | | 798 | if ${CCPATH} -dumpversion > /dev/null 2>&1; then \ |
799 | ${ECHO} "gcc-`${CCPATH} -dumpversion`"; \ | | 799 | ${ECHO} "gcc-`${CCPATH} -dumpversion`"; \ |
800 | else \ | | 800 | else \ |
801 | ${ECHO} "gcc-${_GCC_REQD}"; \ | | 801 | ${ECHO} "gcc-${_GCC_REQD}"; \ |
802 | fi | | 802 | fi |
803 | | | 803 | |
804 | . else | | 804 | . else |
805 | CC_VERSION_STRING= ${CC_VERSION} | | 805 | CC_VERSION_STRING= ${CC_VERSION} |
806 | CC_VERSION= gcc-${_GCC_REQD} | | 806 | CC_VERSION= gcc-${_GCC_REQD} |
807 | . endif | | 807 | . endif |
808 | .else | | 808 | .else |
809 | CC_VERSION_STRING= ${CC_VERSION} | | 809 | CC_VERSION_STRING= ${CC_VERSION} |
810 | CC_VERSION= ${_GCC_PKG} | | 810 | CC_VERSION= ${_GCC_PKG} |
811 | .endif | | 811 | .endif |
812 | | | 812 | |
813 | # Prepend the path to the compiler to the PATH. | | 813 | # Prepend the path to the compiler to the PATH. |
814 | .if !empty(_LANGUAGES.gcc) | | 814 | .if !empty(_LANGUAGES.gcc) |
815 | PREPEND_PATH+= ${_GCC_DIR}/bin | | 815 | PREPEND_PATH+= ${_GCC_DIR}/bin |
816 | .endif | | 816 | .endif |
817 | | | 817 | |
818 | # Add the dependency on GCC. | | 818 | # Add the dependency on GCC. |
819 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 819 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
820 | . for _dir_ in ${_GCC_PKGSRCDIR} | | 820 | . for _dir_ in ${_GCC_PKGSRCDIR} |
821 | . include "${_dir_}/buildlink3.mk" | | 821 | . include "${_dir_}/buildlink3.mk" |
822 | . endfor | | 822 | . endfor |
823 | .endif | | 823 | .endif |
824 | | | 824 | |
825 | # Add dependency on GCC libraries if requested. | | 825 | # Add dependency on GCC libraries if requested. |
826 | .if (defined(_USE_GCC_SHLIB) && !empty(_USE_GCC_SHLIB:M[Yy][Ee][Ss])) && !empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) | | 826 | .if (defined(_USE_GCC_SHLIB) && !empty(_USE_GCC_SHLIB:M[Yy][Ee][Ss])) && !empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) |
827 | # Special case packages which are themselves a dependency of gcc runtime. | | 827 | # Special case packages which are themselves a dependency of gcc runtime. |
828 | . if empty(PKGPATH:Mdevel/libtool-base) && empty(PKGPATH:Mdevel/binutils) && empty(PKGPATH:Mlang/gcc??) | | 828 | . if empty(PKGPATH:Mdevel/libtool-base) && empty(PKGPATH:Mdevel/binutils) && empty(PKGPATH:Mlang/gcc??) |
829 | . if !empty(CC_VERSION:Mgcc-4.6*) | | 829 | . if !empty(CC_VERSION:Mgcc-4.6*) |
830 | . include "../../lang/gcc46-libs/buildlink3.mk" | | 830 | . include "../../lang/gcc46-libs/buildlink3.mk" |
831 | . elif !empty(CC_VERSION:Mgcc-4.7*) | | 831 | . elif !empty(CC_VERSION:Mgcc-4.7*) |
832 | . include "../../lang/gcc47-libs/buildlink3.mk" | | 832 | . include "../../lang/gcc47-libs/buildlink3.mk" |
833 | . elif !empty(CC_VERSION:Mgcc-4.8*) | | 833 | . elif !empty(CC_VERSION:Mgcc-4.8*) |
834 | . include "../../lang/gcc48-libs/buildlink3.mk" | | 834 | . include "../../lang/gcc48-libs/buildlink3.mk" |
835 | . elif !empty(CC_VERSION:Mgcc-4.9*) | | 835 | . elif !empty(CC_VERSION:Mgcc-4.9*) |
836 | . include "../../lang/gcc49-libs/buildlink3.mk" | | 836 | . include "../../lang/gcc49-libs/buildlink3.mk" |
837 | . else | | 837 | . else |
838 | PKG_FAIL_REASON= "No USE_PKGSRC_GCC_RUNTIME support for ${CC_VERSION}" | | 838 | PKG_FAIL_REASON= "No USE_PKGSRC_GCC_RUNTIME support for ${CC_VERSION}" |
839 | . endif | | 839 | . endif |
840 | . endif | | 840 | . endif |
841 | .endif | | 841 | .endif |
842 | | | 842 | |
843 | .for _var_ in ${_GCC_VARS} | | 843 | .for _var_ in ${_GCC_VARS} |
844 | . if !target(${_GCC_${_var_}}) | | 844 | . if !target(${_GCC_${_var_}}) |
845 | override-tools: ${_GCC_${_var_}} | | 845 | override-tools: ${_GCC_${_var_}} |
846 | ${_GCC_${_var_}}: | | 846 | ${_GCC_${_var_}}: |
847 | ${RUN}${MKDIR} ${.TARGET:H} | | 847 | ${RUN}${MKDIR} ${.TARGET:H} |
848 | . if !empty(COMPILER_USE_SYMLINKS:M[Yy][Ee][Ss]) | | 848 | . if !empty(COMPILER_USE_SYMLINKS:M[Yy][Ee][Ss]) |
849 | ${RUN}${RM} -f ${.TARGET} | | 849 | ${RUN}${RM} -f ${.TARGET} |
850 | ${RUN}${LN} -s ${_GCCBINDIR}/${.TARGET:T} ${.TARGET} | | 850 | ${RUN}${LN} -s ${_GCCBINDIR}/${.TARGET:T} ${.TARGET} |
851 | . else | | 851 | . else |
852 | ${RUN} \ | | 852 | ${RUN} \ |
853 | (${ECHO} '#!${TOOLS_SHELL}'; \ | | 853 | (${ECHO} '#!${TOOLS_SHELL}'; \ |
854 | ${ECHO} 'exec ${_GCCBINDIR}/${.TARGET:T} "$$@"'; \ | | 854 | ${ECHO} 'exec ${_GCCBINDIR}/${.TARGET:T} "$$@"'; \ |
855 | ) > ${.TARGET} | | 855 | ) > ${.TARGET} |
856 | ${RUN}${CHMOD} +x ${.TARGET} | | 856 | ${RUN}${CHMOD} +x ${.TARGET} |
857 | . endif | | 857 | . endif |
858 | . for _alias_ in ${_ALIASES.${_var_}:S/^/${.TARGET:H}\//} | | 858 | . for _alias_ in ${_ALIASES.${_var_}:S/^/${.TARGET:H}\//} |
859 | ${RUN} \ | | 859 | ${RUN} \ |
860 | if [ ! -x "${_alias_}" ]; then \ | | 860 | if [ ! -x "${_alias_}" ]; then \ |
861 | ${LN} -f -s ${.TARGET:T} ${_alias_}; \ | | 861 | ${LN} -f -s ${.TARGET:T} ${_alias_}; \ |
862 | fi | | 862 | fi |
863 | . endfor | | 863 | . endfor |
864 | . endif | | 864 | . endif |
865 | .endfor | | 865 | .endfor |
866 | | | 866 | |
867 | # On systems without a Fortran compiler, pull one in if needed. | | 867 | # On systems without a Fortran compiler, pull one in if needed. |
868 | # The default is g95 as it supports a modern dialect, but it can | | 868 | # The default is g95 as it supports a modern dialect, but it can |
869 | # be overridden in mk.conf to use only f2c. | | 869 | # be overridden in mk.conf to use only f2c. |
870 | # | | 870 | # |
871 | PKGSRC_FORTRAN?=g95 | | 871 | PKGSRC_FORTRAN?=g95 |
872 | | | 872 | |
873 | _GCC_NEEDS_A_FORTRAN= no | | 873 | _GCC_NEEDS_A_FORTRAN= no |
874 | .if empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && !exists(${FCPATH}) | | 874 | .if empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && !exists(${FCPATH}) |
875 | _GCC_NEEDS_A_FORTRAN= yes | | 875 | _GCC_NEEDS_A_FORTRAN= yes |
876 | .else | | 876 | .else |
877 | . for _pattern_ in 0.* 1.[0-4] 1.[0-4].* | | 877 | . for _pattern_ in 0.* 1.[0-4] 1.[0-4].* |
878 | . if !empty(MACHINE_PLATFORM:MNetBSD-${_pattern_}-*) | | 878 | . if !empty(MACHINE_PLATFORM:MNetBSD-${_pattern_}-*) |
879 | _GCC_NEEDS_A_FORTRAN= yes | | 879 | _GCC_NEEDS_A_FORTRAN= yes |
880 | . endif | | 880 | . endif |
881 | . endfor | | 881 | . endfor |
882 | .endif | | 882 | .endif |
883 | .if !empty(_GCC_NEEDS_A_FORTRAN:M[yY][eE][sS]) | | 883 | .if !empty(_GCC_NEEDS_A_FORTRAN:M[yY][eE][sS]) |
884 | . include "../../mk/compiler/${PKGSRC_FORTRAN}.mk" | | 884 | . include "../../mk/compiler/${PKGSRC_FORTRAN}.mk" |
885 | .endif | | 885 | .endif |
886 | | | 886 | |
887 | .if ${OPSYS} == "Interix" && !empty(_GCCBINDIR:M/opt/gcc.*) | | 887 | .if ${OPSYS} == "Interix" && !empty(_GCCBINDIR:M/opt/gcc.*) |
888 | COMPILER_INCLUDE_DIRS= ${_GCCBINDIR:H}/include ${_OPSYS_INCLUDE_DIRS} | | 888 | COMPILER_INCLUDE_DIRS= ${_GCCBINDIR:H}/include ${_OPSYS_INCLUDE_DIRS} |
889 | COMPILER_LIB_DIRS= ${_GCCBINDIR:H}/lib ${_OPSYS_LIB_DIRS} | | 889 | COMPILER_LIB_DIRS= ${_GCCBINDIR:H}/lib ${_OPSYS_LIB_DIRS} |
890 | .endif | | 890 | .endif |
891 | | | 891 | |
892 | .endif # COMPILER_GCC_MK | | 892 | .endif # COMPILER_GCC_MK |