| @@ -1,1150 +1,1123 @@ | | | @@ -1,1150 +1,1123 @@ |
1 | # $NetBSD: gcc.mk,v 1.217 2020/12/05 09:24:00 wiz Exp $ | | 1 | # $NetBSD: gcc.mk,v 1.218 2021/01/17 15:32:00 maya 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 | # GCC_VERSION_SUFFIX | | 23 | # GCC_VERSION_SUFFIX |
24 | # Optional suffix for GCC binaries, i.e. if the installed names are like | | 24 | # Optional suffix for GCC binaries, i.e. if the installed names are like |
25 | # /usr/bin/g++-5, /usr/bin/gcc-5 etc. | | 25 | # /usr/bin/g++-5, /usr/bin/gcc-5 etc. |
26 | | | 26 | |
27 | # Package-settable variables: | | 27 | # Package-settable variables: |
28 | # | | 28 | # |
29 | # GCC_REQD | | 29 | # GCC_REQD |
30 | # The minimum version of the GNU Compiler Collection that is | | 30 | # The minimum version of the GNU Compiler Collection that is |
31 | # required to build this package. Setting this variable doesn't | | 31 | # required to build this package. Setting this variable doesn't |
32 | # change the compiler that is used for building packages. See | | 32 | # change the compiler that is used for building packages. See |
33 | # ONLY_FOR_COMPILER for that purpose. This is a list of version | | 33 | # ONLY_FOR_COMPILER for that purpose. This is a list of version |
34 | # numbers, of which the maximum version is the definitive one. | | 34 | # numbers, of which the maximum version is the definitive one. |
35 | # | | 35 | # |
36 | # This variable can also be set by the user when USE_PKGSRC_GCC | | 36 | # This variable can also be set by the user when USE_PKGSRC_GCC |
37 | # is in effect to ensure that a specific compiler is used for | | 37 | # is in effect to ensure that a specific compiler is used for |
38 | # packages which do not specify a higher version. | | 38 | # packages which do not specify a higher version. |
39 | # | | 39 | # |
40 | # USE_GCC_RUNTIME | | 40 | # USE_GCC_RUNTIME |
41 | # Packages which build shared libraries but do not use libtool to | | 41 | # Packages which build shared libraries but do not use libtool to |
42 | # do so should define this variable. It is used to determine whether | | 42 | # do so should define this variable. It is used to determine whether |
43 | # the gcc runtime should be depended upon when a user has enabled | | 43 | # the gcc runtime should be depended upon when a user has enabled |
44 | # USE_PKGSRC_GCC_RUNTIME. | | 44 | # USE_PKGSRC_GCC_RUNTIME. |
45 | # | | 45 | # |
46 | # System-defined variables: | | 46 | # System-defined variables: |
47 | # | | 47 | # |
48 | # CC_VERSION | | 48 | # CC_VERSION |
49 | # A string of the form "gcc-4.3.2" | | 49 | # A string of the form "gcc-4.3.2" |
50 | # | | 50 | # |
51 | # CC_VERSION_STRING | | 51 | # CC_VERSION_STRING |
52 | # The same(?) as CC_VERSION. FIXME: What's the difference between | | 52 | # The same(?) as CC_VERSION. FIXME: What's the difference between |
53 | # the two? | | 53 | # the two? |
54 | # | | 54 | # |
55 | # Keywords: gcc | | 55 | # Keywords: gcc |
56 | # | | 56 | # |
57 | | | 57 | |
58 | .if !defined(COMPILER_GCC_MK) | | 58 | .if !defined(COMPILER_GCC_MK) |
59 | COMPILER_GCC_MK= defined | | 59 | COMPILER_GCC_MK= defined |
60 | | | 60 | |
61 | _VARGROUPS+= gcc | | 61 | _VARGROUPS+= gcc |
62 | _USER_VARS.gcc= \ | | 62 | _USER_VARS.gcc= \ |
63 | USE_NATIVE_GCC USE_PKGSRC_GCC USE_PKGSRC_GCC_RUNTIME \ | | 63 | USE_NATIVE_GCC USE_PKGSRC_GCC USE_PKGSRC_GCC_RUNTIME \ |
64 | GCCBASE GCC_VERSION_SUFFIX \ | | 64 | GCCBASE GCC_VERSION_SUFFIX \ |
65 | USE_CROSS_COMPILE \ | | 65 | USE_CROSS_COMPILE \ |
66 | PKGSRC_USE_FORTIFY PKGSRC_USE_RELRO PKGSRC_USE_SSP \ | | 66 | PKGSRC_USE_FORTIFY PKGSRC_USE_RELRO PKGSRC_USE_SSP \ |
67 | COMPILER_USE_SYMLINKS CC | | 67 | COMPILER_USE_SYMLINKS CC |
68 | _PKG_VARS.gcc= \ | | 68 | _PKG_VARS.gcc= \ |
69 | GCC_REQD USE_GCC_RUNTIME USE_LANGUAGES | | 69 | GCC_REQD USE_GCC_RUNTIME USE_LANGUAGES |
70 | _SYS_VARS.gcc= \ | | 70 | _SYS_VARS.gcc= \ |
71 | CC_VERSION CC_VERSION_STRING LANGUAGES.gcc \ | | 71 | CC_VERSION CC_VERSION_STRING LANGUAGES.gcc \ |
72 | CCPATH CPPPATH CXXPATH F77PATH FCPATH \ | | 72 | CCPATH CPPPATH CXXPATH F77PATH FCPATH \ |
73 | PKG_CC PKG_CPP PKG_CXX PKG_FC FC PKGSRC_FORTRAN \ | | 73 | PKG_CC PKG_CPP PKG_CXX PKG_FC FC PKGSRC_FORTRAN \ |
74 | ADAPATH GMKPATH GLKPATH GBDPATH CHPPATH GLSPATH GNTPATH PRPPATH | | 74 | ADAPATH GMKPATH GLKPATH GBDPATH CHPPATH GLSPATH GNTPATH PRPPATH |
75 | _DEF_VARS.gcc= \ | | 75 | _DEF_VARS.gcc= \ |
76 | MAKEFLAGS IMAKEOPTS \ | | 76 | MAKEFLAGS IMAKEOPTS \ |
77 | CFLAGS LDFLAGS \ | | 77 | CFLAGS LDFLAGS \ |
78 | PREPEND_PATH \ | | 78 | PREPEND_PATH \ |
79 | COMPILER_INCLUDE_DIRS COMPILER_LIB_DIRS \ | | 79 | COMPILER_INCLUDE_DIRS COMPILER_LIB_DIRS \ |
80 | CWRAPPERS_APPEND.cc CWRAPPERS_APPEND.cxx CWRAPPERS_APPEND.ld \ | | 80 | CWRAPPERS_APPEND.cc CWRAPPERS_APPEND.cxx CWRAPPERS_APPEND.ld \ |
81 | PKG_ADA PKG_GMK PKG_GLK PKG_GBD PKG_CHP PKG_GNT PKG_GLS PKG_PRP \ | | 81 | PKG_ADA PKG_GMK PKG_GLK PKG_GBD PKG_CHP PKG_GNT PKG_GLS PKG_PRP \ |
82 | PKGSRC_ADA PKGSRC_GMK PKGSRC_GLK PKGSRC_GBD PKGSRC_CHP PKGSRC_GNT PKGSRC_GLS PKGSRC_PRP \ | | 82 | PKGSRC_ADA PKGSRC_GMK PKGSRC_GLK PKGSRC_GBD PKGSRC_CHP PKGSRC_GNT PKGSRC_GLS PKGSRC_PRP \ |
83 | _CC _COMPILER_RPATH_FLAG _COMPILER_STRIP_VARS \ | | 83 | _CC _COMPILER_RPATH_FLAG _COMPILER_STRIP_VARS \ |
84 | _GCCBINDIR _GCC_ARCHDIR _GCC_BIN_PREFIX _GCC_CFLAGS \ | | 84 | _GCCBINDIR _GCC_ARCHDIR _GCC_BIN_PREFIX _GCC_CFLAGS \ |
85 | _GCC_CC _GCC_CPP _GCC_CXX _GCC_DEPENDENCY _GCC_DEPENDS \ | | 85 | _GCC_CC _GCC_CPP _GCC_CXX _GCC_DEPENDENCY _GCC_DEPENDS \ |
86 | _GCC_DIST_NAME _GCC_DIST_VERSION \ | | 86 | _GCC_DIST_NAME _GCC_DIST_VERSION \ |
87 | _GCC_FC _GCC_LDFLAGS _GCC_LIBDIRS _GCC_PKG \ | | 87 | _GCC_FC _GCC_LDFLAGS _GCC_LIBDIRS _GCC_PKG \ |
88 | _GCC_PKGBASE _GCC_PKGSRCDIR _GCC_PKG_SATISFIES_DEP \ | | 88 | _GCC_PKGBASE _GCC_PKGSRCDIR _GCC_PKG_SATISFIES_DEP \ |
89 | _GCC_PREFIX _GCC_REQD _GCC_STRICTEST_REQD _GCC_SUBPREFIX \ | | 89 | _GCC_PREFIX _GCC_REQD _GCC_STRICTEST_REQD _GCC_SUBPREFIX \ |
90 | _GCC_TEST_DEPENDS _GCC_NEEDS_A_FORTRAN _GCC_VARS _GCC_VERSION \ | | 90 | _GCC_TEST_DEPENDS _GCC_NEEDS_A_FORTRAN _GCC_VARS _GCC_VERSION \ |
91 | _GCC_VERSION_STRING \ | | 91 | _GCC_VERSION_STRING \ |
92 | _GCC_ADA _GCC_GMK _GCC_GLK _GCC_GBD _GCC_CHP _GCC_GLS _GCC_GNT _GCC_PRP \ | | 92 | _GCC_ADA _GCC_GMK _GCC_GLK _GCC_GBD _GCC_CHP _GCC_GLS _GCC_GNT _GCC_PRP \ |
93 | _IGNORE_GCC _IGNORE_GCC3CXX _IGNORE_GCC3F77 _IGNORE_GCC3OBJC \ | | 93 | _IGNORE_GCC _IGNORE_GCC3CXX _IGNORE_GCC3F77 _IGNORE_GCC3OBJC \ |
94 | _IS_BUILTIN_GCC \ | | 94 | _IS_BUILTIN_GCC \ |
95 | _LANGUAGES.gcc \ | | 95 | _LANGUAGES.gcc \ |
96 | _LINKER_RPATH_FLAG \ | | 96 | _LINKER_RPATH_FLAG \ |
97 | _NEED_GCC2 _NEED_GCC3 _NEED_GCC34 _NEED_GCC44 \ | | 97 | _NEED_GCC2 _NEED_GCC3 _NEED_GCC34 _NEED_GCC44 \ |
98 | _NEED_GCC48 _NEED_GCC49 _NEED_GCC5 _NEED_GCC6 \ | | 98 | _NEED_GCC6 \ _NEED_GCC7 _NEED_GCC8 _NEED_GCC9 \ |
99 | _NEED_GCC7 _NEED_GCC8 _NEED_GCC9 _NEED_GCC10 \ | | 99 | _NEED_GCC10 \ |
100 | _NEED_GCC_AUX _NEED_NEWER_GCC \ | | 100 | _NEED_GCC_AUX _NEED_NEWER_GCC \ |
101 | _PKGSRC_GCC_VERSION \ | | 101 | _PKGSRC_GCC_VERSION \ |
102 | _USE_GCC_SHLIB _USE_PKGSRC_GCC \ | | 102 | _USE_GCC_SHLIB _USE_PKGSRC_GCC \ |
103 | _WRAP_EXTRA_ARGS.CC \ | | 103 | _WRAP_EXTRA_ARGS.CC \ |
104 | _EXTRA_CC_DIRS \ | | 104 | _EXTRA_CC_DIRS \ |
105 | _CXX_STD_VERSIONS \ | | 105 | _CXX_STD_VERSIONS \ |
106 | ${_CXX_STD_VERSIONS:@std@_CXX_STD_FLAG.${std}@} \ | | 106 | ${_CXX_STD_VERSIONS:@std@_CXX_STD_FLAG.${std}@} \ |
107 | _MKPIE_CFLAGS.gcc _MKPIE_LDFLAGS.gcc \ | | 107 | _MKPIE_CFLAGS.gcc _MKPIE_LDFLAGS.gcc \ |
108 | _FORTIFY_CFLAGS _RELRO_LDFLAGS _STACK_CHECK_CFLAGS \ | | 108 | _FORTIFY_CFLAGS _RELRO_LDFLAGS _STACK_CHECK_CFLAGS \ |
109 | _CTF_CFLAGS \ | | 109 | _CTF_CFLAGS \ |
110 | _GCC_DIR \ | | 110 | _GCC_DIR \ |
111 | _ALIASES.CC _ALIASES.CPP _ALIASES.CXX _ALIASES.FC \ | | 111 | _ALIASES.CC _ALIASES.CPP _ALIASES.CXX _ALIASES.FC \ |
112 | _ALIASES.ADA _ALIASES.GMK _ALIASES.GLK _ALIASES.GBD \ | | 112 | _ALIASES.ADA _ALIASES.GMK _ALIASES.GLK _ALIASES.GBD \ |
113 | _ALIASES.CHP _ALIASES.PRP _ALIASES.GLS _ALIASES.GNT \ | | 113 | _ALIASES.CHP _ALIASES.PRP _ALIASES.GLS _ALIASES.GNT \ |
114 | _COMPILER_ABI_FLAG.32 _COMPILER_ABI_FLAG.64 \ | | 114 | _COMPILER_ABI_FLAG.32 _COMPILER_ABI_FLAG.64 \ |
115 | _COMPILER_ABI_FLAG.n32 _COMPILER_ABI_FLAG.o32 \ | | 115 | _COMPILER_ABI_FLAG.n32 _COMPILER_ABI_FLAG.o32 \ |
116 | _SSP_CFLAGS \ | | 116 | _SSP_CFLAGS \ |
117 | _CXX_STD_FLAG.c++03 _CXX_STD_FLAG.gnu++03 | | 117 | _CXX_STD_FLAG.c++03 _CXX_STD_FLAG.gnu++03 |
118 | _USE_VARS.gcc= \ | | 118 | _USE_VARS.gcc= \ |
119 | MACHINE_ARCH PATH DRAGONFLY_CCVER OPSYS LOCALBASE \ | | 119 | MACHINE_ARCH PATH DRAGONFLY_CCVER OPSYS LOCALBASE \ |
120 | USE_LIBTOOL \ | | 120 | USE_LIBTOOL \ |
121 | LIBABISUFFIX \ | | 121 | LIBABISUFFIX \ |
122 | COMPILER_RPATH_FLAG \ | | 122 | COMPILER_RPATH_FLAG \ |
123 | MACHINE_GNU_PLATFORM \ | | 123 | MACHINE_GNU_PLATFORM \ |
124 | WRKDIR MACHINE_PLATFORM PKGPATH \ | | 124 | WRKDIR MACHINE_PLATFORM PKGPATH \ |
125 | _PKGSRC_MKPIE _PKGSRC_MKREPRO _MKREPRO_CFLAGS.gcc \ | | 125 | _PKGSRC_MKPIE _PKGSRC_MKREPRO _MKREPRO_CFLAGS.gcc \ |
126 | _PKGSRC_USE_FORTIFY _PKGSRC_USE_RELRO _PKGSRC_USE_STACK_CHECK \ | | 126 | _PKGSRC_USE_FORTIFY _PKGSRC_USE_RELRO _PKGSRC_USE_STACK_CHECK \ |
127 | _OPSYS_INCLUDE_DIRS _OPSYS_LIB_DIRS | | 127 | _OPSYS_INCLUDE_DIRS _OPSYS_LIB_DIRS |
128 | _IGN_VARS.gcc= \ | | 128 | _IGN_VARS.gcc= \ |
129 | _GCC2_PATTERNS _GCC3_PATTERNS _GCC34_PATTERNS _GCC44_PATTERNS \ | | 129 | _GCC2_PATTERNS _GCC3_PATTERNS _GCC34_PATTERNS _GCC44_PATTERNS \ |
130 | _GCC48_PATTERNS _GCC49_PATTERNS _GCC5_PATTERNS _GCC6_PATTERNS \ | | 130 | _GCC48_PATTERNS _GCC49_PATTERNS _GCC5_PATTERNS _GCC6_PATTERNS \ |
131 | _GCC7_PATTERNS _GCC8_PATTERNS _GCC9_PATTERNS _GCC10_PATTERNS \ | | 131 | _GCC7_PATTERNS _GCC8_PATTERNS _GCC9_PATTERNS _GCC10_PATTERNS \ |
132 | _GCC_AUX_PATTERNS | | 132 | _GCC_AUX_PATTERNS |
133 | _LISTED_VARS.gcc= \ | | 133 | _LISTED_VARS.gcc= \ |
134 | MAKEFLAGS IMAKEOPTS LDFLAGS PREPEND_PATH | | 134 | MAKEFLAGS IMAKEOPTS LDFLAGS PREPEND_PATH |
135 | .include "../../mk/bsd.prefs.mk" | | 135 | .include "../../mk/bsd.prefs.mk" |
136 | | | 136 | |
137 | USE_NATIVE_GCC?= no | | 137 | USE_NATIVE_GCC?= no |
138 | USE_PKGSRC_GCC?= no | | 138 | USE_PKGSRC_GCC?= no |
139 | USE_PKGSRC_GCC_RUNTIME?=no | | 139 | USE_PKGSRC_GCC_RUNTIME?=no |
140 | | | 140 | |
141 | GCC_REQD+= 2.8.0 | | 141 | GCC_REQD+= 2.8.0 |
142 | | | 142 | |
143 | # gcc2 doesn't support c99 and amd64 | | 143 | # gcc2 doesn't support c99 and amd64 |
144 | .if !empty(USE_LANGUAGES:Mc99) || ${MACHINE_ARCH} == "x86_64" | | 144 | .if !empty(USE_LANGUAGES:Mc99) || ${MACHINE_ARCH} == "x86_64" |
145 | GCC_REQD+= 3.0 | | 145 | GCC_REQD+= 3.0 |
146 | .endif | | 146 | .endif |
147 | | | 147 | |
148 | # Only one compiler defined here supports Ada: lang/gcc5-aux | | 148 | # Only one compiler defined here supports Ada: lang/gcc5-aux |
149 | # If the Ada language is requested, force lang/gcc5-aux to be selected | | 149 | # If the Ada language is requested, force lang/gcc5-aux to be selected |
150 | .if !empty(USE_LANGUAGES:Mada) | | 150 | .if !empty(USE_LANGUAGES:Mada) |
151 | GCC_REQD+= 20120614 | | 151 | GCC_REQD+= 20120614 |
152 | .endif | | 152 | .endif |
153 | | | 153 | |
154 | # _GCC_DIST_VERSION is the highest version of GCC installed by the pkgsrc | | 154 | # _GCC_DIST_VERSION is the highest version of GCC installed by the pkgsrc |
155 | # without the PKGREVISIONs. | | 155 | # without the PKGREVISIONs. |
156 | _GCC_DIST_NAME:= gcc10 | | 156 | _GCC_DIST_NAME:= gcc10 |
157 | .include "../../lang/${_GCC_DIST_NAME}/version.mk" | | 157 | .include "../../lang/${_GCC_DIST_NAME}/version.mk" |
158 | _GCC_DIST_VERSION:= ${${_GCC_DIST_NAME:tu}_DIST_VERSION} | | 158 | _GCC_DIST_VERSION:= ${${_GCC_DIST_NAME:tu}_DIST_VERSION} |
159 | | | 159 | |
160 | # _GCC2_PATTERNS matches N s.t. N <= 2.95.3. | | 160 | # _GCC2_PATTERNS matches N s.t. N <= 2.95.3. |
161 | _GCC2_PATTERNS= [0-1].* 2.[0-9] 2.[0-9].* 2.[1-8][0-9] 2.[1-8][0-9].* \ | | 161 | _GCC2_PATTERNS= [0-1].* 2.[0-9] 2.[0-9].* 2.[1-8][0-9] 2.[1-8][0-9].* \ |
162 | 2.9[0-4] 2.9[0-4].* 2.95 2.95.[0-3] | | 162 | 2.9[0-4] 2.9[0-4].* 2.95 2.95.[0-3] |
163 | | | 163 | |
164 | # _GCC3_PATTERNS matches N s.t. 2.95.3 < N < 3.4. | | 164 | # _GCC3_PATTERNS matches N s.t. 2.95.3 < N < 3.4. |
165 | _GCC3_PATTERNS= 2.95.[4-9]* 2.95.[1-9][0-9]* 2.9[6-9] 2.9[6-9].* \ | | 165 | _GCC3_PATTERNS= 2.95.[4-9]* 2.95.[1-9][0-9]* 2.9[6-9] 2.9[6-9].* \ |
166 | 2.[1-9][0-9][0-9]* 3.[0-3] 3.[0-3].* | | 166 | 2.[1-9][0-9][0-9]* 3.[0-3] 3.[0-3].* |
167 | | | 167 | |
168 | # _GCC34_PATTERNS matches N s.t. 3.4 <= N < 4. | | 168 | # _GCC34_PATTERNS matches N s.t. 3.4 <= N < 4. |
169 | _GCC34_PATTERNS= 3.[4-9] 3.[4-9].* 3.[1-9][0-9]* | | 169 | _GCC34_PATTERNS= 3.[4-9] 3.[4-9].* 3.[1-9][0-9]* |
170 | | | 170 | |
171 | # _GCC44_PATTERNS matches N s.t. 4.0 <= N < 4.5. | | 171 | # _GCC44_PATTERNS matches N s.t. 4.0 <= N < 4.5. |
172 | _GCC44_PATTERNS= 4.[0-4] 4.[0-4].* | | 172 | _GCC44_PATTERNS= 4.[0-4] 4.[0-4].* |
173 | | | 173 | |
174 | # _GCC48_PATTERNS matches N s.t. 4.5 <= N < 4.9. | | 174 | # _GCC6_PATTERNS matches N s.t. 4.5 <= N < 7. |
175 | _GCC48_PATTERNS= 4.[5-8] 4.[5-8].* | | 175 | _GCC6_PATTERNS= 4.[5-9] 4.[5-9]* 5 5.* 6 6.* |
176 | | | | |
177 | # _GCC49_PATTERNS matches N s.t. 4.9 <= N < 4.10. | | | |
178 | _GCC49_PATTERNS= 4.9 4.9.* | | | |
179 | | | | |
180 | # _GCC5_PATTERNS matches N s.t. 5.0 <= N < 6. | | | |
181 | _GCC5_PATTERNS= 5 5.* | | | |
182 | | | | |
183 | # _GCC6_PATTERNS matches N s.t. 6.0 <= N < 7. | | | |
184 | _GCC6_PATTERNS= 6 6.* | | | |
185 | | | 176 | |
186 | # _GCC7_PATTERNS matches N s.t. 7.0 <= N < 8. | | 177 | # _GCC7_PATTERNS matches N s.t. 7.0 <= N < 8. |
187 | _GCC7_PATTERNS= 7 7.* | | 178 | _GCC7_PATTERNS= 7 7.* |
188 | | | 179 | |
189 | # _GCC8_PATTERNS matches N s.t. 8.0 <= N < 9. | | 180 | # _GCC8_PATTERNS matches N s.t. 8.0 <= N < 9. |
190 | _GCC8_PATTERNS= 8 8.* | | 181 | _GCC8_PATTERNS= 8 8.* |
191 | | | 182 | |
192 | # _GCC9_PATTERNS matches N s.t. 9.0 <= N < 10. | | 183 | # _GCC9_PATTERNS matches N s.t. 9.0 <= N < 10. |
193 | _GCC9_PATTERNS= 9 9.* | | 184 | _GCC9_PATTERNS= 9 9.* |
194 | | | 185 | |
195 | # _GCC10_PATTERNS matches N s.t. 10.0 <= N < 11. | | 186 | # _GCC10_PATTERNS matches N s.t. 10.0 <= N < 11. |
196 | _GCC10_PATTERNS= 10 10.* | | 187 | _GCC10_PATTERNS= 10 10.* |
197 | | | 188 | |
198 | # _GCC_AUX_PATTERNS matches 8-digit date YYYYMMDD* | | 189 | # _GCC_AUX_PATTERNS matches 8-digit date YYYYMMDD* |
199 | _GCC_AUX_PATTERNS= 20[1-2][0-9][0-1][0-9][0-3][0-9]* | | 190 | _GCC_AUX_PATTERNS= 20[1-2][0-9][0-1][0-9][0-3][0-9]* |
200 | | | 191 | |
201 | # Override the default from sys.mk if necessary. | | 192 | # Override the default from sys.mk if necessary. |
202 | .if ${CC} == cc && ${GCCBASE:U} && !exists(${GCCBASE}/bin/${CC}) && exists(${GCCBASE}/bin/gcc) | | 193 | .if ${CC} == cc && ${GCCBASE:U} && !exists(${GCCBASE}/bin/${CC}) && exists(${GCCBASE}/bin/gcc) |
203 | CC= gcc | | 194 | CC= gcc |
204 | .endif | | 195 | .endif |
205 | | | 196 | |
206 | # _CC is the full path to the compiler named by ${CC} if it can be found. | | 197 | # _CC is the full path to the compiler named by ${CC} if it can be found. |
207 | .if !defined(_CC) | | 198 | .if !defined(_CC) |
208 | _CC:= ${CC:[1]} | | 199 | _CC:= ${CC:[1]} |
209 | . if !empty(GCCBASE) && exists(${GCCBASE}/bin) | | 200 | . if !empty(GCCBASE) && exists(${GCCBASE}/bin) |
210 | _EXTRA_CC_DIRS= ${GCCBASE}/bin | | 201 | _EXTRA_CC_DIRS= ${GCCBASE}/bin |
211 | . endif | | 202 | . endif |
212 | . for _dir_ in ${_EXTRA_CC_DIRS} ${PATH:C/\:/ /g} | | 203 | . for _dir_ in ${_EXTRA_CC_DIRS} ${PATH:C/\:/ /g} |
213 | . if empty(_CC:M/*) | | 204 | . if empty(_CC:M/*) |
214 | . if exists(${_dir_}/${CC:[1]}) | | 205 | . if exists(${_dir_}/${CC:[1]}) |
215 | _CC:= ${_dir_}/${CC:[1]} | | 206 | _CC:= ${_dir_}/${CC:[1]} |
216 | . endif | | 207 | . endif |
217 | . endif | | 208 | . endif |
218 | . endfor | | 209 | . endfor |
219 | . if empty(USE_CROSS_COMPILE:M[yY][eE][sS]) | | 210 | . if empty(USE_CROSS_COMPILE:M[yY][eE][sS]) |
220 | # Pass along _CC only if we're working on native packages -- don't pass | | 211 | # Pass along _CC only if we're working on native packages -- don't pass |
221 | # the cross-compiler on to submakes for building native packages. | | 212 | # the cross-compiler on to submakes for building native packages. |
222 | MAKEFLAGS+= _CC=${_CC:Q} | | 213 | MAKEFLAGS+= _CC=${_CC:Q} |
223 | . endif | | 214 | . endif |
224 | .endif | | 215 | .endif |
225 | | | 216 | |
226 | .if !defined(_GCC_VERSION) | | 217 | .if !defined(_GCC_VERSION) |
227 | # | | 218 | # |
228 | # FIXME: Ideally we'd use PKGSRC_SETENV here, but not enough of the tools | | 219 | # FIXME: Ideally we'd use PKGSRC_SETENV here, but not enough of the tools |
229 | # infrastructure is loaded for SETENV to be defined when mk/compiler.mk is | | 220 | # infrastructure is loaded for SETENV to be defined when mk/compiler.mk is |
230 | # included first. LC_ALL is required here for similar reasons, as ALL_ENV | | 221 | # included first. LC_ALL is required here for similar reasons, as ALL_ENV |
231 | # is not defined at this stage. | | 222 | # is not defined at this stage. |
232 | # | | 223 | # |
233 | _GCC_VERSION_STRING!= \ | | 224 | _GCC_VERSION_STRING!= \ |
234 | ( env LC_ALL=C ${_CC} -v 2>&1 | ${GREP} 'gcc version') 2>/dev/null || ${ECHO} 0 | | 225 | ( env LC_ALL=C ${_CC} -v 2>&1 | ${GREP} 'gcc version') 2>/dev/null || ${ECHO} 0 |
235 | . if !empty(_GCC_VERSION_STRING:Megcs*) | | 226 | . if !empty(_GCC_VERSION_STRING:Megcs*) |
236 | _GCC_VERSION= 2.8.1 # egcs is considered to be gcc-2.8.1. | | 227 | _GCC_VERSION= 2.8.1 # egcs is considered to be gcc-2.8.1. |
237 | . elif !empty(DRAGONFLY_CCVER) && ${OPSYS} == "DragonFly" | | 228 | . elif !empty(DRAGONFLY_CCVER) && ${OPSYS} == "DragonFly" |
238 | _GCC_VERSION!= env CCVER=${DRAGONFLY_CCVER} ${_CC} -dumpversion | | 229 | _GCC_VERSION!= env CCVER=${DRAGONFLY_CCVER} ${_CC} -dumpversion |
239 | . elif !empty(_GCC_VERSION_STRING:Mgcc*) | | 230 | . elif !empty(_GCC_VERSION_STRING:Mgcc*) |
240 | _GCC_VERSION!= ${_CC} -dumpversion | | 231 | _GCC_VERSION!= ${_CC} -dumpversion |
241 | . else | | 232 | . else |
242 | _GCC_VERSION= 0 | | 233 | _GCC_VERSION= 0 |
243 | . endif | | 234 | . endif |
244 | .endif | | 235 | .endif |
245 | _GCC_PKG= gcc-${_GCC_VERSION:C/-.*$//} | | 236 | _GCC_PKG= gcc-${_GCC_VERSION:C/-.*$//} |
246 | | | 237 | |
247 | .for _version_ in ${_CXX_STD_VERSIONS} | | 238 | .for _version_ in ${_CXX_STD_VERSIONS} |
248 | _CXX_STD_FLAG.${_version_}?= -std=${_version_} | | 239 | _CXX_STD_FLAG.${_version_}?= -std=${_version_} |
249 | . if !empty(_GCC_VERSION:M[34].[1234].*) | | 240 | . if !empty(_GCC_VERSION:M[34].[1234].*) |
250 | _CXX_STD_FLAG.c++03= -std=c++0x | | 241 | _CXX_STD_FLAG.c++03= -std=c++0x |
251 | _CXX_STD_FLAG.gnu++03= -std=gnu++0x | | 242 | _CXX_STD_FLAG.gnu++03= -std=gnu++0x |
252 | . endif | | 243 | . endif |
253 | .endfor | | 244 | .endfor |
254 | | | 245 | |
255 | .if !empty(_CC:M${LOCALBASE}/*) | | 246 | .if !empty(_CC:M${LOCALBASE}/*) |
256 | _IS_BUILTIN_GCC= NO | | 247 | _IS_BUILTIN_GCC= NO |
257 | GCC_REQD+= ${_GCC_VERSION} | | 248 | GCC_REQD+= ${_GCC_VERSION} |
258 | .else | | 249 | .else |
259 | . if !empty(_CC:M/*) | | 250 | . if !empty(_CC:M/*) |
260 | # | | 251 | # |
261 | # GCC in older versions of Darwin report "Apple Computer ... based on gcc | | 252 | # GCC in older versions of Darwin report "Apple Computer ... based on gcc |
262 | # version ...", so we can't just grep for "^gcc". | | 253 | # version ...", so we can't just grep for "^gcc". |
263 | # | | 254 | # |
264 | . if ${_GCC_VERSION} != "0" | | 255 | . if ${_GCC_VERSION} != "0" |
265 | _IS_BUILTIN_GCC= YES | | 256 | _IS_BUILTIN_GCC= YES |
266 | . else | | 257 | . else |
267 | _IS_BUILTIN_GCC= NO | | 258 | _IS_BUILTIN_GCC= NO |
268 | . endif | | 259 | . endif |
269 | . else | | 260 | . else |
270 | _IS_BUILTIN_GCC= NO | | 261 | _IS_BUILTIN_GCC= NO |
271 | . endif | | 262 | . endif |
272 | .endif | | 263 | .endif |
273 | | | 264 | |
274 | # Distill the GCC_REQD list into a single _GCC_REQD value that is the | | 265 | # Distill the GCC_REQD list into a single _GCC_REQD value that is the |
275 | # highest version of GCC required. | | 266 | # highest version of GCC required. |
276 | # | | 267 | # |
277 | _GCC_STRICTEST_REQD?= none | | 268 | _GCC_STRICTEST_REQD?= none |
278 | .for _version_ in ${GCC_REQD} | | 269 | .for _version_ in ${GCC_REQD} |
279 | . for _pkg_ in gcc-${_version_} | | 270 | . for _pkg_ in gcc-${_version_} |
280 | . if ${_GCC_STRICTEST_REQD} == "none" | | 271 | . if ${_GCC_STRICTEST_REQD} == "none" |
281 | _GCC_PKG_SATISFIES_DEP= YES | | 272 | _GCC_PKG_SATISFIES_DEP= YES |
282 | . for _vers_ in ${GCC_REQD} | | 273 | . for _vers_ in ${GCC_REQD} |
283 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) | | 274 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) |
284 | _GCC_PKG_SATISFIES_DEP!= \ | | 275 | _GCC_PKG_SATISFIES_DEP!= \ |
285 | if ${PKG_ADMIN} pmatch 'gcc>=${_vers_}' ${_pkg_} 2>/dev/null; then \ | | 276 | if ${PKG_ADMIN} pmatch 'gcc>=${_vers_}' ${_pkg_} 2>/dev/null; then \ |
286 | ${ECHO} "YES"; \ | | 277 | ${ECHO} "YES"; \ |
287 | else \ | | 278 | else \ |
288 | ${ECHO} "NO"; \ | | 279 | ${ECHO} "NO"; \ |
289 | fi | | 280 | fi |
290 | . endif | | 281 | . endif |
291 | . endfor | | 282 | . endfor |
292 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) | | 283 | . if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) |
293 | _GCC_STRICTEST_REQD= ${_version_} | | 284 | _GCC_STRICTEST_REQD= ${_version_} |
294 | . endif | | 285 | . endif |
295 | . endif | | 286 | . endif |
296 | . endfor | | 287 | . endfor |
297 | .endfor | | 288 | .endfor |
298 | _GCC_REQD= ${_GCC_STRICTEST_REQD} | | 289 | _GCC_REQD= ${_GCC_STRICTEST_REQD} |
299 | | | 290 | |
300 | # Determine whether we require GCC-2.x or GCC-3.x by examining _GCC_REQD. | | 291 | # Determine whether we require GCC-2.x or GCC-3.x by examining _GCC_REQD. |
301 | _NEED_GCC2?= no | | 292 | _NEED_GCC2?= no |
302 | .for _pattern_ in ${_GCC2_PATTERNS} | | 293 | .for _pattern_ in ${_GCC2_PATTERNS} |
303 | . if !empty(_GCC_REQD:M${_pattern_}) | | 294 | . if !empty(_GCC_REQD:M${_pattern_}) |
304 | _NEED_GCC2= yes | | 295 | _NEED_GCC2= yes |
305 | . endif | | 296 | . endif |
306 | .endfor | | 297 | .endfor |
307 | _NEED_GCC3?= no | | 298 | _NEED_GCC3?= no |
308 | .for _pattern_ in ${_GCC3_PATTERNS} | | 299 | .for _pattern_ in ${_GCC3_PATTERNS} |
309 | . if !empty(_GCC_REQD:M${_pattern_}) | | 300 | . if !empty(_GCC_REQD:M${_pattern_}) |
310 | _NEED_GCC3= yes | | 301 | _NEED_GCC3= yes |
311 | . endif | | 302 | . endif |
312 | .endfor | | 303 | .endfor |
313 | _NEED_GCC34?= no | | 304 | _NEED_GCC34?= no |
314 | .for _pattern_ in ${_GCC34_PATTERNS} | | 305 | .for _pattern_ in ${_GCC34_PATTERNS} |
315 | . if !empty(_GCC_REQD:M${_pattern_}) | | 306 | . if !empty(_GCC_REQD:M${_pattern_}) |
316 | _NEED_GCC34= yes | | 307 | _NEED_GCC34= yes |
317 | . endif | | 308 | . endif |
318 | .endfor | | 309 | .endfor |
319 | _NEED_GCC44?= no | | 310 | _NEED_GCC44?= no |
320 | .for _pattern_ in ${_GCC44_PATTERNS} | | 311 | .for _pattern_ in ${_GCC44_PATTERNS} |
321 | . if !empty(_GCC_REQD:M${_pattern_}) | | 312 | . if !empty(_GCC_REQD:M${_pattern_}) |
322 | _NEED_GCC44= yes | | 313 | _NEED_GCC44= yes |
323 | . endif | | 314 | . endif |
324 | .endfor | | 315 | .endfor |
325 | _NEED_GCC48?= no | | | |
326 | .for _pattern_ in ${_GCC48_PATTERNS} | | | |
327 | . if !empty(_GCC_REQD:M${_pattern_}) | | | |
328 | _NEED_GCC48= yes | | | |
329 | . endif | | | |
330 | .endfor | | | |
331 | _NEED_GCC49?= no | | | |
332 | .for _pattern_ in ${_GCC49_PATTERNS} | | | |
333 | . if !empty(_GCC_REQD:M${_pattern_}) | | | |
334 | _NEED_GCC49= yes | | | |
335 | . endif | | | |
336 | .endfor | | | |
337 | _NEED_GCC5?= no | | | |
338 | .for _pattern_ in ${_GCC5_PATTERNS} | | | |
339 | . if !empty(_GCC_REQD:M${_pattern_}) | | | |
340 | _NEED_GCC5= yes | | | |
341 | . endif | | | |
342 | .endfor | | | |
343 | _NEED_GCC6?= no | | 316 | _NEED_GCC6?= no |
344 | .for _pattern_ in ${_GCC6_PATTERNS} | | 317 | .for _pattern_ in ${_GCC6_PATTERNS} |
345 | . if !empty(_GCC_REQD:M${_pattern_}) | | 318 | . if !empty(_GCC_REQD:M${_pattern_}) |
346 | _NEED_GCC6= yes | | 319 | _NEED_GCC6= yes |
347 | . endif | | 320 | . endif |
348 | .endfor | | 321 | .endfor |
349 | _NEED_GCC7?= no | | 322 | _NEED_GCC7?= no |
350 | .for _pattern_ in ${_GCC7_PATTERNS} | | 323 | .for _pattern_ in ${_GCC7_PATTERNS} |
351 | . if !empty(_GCC_REQD:M${_pattern_}) | | 324 | . if !empty(_GCC_REQD:M${_pattern_}) |
352 | _NEED_GCC7= yes | | 325 | _NEED_GCC7= yes |
353 | . endif | | 326 | . endif |
354 | .endfor | | 327 | .endfor |
355 | _NEED_GCC8?= no | | 328 | _NEED_GCC8?= no |
356 | .for _pattern_ in ${_GCC8_PATTERNS} | | 329 | .for _pattern_ in ${_GCC8_PATTERNS} |
357 | . if !empty(_GCC_REQD:M${_pattern_}) | | 330 | . if !empty(_GCC_REQD:M${_pattern_}) |
358 | _NEED_GCC8= yes | | 331 | _NEED_GCC8= yes |
359 | . endif | | 332 | . endif |
360 | .endfor | | 333 | .endfor |
361 | _NEED_GCC9?= no | | 334 | _NEED_GCC9?= no |
362 | .for _pattern_ in ${_GCC9_PATTERNS} | | 335 | .for _pattern_ in ${_GCC9_PATTERNS} |
363 | . if !empty(_GCC_REQD:M${_pattern_}) | | 336 | . if !empty(_GCC_REQD:M${_pattern_}) |
364 | _NEED_GCC9= yes | | 337 | _NEED_GCC9= yes |
365 | . endif | | 338 | . endif |
366 | .endfor | | 339 | .endfor |
367 | _NEED_GCC10?= no | | 340 | _NEED_GCC10?= no |
368 | .for _pattern_ in ${_GCC10_PATTERNS} | | 341 | .for _pattern_ in ${_GCC10_PATTERNS} |
369 | . if !empty(_GCC_REQD:M${_pattern_}) | | 342 | . if !empty(_GCC_REQD:M${_pattern_}) |
370 | _NEED_GCC10= yes | | 343 | _NEED_GCC10= yes |
371 | . endif | | 344 | . endif |
372 | .endfor | | 345 | .endfor |
373 | _NEED_GCC_AUX?= no | | 346 | _NEED_GCC_AUX?= no |
374 | .for _pattern_ in ${_GCC_AUX_PATTERNS} | | 347 | .for _pattern_ in ${_GCC_AUX_PATTERNS} |
375 | . if !empty(_GCC_REQD:M${_pattern_}) | | 348 | . if !empty(_GCC_REQD:M${_pattern_}) |
376 | _NEED_GCC_AUX= yes | | 349 | _NEED_GCC_AUX= yes |
377 | _NEED_NEWER_GCC=NO | | 350 | _NEED_NEWER_GCC=NO |
378 | . endif | | 351 | . endif |
379 | .endfor | | 352 | .endfor |
380 | .if !empty(_NEED_GCC2:M[nN][oO]) && !empty(_NEED_GCC3:M[nN][oO]) && \ | | 353 | .if !empty(_NEED_GCC2:M[nN][oO]) && !empty(_NEED_GCC3:M[nN][oO]) && \ |
381 | !empty(_NEED_GCC34:M[nN][oO]) && !empty(_NEED_GCC44:M[nN][oO]) && \ | | 354 | !empty(_NEED_GCC34:M[nN][oO]) && !empty(_NEED_GCC44:M[nN][oO]) && \ |
382 | !empty(_NEED_GCC48:M[nN][oO]) && !empty(_NEED_GCC49:M[nN][oO]) && \ | | 355 | !empty(_NEED_GCC48:M[nN][oO]) && !empty(_NEED_GCC49:M[nN][oO]) && \ |
383 | !empty(_NEED_GCC5:M[nN][oO]) && !empty(_NEED_GCC6:M[nN][oO]) && \ | | 356 | !empty(_NEED_GCC5:M[nN][oO]) && !empty(_NEED_GCC6:M[nN][oO]) && \ |
384 | !empty(_NEED_GCC7:M[nN][oO]) && !empty(_NEED_GCC8:M[nN][oO]) && \ | | 357 | !empty(_NEED_GCC7:M[nN][oO]) && !empty(_NEED_GCC8:M[nN][oO]) && \ |
385 | !empty(_NEED_GCC9:M[nN][oO]) && !empty(_NEED_GCC10:M[nN][oO]) && \ | | 358 | !empty(_NEED_GCC9:M[nN][oO]) && !empty(_NEED_GCC10:M[nN][oO]) && \ |
386 | !empty(_NEED_GCC_AUX:M[nN][oO]) | | 359 | !empty(_NEED_GCC_AUX:M[nN][oO]) |
387 | _NEED_GCC8= yes | | 360 | _NEED_GCC8= yes |
388 | .endif | | 361 | .endif |
389 | | | 362 | |
390 | # Assume by default that GCC will only provide a C compiler. | | 363 | # Assume by default that GCC will only provide a C compiler. |
391 | LANGUAGES.gcc?= c | | 364 | LANGUAGES.gcc?= c |
392 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) | | 365 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) |
393 | LANGUAGES.gcc= c c++ fortran77 objc | | 366 | LANGUAGES.gcc= c c++ fortran77 objc |
394 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) | | 367 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) |
395 | LANGUAGES.gcc= c c++ fortran77 java objc | | 368 | LANGUAGES.gcc= c c++ fortran77 java objc |
396 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) | | 369 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) |
397 | LANGUAGES.gcc= c c++ fortran77 objc | | 370 | LANGUAGES.gcc= c c++ fortran77 objc |
398 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) | | 371 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) |
399 | LANGUAGES.gcc= c c++ fortran fortran77 java objc | | 372 | LANGUAGES.gcc= c c++ fortran fortran77 java objc |
400 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) | | 373 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) |
401 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 374 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
402 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) | | 375 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) |
403 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 376 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
404 | .elif !empty(_NEED_GCC5:M[yY][eE][sS]) | | 377 | .elif !empty(_NEED_GCC5:M[yY][eE][sS]) |
405 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 378 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
406 | .elif !empty(_NEED_GCC6:M[yY][eE][sS]) | | 379 | .elif !empty(_NEED_GCC6:M[yY][eE][sS]) |
407 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 380 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
408 | .elif !empty(_NEED_GCC7:M[yY][eE][sS]) | | 381 | .elif !empty(_NEED_GCC7:M[yY][eE][sS]) |
409 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 382 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
410 | .elif !empty(_NEED_GCC8:M[yY][eE][sS]) | | 383 | .elif !empty(_NEED_GCC8:M[yY][eE][sS]) |
411 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 384 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
412 | .elif !empty(_NEED_GCC9:M[yY][eE][sS]) | | 385 | .elif !empty(_NEED_GCC9:M[yY][eE][sS]) |
413 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 386 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
414 | .elif !empty(_NEED_GCC10:M[yY][eE][sS]) | | 387 | .elif !empty(_NEED_GCC10:M[yY][eE][sS]) |
415 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ | | 388 | LANGUAGES.gcc= c c++ fortran fortran77 go java objc obj-c++ |
416 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) | | 389 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) |
417 | LANGUAGES.gcc= c c++ fortran fortran77 objc ada | | 390 | LANGUAGES.gcc= c c++ fortran fortran77 objc ada |
418 | .endif | | 391 | .endif |
419 | _LANGUAGES.gcc= # empty | | 392 | _LANGUAGES.gcc= # empty |
420 | .for _lang_ in ${USE_LANGUAGES} | | 393 | .for _lang_ in ${USE_LANGUAGES} |
421 | _LANGUAGES.gcc+= ${LANGUAGES.gcc:M${_lang_}} | | 394 | _LANGUAGES.gcc+= ${LANGUAGES.gcc:M${_lang_}} |
422 | .endfor | | 395 | .endfor |
423 | | | 396 | |
424 | _WRAP_EXTRA_ARGS.cc+= -fcommon | | 397 | _WRAP_EXTRA_ARGS.cc+= -fcommon |
425 | CWRAPPERS_PREPEND.cc+= -fcommon | | 398 | CWRAPPERS_PREPEND.cc+= -fcommon |
426 | | | 399 | |
427 | .if !empty(USE_LANGUAGES:Mc99) | | 400 | .if !empty(USE_LANGUAGES:Mc99) |
428 | _WRAP_EXTRA_ARGS.CC+= -std=gnu99 | | 401 | _WRAP_EXTRA_ARGS.CC+= -std=gnu99 |
429 | CWRAPPERS_APPEND.cc+= -std=gnu99 | | 402 | CWRAPPERS_APPEND.cc+= -std=gnu99 |
430 | .endif | | 403 | .endif |
431 | | | 404 | |
432 | .if ${OPSYS} == "NetBSD" | | 405 | .if ${OPSYS} == "NetBSD" |
433 | _MKPIE_CFLAGS.gcc= -fPIC | | 406 | _MKPIE_CFLAGS.gcc= -fPIC |
434 | # XXX for executables it should be: | | 407 | # XXX for executables it should be: |
435 | #_MKPIE_CFLAGS.gcc= -fPIE | | 408 | #_MKPIE_CFLAGS.gcc= -fPIE |
436 | # XXX for libraries a sink wrapper around gcc is required and used instead | | 409 | # XXX for libraries a sink wrapper around gcc is required and used instead |
437 | _MKPIE_LDFLAGS.gcc= -pie | | 410 | _MKPIE_LDFLAGS.gcc= -pie |
438 | .endif | | 411 | .endif |
439 | | | 412 | |
440 | .if ${_PKGSRC_MKPIE} == "yes" | | 413 | .if ${_PKGSRC_MKPIE} == "yes" |
441 | _GCC_CFLAGS+= ${_MKPIE_CFLAGS.gcc} | | 414 | _GCC_CFLAGS+= ${_MKPIE_CFLAGS.gcc} |
442 | #_GCC_LDFLAGS+= ${_MKPIE_LDFLAGS.gcc} | | 415 | #_GCC_LDFLAGS+= ${_MKPIE_LDFLAGS.gcc} |
443 | CWRAPPERS_APPEND.cc+= ${_MKPIE_CFLAGS.gcc} | | 416 | CWRAPPERS_APPEND.cc+= ${_MKPIE_CFLAGS.gcc} |
444 | CWRAPPERS_APPEND.cxx+= ${_MKPIE_CFLAGS.gcc} | | 417 | CWRAPPERS_APPEND.cxx+= ${_MKPIE_CFLAGS.gcc} |
445 | # this differs for libraries and executables (handled in mk/cwrappers.mk) | | 418 | # this differs for libraries and executables (handled in mk/cwrappers.mk) |
446 | # CWRAPPERS_APPEND.ld+= ${_MKPIE_LDFLAGS.gcc} | | 419 | # CWRAPPERS_APPEND.ld+= ${_MKPIE_LDFLAGS.gcc} |
447 | .endif | | 420 | .endif |
448 | | | 421 | |
449 | .if ${_PKGSRC_MKREPRO} == "yes" | | 422 | .if ${_PKGSRC_MKREPRO} == "yes" |
450 | .export WRKDIR | | 423 | .export WRKDIR |
451 | # XXX the dollar sign should not be expanded by the shell | | 424 | # XXX the dollar sign should not be expanded by the shell |
452 | _GCC_CFLAGS+= -fdebug-prefix-map=$$$$WRKDIR/= | | 425 | _GCC_CFLAGS+= -fdebug-prefix-map=$$$$WRKDIR/= |
453 | .endif | | 426 | .endif |
454 | | | 427 | |
455 | .if ${_PKGSRC_MKREPRO} == "yes" | | 428 | .if ${_PKGSRC_MKREPRO} == "yes" |
456 | _GCC_CFLAGS+= ${_MKREPRO_CFLAGS.gcc} | | 429 | _GCC_CFLAGS+= ${_MKREPRO_CFLAGS.gcc} |
457 | CWRAPPERS_APPEND.cc+= ${_MKREPRO_CFLAGS.gcc} | | 430 | CWRAPPERS_APPEND.cc+= ${_MKREPRO_CFLAGS.gcc} |
458 | .endif | | 431 | .endif |
459 | | | 432 | |
460 | # The user can choose the level of FORTIFY. | | 433 | # The user can choose the level of FORTIFY. |
461 | .if ${PKGSRC_USE_FORTIFY} == "weak" | | 434 | .if ${PKGSRC_USE_FORTIFY} == "weak" |
462 | _FORTIFY_CFLAGS= -D_FORTIFY_SOURCE=1 | | 435 | _FORTIFY_CFLAGS= -D_FORTIFY_SOURCE=1 |
463 | .else | | 436 | .else |
464 | _FORTIFY_CFLAGS= -D_FORTIFY_SOURCE=2 | | 437 | _FORTIFY_CFLAGS= -D_FORTIFY_SOURCE=2 |
465 | .endif | | 438 | .endif |
466 | | | 439 | |
467 | .if ${_PKGSRC_USE_FORTIFY} == "yes" | | 440 | .if ${_PKGSRC_USE_FORTIFY} == "yes" |
468 | _GCC_CFLAGS+= ${_FORTIFY_CFLAGS} | | 441 | _GCC_CFLAGS+= ${_FORTIFY_CFLAGS} |
469 | CWRAPPERS_APPEND.cc+= ${_FORTIFY_CFLAGS} | | 442 | CWRAPPERS_APPEND.cc+= ${_FORTIFY_CFLAGS} |
470 | .endif | | 443 | .endif |
471 | | | 444 | |
472 | # The user can choose the level of RELRO. | | 445 | # The user can choose the level of RELRO. |
473 | .if ${PKGSRC_USE_RELRO} == "partial" | | 446 | .if ${PKGSRC_USE_RELRO} == "partial" |
474 | _RELRO_LDFLAGS= -Wl,-z,relro | | 447 | _RELRO_LDFLAGS= -Wl,-z,relro |
475 | .else | | 448 | .else |
476 | _RELRO_LDFLAGS= -Wl,-z,relro -Wl,-z,now | | 449 | _RELRO_LDFLAGS= -Wl,-z,relro -Wl,-z,now |
477 | .endif | | 450 | .endif |
478 | | | 451 | |
479 | _STACK_CHECK_CFLAGS= -fstack-check | | 452 | _STACK_CHECK_CFLAGS= -fstack-check |
480 | | | 453 | |
481 | .if ${_PKGSRC_USE_STACK_CHECK} == "yes" | | 454 | .if ${_PKGSRC_USE_STACK_CHECK} == "yes" |
482 | _GCC_CFLAGS+= ${_STACK_CHECK_CFLAGS} | | 455 | _GCC_CFLAGS+= ${_STACK_CHECK_CFLAGS} |
483 | .endif | | 456 | .endif |
484 | | | 457 | |
485 | _CTF_CFLAGS= -gdwarf-2 | | 458 | _CTF_CFLAGS= -gdwarf-2 |
486 | | | 459 | |
487 | # GCC has this annoying behaviour where it advocates in a multi-line | | 460 | # GCC has this annoying behaviour where it advocates in a multi-line |
488 | # banner the use of "#include" over "#import" when including headers. | | 461 | # banner the use of "#include" over "#import" when including headers. |
489 | # This generates a huge number of warnings when building practically all | | 462 | # This generates a huge number of warnings when building practically all |
490 | # Objective-C code where it is convention to use "#import". Suppress | | 463 | # Objective-C code where it is convention to use "#import". Suppress |
491 | # the warning if we're building Objective-C code using GCC. | | 464 | # the warning if we're building Objective-C code using GCC. |
492 | # | | 465 | # |
493 | .if !empty(_LANGUAGES.gcc:Mobjc) | | 466 | .if !empty(_LANGUAGES.gcc:Mobjc) |
494 | CFLAGS+= -Wno-import | | 467 | CFLAGS+= -Wno-import |
495 | .endif | | 468 | .endif |
496 | | | 469 | |
497 | CFLAGS+= ${_GCC_CFLAGS} | | 470 | CFLAGS+= ${_GCC_CFLAGS} |
498 | | | 471 | |
499 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) | | 472 | .if !empty(_NEED_GCC2:M[yY][eE][sS]) |
500 | # | | 473 | # |
501 | # We require gcc-2.x in the lang/gcc2 directory. | | 474 | # We require gcc-2.x in the lang/gcc2 directory. |
502 | # | | 475 | # |
503 | _GCC_PKGBASE= gcc2 | | 476 | _GCC_PKGBASE= gcc2 |
504 | . if ${PKGPATH} == lang/gcc2 | | 477 | . if ${PKGPATH} == lang/gcc2 |
505 | _IGNORE_GCC= yes | | 478 | _IGNORE_GCC= yes |
506 | MAKEFLAGS+= _IGNORE_GCC=yes | | 479 | MAKEFLAGS+= _IGNORE_GCC=yes |
507 | . endif | | 480 | . endif |
508 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 481 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
509 | _GCC_PKGSRCDIR= ../../lang/gcc2 | | 482 | _GCC_PKGSRCDIR= ../../lang/gcc2 |
510 | _GCC_DEPENDENCY= gcc2>=${_GCC_REQD}:../../lang/gcc2 | | 483 | _GCC_DEPENDENCY= gcc2>=${_GCC_REQD}:../../lang/gcc2 |
511 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 484 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
512 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 485 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
513 | !empty(_LANGUAGES.gcc:Mobjc) | | 486 | !empty(_LANGUAGES.gcc:Mobjc) |
514 | _USE_GCC_SHLIB?= yes | | 487 | _USE_GCC_SHLIB?= yes |
515 | . endif | | 488 | . endif |
516 | . endif | | 489 | . endif |
517 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) | | 490 | .elif !empty(_NEED_GCC3:M[yY][eE][sS]) |
518 | # | | 491 | # |
519 | # We require gcc-3.x in the lang/gcc3-* directories. | | 492 | # We require gcc-3.x in the lang/gcc3-* directories. |
520 | # | | 493 | # |
521 | _GCC_PKGBASE= gcc3-c | | 494 | _GCC_PKGBASE= gcc3-c |
522 | . if ${PKGPATH} == lang/gcc3-c | | 495 | . if ${PKGPATH} == lang/gcc3-c |
523 | _IGNORE_GCC= yes | | 496 | _IGNORE_GCC= yes |
524 | MAKEFLAGS+= _IGNORE_GCC=yes | | 497 | MAKEFLAGS+= _IGNORE_GCC=yes |
525 | . endif | | 498 | . endif |
526 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc:Mc) | | 499 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc:Mc) |
527 | _GCC_PKGSRCDIR= ../../lang/gcc3-c | | 500 | _GCC_PKGSRCDIR= ../../lang/gcc3-c |
528 | _GCC_DEPENDENCY= gcc3-c>=${_GCC_REQD}:../../lang/gcc3-c | | 501 | _GCC_DEPENDENCY= gcc3-c>=${_GCC_REQD}:../../lang/gcc3-c |
529 | . endif | | 502 | . endif |
530 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) | | 503 | .elif !empty(_NEED_GCC34:M[yY][eE][sS]) |
531 | # | | 504 | # |
532 | # We require gcc-3.4.x in the lang/gcc34 directory. | | 505 | # We require gcc-3.4.x in the lang/gcc34 directory. |
533 | # | | 506 | # |
534 | _GCC_PKGBASE= gcc34 | | 507 | _GCC_PKGBASE= gcc34 |
535 | . if ${PKGPATH} == lang/gcc34 | | 508 | . if ${PKGPATH} == lang/gcc34 |
536 | _IGNORE_GCC= yes | | 509 | _IGNORE_GCC= yes |
537 | MAKEFLAGS+= _IGNORE_GCC=yes | | 510 | MAKEFLAGS+= _IGNORE_GCC=yes |
538 | . endif | | 511 | . endif |
539 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 512 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
540 | _GCC_PKGSRCDIR= ../../lang/gcc34 | | 513 | _GCC_PKGSRCDIR= ../../lang/gcc34 |
541 | _GCC_DEPENDENCY= gcc34>=${_GCC_REQD}:../../lang/gcc34 | | 514 | _GCC_DEPENDENCY= gcc34>=${_GCC_REQD}:../../lang/gcc34 |
542 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 515 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
543 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 516 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
544 | !empty(_LANGUAGES.gcc:Mobjc) | | 517 | !empty(_LANGUAGES.gcc:Mobjc) |
545 | _USE_GCC_SHLIB?= yes | | 518 | _USE_GCC_SHLIB?= yes |
546 | . endif | | 519 | . endif |
547 | . endif | | 520 | . endif |
548 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) | | 521 | .elif !empty(_NEED_GCC44:M[yY][eE][sS]) |
549 | # | | 522 | # |
550 | # We require gcc-4.4.x in the lang/gcc44 directory. | | 523 | # We require gcc-4.4.x in the lang/gcc44 directory. |
551 | # | | 524 | # |
552 | _GCC_PKGBASE= gcc44 | | 525 | _GCC_PKGBASE= gcc44 |
553 | . if ${PKGPATH} == lang/gcc44 | | 526 | . if ${PKGPATH} == lang/gcc44 |
554 | _IGNORE_GCC= yes | | 527 | _IGNORE_GCC= yes |
555 | MAKEFLAGS+= _IGNORE_GCC=yes | | 528 | MAKEFLAGS+= _IGNORE_GCC=yes |
556 | . endif | | 529 | . endif |
557 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 530 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
558 | _GCC_PKGSRCDIR= ../../lang/gcc44 | | 531 | _GCC_PKGSRCDIR= ../../lang/gcc44 |
559 | _GCC_DEPENDENCY= gcc44>=${_GCC_REQD}:../../lang/gcc44 | | 532 | _GCC_DEPENDENCY= gcc44>=${_GCC_REQD}:../../lang/gcc44 |
560 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 533 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
561 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 534 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
562 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 535 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
563 | !empty(_LANGUAGES.gcc:Mobjc) | | 536 | !empty(_LANGUAGES.gcc:Mobjc) |
564 | _USE_GCC_SHLIB?= yes | | 537 | _USE_GCC_SHLIB?= yes |
565 | . endif | | 538 | . endif |
566 | . endif | | 539 | . endif |
567 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) | | 540 | .elif !empty(_NEED_GCC48:M[yY][eE][sS]) |
568 | # | | 541 | # |
569 | # We require gcc-4.8.x in the lang/gcc48 directory. | | 542 | # We require gcc-4.8.x in the lang/gcc48 directory. |
570 | # | | 543 | # |
571 | _GCC_PKGBASE= gcc48 | | 544 | _GCC_PKGBASE= gcc48 |
572 | . if ${PKGPATH} == lang/gcc48 | | 545 | . if ${PKGPATH} == lang/gcc48 |
573 | _IGNORE_GCC= yes | | 546 | _IGNORE_GCC= yes |
574 | MAKEFLAGS+= _IGNORE_GCC=yes | | 547 | MAKEFLAGS+= _IGNORE_GCC=yes |
575 | . endif | | 548 | . endif |
576 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 549 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
577 | _GCC_PKGSRCDIR= ../../lang/gcc48 | | 550 | _GCC_PKGSRCDIR= ../../lang/gcc48 |
578 | _GCC_DEPENDENCY= gcc48>=${_GCC_REQD}:../../lang/gcc48 | | 551 | _GCC_DEPENDENCY= gcc48>=${_GCC_REQD}:../../lang/gcc48 |
579 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 552 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
580 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 553 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
581 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 554 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
582 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 555 | !empty(_LANGUAGES.gcc:Mgo) || \ |
583 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 556 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
584 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 557 | !empty(_LANGUAGES.gcc:Mobj-c++) |
585 | _USE_GCC_SHLIB?= yes | | 558 | _USE_GCC_SHLIB?= yes |
586 | . endif | | 559 | . endif |
587 | . endif | | 560 | . endif |
588 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) | | 561 | .elif !empty(_NEED_GCC49:M[yY][eE][sS]) |
589 | # | | 562 | # |
590 | # We require gcc-4.9.x in the lang/gcc49-* directory. | | 563 | # We require gcc-4.9.x in the lang/gcc49-* directory. |
591 | # | | 564 | # |
592 | _GCC_PKGBASE= gcc49 | | 565 | _GCC_PKGBASE= gcc49 |
593 | . if ${PKGPATH} == lang/gcc49 | | 566 | . if ${PKGPATH} == lang/gcc49 |
594 | _IGNORE_GCC= yes | | 567 | _IGNORE_GCC= yes |
595 | MAKEFLAGS+= _IGNORE_GCC=yes | | 568 | MAKEFLAGS+= _IGNORE_GCC=yes |
596 | . endif | | 569 | . endif |
597 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 570 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
598 | _GCC_PKGSRCDIR= ../../lang/gcc49 | | 571 | _GCC_PKGSRCDIR= ../../lang/gcc49 |
599 | _GCC_DEPENDENCY= gcc49>=${_GCC_REQD}:../../lang/gcc49 | | 572 | _GCC_DEPENDENCY= gcc49>=${_GCC_REQD}:../../lang/gcc49 |
600 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 573 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
601 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 574 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
602 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 575 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
603 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 576 | !empty(_LANGUAGES.gcc:Mgo) || \ |
604 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 577 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
605 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 578 | !empty(_LANGUAGES.gcc:Mobj-c++) |
606 | _USE_GCC_SHLIB?= yes | | 579 | _USE_GCC_SHLIB?= yes |
607 | . endif | | 580 | . endif |
608 | . endif | | 581 | . endif |
609 | .elif !empty(_NEED_GCC5:M[yY][eE][sS]) | | 582 | .elif !empty(_NEED_GCC5:M[yY][eE][sS]) |
610 | # | | 583 | # |
611 | # We require gcc-5.x in the lang/gcc5-* directory. | | 584 | # We require gcc-5.x in the lang/gcc5-* directory. |
612 | # | | 585 | # |
613 | _GCC_PKGBASE= gcc5 | | 586 | _GCC_PKGBASE= gcc5 |
614 | . if ${PKGPATH} == lang/gcc5 | | 587 | . if ${PKGPATH} == lang/gcc5 |
615 | _IGNORE_GCC= yes | | 588 | _IGNORE_GCC= yes |
616 | MAKEFLAGS+= _IGNORE_GCC=yes | | 589 | MAKEFLAGS+= _IGNORE_GCC=yes |
617 | . endif | | 590 | . endif |
618 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 591 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
619 | _GCC_PKGSRCDIR= ../../lang/gcc5 | | 592 | _GCC_PKGSRCDIR= ../../lang/gcc5 |
620 | _GCC_DEPENDENCY= gcc5>=${_GCC_REQD}:../../lang/gcc5 | | 593 | _GCC_DEPENDENCY= gcc5>=${_GCC_REQD}:../../lang/gcc5 |
621 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 594 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
622 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 595 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
623 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 596 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
624 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 597 | !empty(_LANGUAGES.gcc:Mgo) || \ |
625 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 598 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
626 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 599 | !empty(_LANGUAGES.gcc:Mobj-c++) |
627 | _USE_GCC_SHLIB?= yes | | 600 | _USE_GCC_SHLIB?= yes |
628 | . endif | | 601 | . endif |
629 | . endif | | 602 | . endif |
630 | .elif !empty(_NEED_GCC6:M[yY][eE][sS]) | | 603 | .elif !empty(_NEED_GCC6:M[yY][eE][sS]) |
631 | # | | 604 | # |
632 | # We require gcc-6.x in the lang/gcc6-* directory. | | 605 | # We require gcc-6.x in the lang/gcc6-* directory. |
633 | # | | 606 | # |
634 | _GCC_PKGBASE= gcc6 | | 607 | _GCC_PKGBASE= gcc6 |
635 | . if ${PKGPATH} == lang/gcc6 | | 608 | . if ${PKGPATH} == lang/gcc6 |
636 | _IGNORE_GCC= yes | | 609 | _IGNORE_GCC= yes |
637 | MAKEFLAGS+= _IGNORE_GCC=yes | | 610 | MAKEFLAGS+= _IGNORE_GCC=yes |
638 | . endif | | 611 | . endif |
639 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 612 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
640 | _GCC_PKGSRCDIR= ../../lang/gcc6 | | 613 | _GCC_PKGSRCDIR= ../../lang/gcc6 |
641 | _GCC_DEPENDENCY= gcc6>=${_GCC_REQD}:../../lang/gcc6 | | 614 | _GCC_DEPENDENCY= gcc6>=${_GCC_REQD}:../../lang/gcc6 |
642 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 615 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
643 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 616 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
644 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 617 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
645 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 618 | !empty(_LANGUAGES.gcc:Mgo) || \ |
646 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 619 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
647 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 620 | !empty(_LANGUAGES.gcc:Mobj-c++) |
648 | _USE_GCC_SHLIB?= yes | | 621 | _USE_GCC_SHLIB?= yes |
649 | . endif | | 622 | . endif |
650 | . endif | | 623 | . endif |
651 | .elif !empty(_NEED_GCC7:M[yY][eE][sS]) | | 624 | .elif !empty(_NEED_GCC7:M[yY][eE][sS]) |
652 | # | | 625 | # |
653 | # We require gcc-7.x in the lang/gcc7-* directory. | | 626 | # We require gcc-7.x in the lang/gcc7-* directory. |
654 | # | | 627 | # |
655 | _GCC_PKGBASE= gcc7 | | 628 | _GCC_PKGBASE= gcc7 |
656 | . if ${PKGPATH} == lang/gcc7 | | 629 | . if ${PKGPATH} == lang/gcc7 |
657 | _IGNORE_GCC= yes | | 630 | _IGNORE_GCC= yes |
658 | MAKEFLAGS+= _IGNORE_GCC=yes | | 631 | MAKEFLAGS+= _IGNORE_GCC=yes |
659 | . endif | | 632 | . endif |
660 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 633 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
661 | _GCC_PKGSRCDIR= ../../lang/gcc7 | | 634 | _GCC_PKGSRCDIR= ../../lang/gcc7 |
662 | _GCC_DEPENDENCY= gcc7>=${_GCC_REQD}:../../lang/gcc7 | | 635 | _GCC_DEPENDENCY= gcc7>=${_GCC_REQD}:../../lang/gcc7 |
663 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 636 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
664 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 637 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
665 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 638 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
666 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 639 | !empty(_LANGUAGES.gcc:Mgo) || \ |
667 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 640 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
668 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 641 | !empty(_LANGUAGES.gcc:Mobj-c++) |
669 | _USE_GCC_SHLIB?= yes | | 642 | _USE_GCC_SHLIB?= yes |
670 | . endif | | 643 | . endif |
671 | . endif | | 644 | . endif |
672 | .elif !empty(_NEED_GCC8:M[yY][eE][sS]) | | 645 | .elif !empty(_NEED_GCC8:M[yY][eE][sS]) |
673 | # | | 646 | # |
674 | # We require gcc-8.x in the lang/gcc8-* directory. | | 647 | # We require gcc-8.x in the lang/gcc8-* directory. |
675 | # | | 648 | # |
676 | _GCC_PKGBASE= gcc8 | | 649 | _GCC_PKGBASE= gcc8 |
677 | . if ${PKGPATH} == lang/gcc8 | | 650 | . if ${PKGPATH} == lang/gcc8 |
678 | _IGNORE_GCC= yes | | 651 | _IGNORE_GCC= yes |
679 | MAKEFLAGS+= _IGNORE_GCC=yes | | 652 | MAKEFLAGS+= _IGNORE_GCC=yes |
680 | . endif | | 653 | . endif |
681 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 654 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
682 | _GCC_PKGSRCDIR= ../../lang/gcc8 | | 655 | _GCC_PKGSRCDIR= ../../lang/gcc8 |
683 | _GCC_DEPENDENCY= gcc8>=${_GCC_REQD}:../../lang/gcc8 | | 656 | _GCC_DEPENDENCY= gcc8>=${_GCC_REQD}:../../lang/gcc8 |
684 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 657 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
685 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 658 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
686 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 659 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
687 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 660 | !empty(_LANGUAGES.gcc:Mgo) || \ |
688 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 661 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
689 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 662 | !empty(_LANGUAGES.gcc:Mobj-c++) |
690 | _USE_GCC_SHLIB?= yes | | 663 | _USE_GCC_SHLIB?= yes |
691 | . endif | | 664 | . endif |
692 | . endif | | 665 | . endif |
693 | .elif !empty(_NEED_GCC9:M[yY][eE][sS]) | | 666 | .elif !empty(_NEED_GCC9:M[yY][eE][sS]) |
694 | # | | 667 | # |
695 | # We require gcc-9.x in the lang/gcc9-* directory. | | 668 | # We require gcc-9.x in the lang/gcc9-* directory. |
696 | # | | 669 | # |
697 | _GCC_PKGBASE= gcc9 | | 670 | _GCC_PKGBASE= gcc9 |
698 | . if ${PKGPATH} == lang/gcc9 | | 671 | . if ${PKGPATH} == lang/gcc9 |
699 | _IGNORE_GCC= yes | | 672 | _IGNORE_GCC= yes |
700 | MAKEFLAGS+= _IGNORE_GCC=yes | | 673 | MAKEFLAGS+= _IGNORE_GCC=yes |
701 | . endif | | 674 | . endif |
702 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 675 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
703 | _GCC_PKGSRCDIR= ../../lang/gcc9 | | 676 | _GCC_PKGSRCDIR= ../../lang/gcc9 |
704 | _GCC_DEPENDENCY= gcc9>=${_GCC_REQD}:../../lang/gcc9 | | 677 | _GCC_DEPENDENCY= gcc9>=${_GCC_REQD}:../../lang/gcc9 |
705 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 678 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
706 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 679 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
707 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 680 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
708 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 681 | !empty(_LANGUAGES.gcc:Mgo) || \ |
709 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 682 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
710 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 683 | !empty(_LANGUAGES.gcc:Mobj-c++) |
711 | _USE_GCC_SHLIB?= yes | | 684 | _USE_GCC_SHLIB?= yes |
712 | . endif | | 685 | . endif |
713 | . endif | | 686 | . endif |
714 | .elif !empty(_NEED_GCC10:M[yY][eE][sS]) | | 687 | .elif !empty(_NEED_GCC10:M[yY][eE][sS]) |
715 | # | | 688 | # |
716 | # We require gcc-10.x in the lang/gcc10-* directory. | | 689 | # We require gcc-10.x in the lang/gcc10-* directory. |
717 | # | | 690 | # |
718 | _GCC_PKGBASE= gcc10 | | 691 | _GCC_PKGBASE= gcc10 |
719 | . if ${PKGPATH} == lang/gcc10 | | 692 | . if ${PKGPATH} == lang/gcc10 |
720 | _IGNORE_GCC= yes | | 693 | _IGNORE_GCC= yes |
721 | MAKEFLAGS+= _IGNORE_GCC=yes | | 694 | MAKEFLAGS+= _IGNORE_GCC=yes |
722 | . endif | | 695 | . endif |
723 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 696 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
724 | _GCC_PKGSRCDIR= ../../lang/gcc10 | | 697 | _GCC_PKGSRCDIR= ../../lang/gcc10 |
725 | _GCC_DEPENDENCY= gcc10>=${_GCC_REQD}:../../lang/gcc10 | | 698 | _GCC_DEPENDENCY= gcc10>=${_GCC_REQD}:../../lang/gcc10 |
726 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 699 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
727 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 700 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
728 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 701 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
729 | !empty(_LANGUAGES.gcc:Mgo) || \ | | 702 | !empty(_LANGUAGES.gcc:Mgo) || \ |
730 | !empty(_LANGUAGES.gcc:Mobjc) || \ | | 703 | !empty(_LANGUAGES.gcc:Mobjc) || \ |
731 | !empty(_LANGUAGES.gcc:Mobj-c++) | | 704 | !empty(_LANGUAGES.gcc:Mobj-c++) |
732 | _USE_GCC_SHLIB?= yes | | 705 | _USE_GCC_SHLIB?= yes |
733 | . endif | | 706 | . endif |
734 | . endif | | 707 | . endif |
735 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) | | 708 | .elif !empty(_NEED_GCC_AUX:M[yY][eE][sS]) |
736 | # | | 709 | # |
737 | # We require Ada-capable compiler in the lang/gcc5-aux directory. | | 710 | # We require Ada-capable compiler in the lang/gcc5-aux directory. |
738 | # | | 711 | # |
739 | _GCC_PKGBASE= gcc5-aux | | 712 | _GCC_PKGBASE= gcc5-aux |
740 | . if ${PKGPATH} == lang/gcc5-aux | | 713 | . if ${PKGPATH} == lang/gcc5-aux |
741 | _IGNORE_GCC= yes | | 714 | _IGNORE_GCC= yes |
742 | MAKEFLAGS+= _IGNORE_GCC=yes | | 715 | MAKEFLAGS+= _IGNORE_GCC=yes |
743 | . endif | | 716 | . endif |
744 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) | | 717 | . if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) |
745 | _GCC_PKGSRCDIR= ../../lang/gcc5-aux | | 718 | _GCC_PKGSRCDIR= ../../lang/gcc5-aux |
746 | _GCC_DEPENDENCY= gcc5-aux>=${_GCC_REQD}:../../lang/gcc5-aux | | 719 | _GCC_DEPENDENCY= gcc5-aux>=${_GCC_REQD}:../../lang/gcc5-aux |
747 | . if !empty(_LANGUAGES.gcc:Mc++) || \ | | 720 | . if !empty(_LANGUAGES.gcc:Mc++) || \ |
748 | !empty(_LANGUAGES.gcc:Mfortran) || \ | | 721 | !empty(_LANGUAGES.gcc:Mfortran) || \ |
749 | !empty(_LANGUAGES.gcc:Mfortran77) || \ | | 722 | !empty(_LANGUAGES.gcc:Mfortran77) || \ |
750 | !empty(_LANGUAGES.gcc:Mada) || \ | | 723 | !empty(_LANGUAGES.gcc:Mada) || \ |
751 | !empty(_LANGUAGES.gcc:Mobjc) | | 724 | !empty(_LANGUAGES.gcc:Mobjc) |
752 | _USE_GCC_SHLIB?= yes | | 725 | _USE_GCC_SHLIB?= yes |
753 | . endif | | 726 | . endif |
754 | . endif | | 727 | . endif |
755 | .endif | | 728 | .endif |
756 | _GCC_DEPENDS= ${_GCC_PKGBASE}>=${_GCC_REQD} | | 729 | _GCC_DEPENDS= ${_GCC_PKGBASE}>=${_GCC_REQD} |
757 | | | 730 | |
758 | .if !empty(_NEED_GCC3:M[yY][eE][sS]) | | 731 | .if !empty(_NEED_GCC3:M[yY][eE][sS]) |
759 | . if ${PKGPATH} == "lang/gcc3-c++" | | 732 | . if ${PKGPATH} == "lang/gcc3-c++" |
760 | _IGNORE_GCC3CXX= yes | | 733 | _IGNORE_GCC3CXX= yes |
761 | MAKEFLAGS+= _IGNORE_GCC3CXX=yes | | 734 | MAKEFLAGS+= _IGNORE_GCC3CXX=yes |
762 | . endif | | 735 | . endif |
763 | . if !defined(_IGNORE_GCC3CXX) && !empty(_LANGUAGES.gcc:Mc++) | | 736 | . if !defined(_IGNORE_GCC3CXX) && !empty(_LANGUAGES.gcc:Mc++) |
764 | _GCC_PKGSRCDIR+= ../../lang/gcc3-c++ | | 737 | _GCC_PKGSRCDIR+= ../../lang/gcc3-c++ |
765 | _GCC_DEPENDENCY+= gcc3-c++>=${_GCC_REQD}:../../lang/gcc3-c++ | | 738 | _GCC_DEPENDENCY+= gcc3-c++>=${_GCC_REQD}:../../lang/gcc3-c++ |
766 | _USE_GCC_SHLIB?= yes | | 739 | _USE_GCC_SHLIB?= yes |
767 | . endif | | 740 | . endif |
768 | . if ${PKGPATH} == lang/gcc3-f77 | | 741 | . if ${PKGPATH} == lang/gcc3-f77 |
769 | _IGNORE_GCC3F77= yes | | 742 | _IGNORE_GCC3F77= yes |
770 | MAKEFLAGS+= _IGNORE_GCC3F77=yes | | 743 | MAKEFLAGS+= _IGNORE_GCC3F77=yes |
771 | . endif | | 744 | . endif |
772 | . if !defined(_IGNORE_GCC3F77) && !empty(_LANGUAGES.gcc:Mfortran77) | | 745 | . if !defined(_IGNORE_GCC3F77) && !empty(_LANGUAGES.gcc:Mfortran77) |
773 | _GCC_PKGSRCDIR+= ../../lang/gcc3-f77 | | 746 | _GCC_PKGSRCDIR+= ../../lang/gcc3-f77 |
774 | _GCC_DEPENDENCY+= gcc3-f77>=${_GCC_REQD}:../../lang/gcc3-f77 | | 747 | _GCC_DEPENDENCY+= gcc3-f77>=${_GCC_REQD}:../../lang/gcc3-f77 |
775 | _USE_GCC_SHLIB?= yes | | 748 | _USE_GCC_SHLIB?= yes |
776 | . endif | | 749 | . endif |
777 | . if ${PKGPATH} == lang/gcc3-objc | | 750 | . if ${PKGPATH} == lang/gcc3-objc |
778 | _IGNORE_GCC3OBJC= yes | | 751 | _IGNORE_GCC3OBJC= yes |
779 | MAKEFLAGS+= _IGNORE_GCC3OBJC=yes | | 752 | MAKEFLAGS+= _IGNORE_GCC3OBJC=yes |
780 | . endif | | 753 | . endif |
781 | . if !defined(_IGNORE_GCC3OBJC) && !empty(_LANGUAGES.gcc:Mobjc) | | 754 | . if !defined(_IGNORE_GCC3OBJC) && !empty(_LANGUAGES.gcc:Mobjc) |
782 | _GCC_PKGSRCDIR+= ../../lang/gcc3-objc | | 755 | _GCC_PKGSRCDIR+= ../../lang/gcc3-objc |
783 | _GCC_DEPENDENCY+= gcc3-objc>=${_GCC_REQD}:../../lang/gcc3-objc | | 756 | _GCC_DEPENDENCY+= gcc3-objc>=${_GCC_REQD}:../../lang/gcc3-objc |
784 | _USE_GCC_SHLIB?= yes | | 757 | _USE_GCC_SHLIB?= yes |
785 | . endif | | 758 | . endif |
786 | .endif | | 759 | .endif |
787 | | | 760 | |
788 | # When not using the GNU linker, gcc will always link shared libraries against | | 761 | # When not using the GNU linker, gcc will always link shared libraries against |
789 | # the shared version of libgcc, and so _USE_GCC_SHLIB needs to be enabled on | | 762 | # the shared version of libgcc, and so _USE_GCC_SHLIB needs to be enabled on |
790 | # platforms with non-GNU linkers, such as SunOS. | | 763 | # platforms with non-GNU linkers, such as SunOS. |
791 | # | | 764 | # |
792 | # However, we cannot simply do this by default as it will create circular | | 765 | # However, we cannot simply do this by default as it will create circular |
793 | # dependencies in packages which are required to build gcc itself, and so we | | 766 | # dependencies in packages which are required to build gcc itself, and so we |
794 | # enable it based on USE_LIBTOOL for the majority of packages, and support | | 767 | # enable it based on USE_LIBTOOL for the majority of packages, and support |
795 | # USE_GCC_RUNTIME for packages which create shared libraries but do not use | | 768 | # USE_GCC_RUNTIME for packages which create shared libraries but do not use |
796 | # libtool to do so. | | 769 | # libtool to do so. |
797 | # | | 770 | # |
798 | .if (${OPSYS} == "Darwin" || ${OPSYS} == "SunOS") && \ | | 771 | .if (${OPSYS} == "Darwin" || ${OPSYS} == "SunOS") && \ |
799 | (defined(USE_LIBTOOL) || defined(USE_GCC_RUNTIME)) | | 772 | (defined(USE_LIBTOOL) || defined(USE_GCC_RUNTIME)) |
800 | _USE_GCC_SHLIB= yes | | 773 | _USE_GCC_SHLIB= yes |
801 | .endif | | 774 | .endif |
802 | | | 775 | |
803 | .if !empty(USE_NATIVE_GCC:M[yY][eE][sS]) && !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) | | 776 | .if !empty(USE_NATIVE_GCC:M[yY][eE][sS]) && !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) |
804 | _USE_PKGSRC_GCC= no | | 777 | _USE_PKGSRC_GCC= no |
805 | .elif !empty(USE_PKGSRC_GCC:M[yY][eE][sS]) | | 778 | .elif !empty(USE_PKGSRC_GCC:M[yY][eE][sS]) |
806 | # For environments where there is an external gcc too, but pkgsrc | | 779 | # For environments where there is an external gcc too, but pkgsrc |
807 | # should use the pkgsrc one for consistency. | | 780 | # should use the pkgsrc one for consistency. |
808 | _USE_PKGSRC_GCC= yes | | 781 | _USE_PKGSRC_GCC= yes |
809 | .endif | | 782 | .endif |
810 | | | 783 | |
811 | .if defined(_IGNORE_GCC) | | 784 | .if defined(_IGNORE_GCC) |
812 | _USE_PKGSRC_GCC= NO | | 785 | _USE_PKGSRC_GCC= NO |
813 | .endif | | 786 | .endif |
814 | | | 787 | |
815 | .if !defined(_USE_PKGSRC_GCC) | | 788 | .if !defined(_USE_PKGSRC_GCC) |
816 | _USE_PKGSRC_GCC= YES | | 789 | _USE_PKGSRC_GCC= YES |
817 | . if !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) | | 790 | . if !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) |
818 | _GCC_TEST_DEPENDS= gcc>=${_GCC_REQD} | | 791 | _GCC_TEST_DEPENDS= gcc>=${_GCC_REQD} |
819 | _USE_PKGSRC_GCC!= \ | | 792 | _USE_PKGSRC_GCC!= \ |
820 | if ${PKG_ADMIN} pmatch '${_GCC_TEST_DEPENDS}' ${_GCC_PKG} 2>/dev/null; then \ | | 793 | if ${PKG_ADMIN} pmatch '${_GCC_TEST_DEPENDS}' ${_GCC_PKG} 2>/dev/null; then \ |
821 | ${ECHO} "NO"; \ | | 794 | ${ECHO} "NO"; \ |
822 | else \ | | 795 | else \ |
823 | ${ECHO} "YES"; \ | | 796 | ${ECHO} "YES"; \ |
824 | fi | | 797 | fi |
825 | . endif | | 798 | . endif |
826 | .endif | | 799 | .endif |
827 | | | 800 | |
828 | # Check if any of the versions of GCC in pkgsrc can satisfy the _GCC_REQD | | 801 | # Check if any of the versions of GCC in pkgsrc can satisfy the _GCC_REQD |
829 | # requirement. | | 802 | # requirement. |
830 | # | | 803 | # |
831 | .if !defined(_NEED_NEWER_GCC) | | 804 | .if !defined(_NEED_NEWER_GCC) |
832 | _PKGSRC_GCC_VERSION= ${_GCC_PKGBASE}-${_GCC_DIST_VERSION} | | 805 | _PKGSRC_GCC_VERSION= ${_GCC_PKGBASE}-${_GCC_DIST_VERSION} |
833 | _NEED_NEWER_GCC!= \ | | 806 | _NEED_NEWER_GCC!= \ |
834 | if ${PKG_ADMIN} pmatch '${_GCC_DEPENDS}' ${_PKGSRC_GCC_VERSION} 2>/dev/null; then \ | | 807 | if ${PKG_ADMIN} pmatch '${_GCC_DEPENDS}' ${_PKGSRC_GCC_VERSION} 2>/dev/null; then \ |
835 | ${ECHO} "NO"; \ | | 808 | ${ECHO} "NO"; \ |
836 | else \ | | 809 | else \ |
837 | ${ECHO} "YES"; \ | | 810 | ${ECHO} "YES"; \ |
838 | fi | | 811 | fi |
839 | #MAKEFLAGS+= _NEED_NEWER_GCC=${_NEED_NEWER_GCC} | | 812 | #MAKEFLAGS+= _NEED_NEWER_GCC=${_NEED_NEWER_GCC} |
840 | .endif | | 813 | .endif |
841 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && \ | | 814 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && \ |
842 | !empty(_NEED_NEWER_GCC:M[yY][eE][sS]) | | 815 | !empty(_NEED_NEWER_GCC:M[yY][eE][sS]) |
843 | PKG_FAIL_REASON+= "Unable to satisfy dependency: ${_GCC_DEPENDS}" | | 816 | PKG_FAIL_REASON+= "Unable to satisfy dependency: ${_GCC_DEPENDS}" |
844 | .endif | | 817 | .endif |
845 | | | 818 | |
846 | # GNU ld option used to set the rpath | | 819 | # GNU ld option used to set the rpath |
847 | _LINKER_RPATH_FLAG= -R | | 820 | _LINKER_RPATH_FLAG= -R |
848 | | | 821 | |
849 | # GCC passes rpath directives to the linker using "-Wl,-R". | | 822 | # GCC passes rpath directives to the linker using "-Wl,-R". |
850 | _COMPILER_RPATH_FLAG= -Wl,${_LINKER_RPATH_FLAG} | | 823 | _COMPILER_RPATH_FLAG= -Wl,${_LINKER_RPATH_FLAG} |
851 | | | 824 | |
852 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 825 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
853 | # | | 826 | # |
854 | # Ensure that the correct rpath is passed to the linker if we need to | | 827 | # Ensure that the correct rpath is passed to the linker if we need to |
855 | # link against gcc shared libs. | | 828 | # link against gcc shared libs. |
856 | # | | 829 | # |
857 | _GCC_SUBPREFIX!= \ | | 830 | _GCC_SUBPREFIX!= \ |
858 | if ${PKG_INFO} -qe ${_GCC_PKGBASE}; then \ | | 831 | if ${PKG_INFO} -qe ${_GCC_PKGBASE}; then \ |
859 | ${PKG_INFO} -f ${_GCC_PKGBASE} | \ | | 832 | ${PKG_INFO} -f ${_GCC_PKGBASE} | \ |
860 | ${GREP} "File:.*bin/gcc" | \ | | 833 | ${GREP} "File:.*bin/gcc" | \ |
861 | ${GREP} -v "/gcc[0-9][0-9]*-.*" | \ | | 834 | ${GREP} -v "/gcc[0-9][0-9]*-.*" | \ |
862 | ${SED} -e "s/.*File: *//;s/bin\/gcc.*//;q"; \ | | 835 | ${SED} -e "s/.*File: *//;s/bin\/gcc.*//;q"; \ |
863 | else \ | | 836 | else \ |
864 | case ${_CC} in \ | | 837 | case ${_CC} in \ |
865 | ${LOCALBASE}/*) \ | | 838 | ${LOCALBASE}/*) \ |
866 | subprefix="${_CC:H:S/\/bin$//:S/${LOCALBASE}\///:S/${LOCALBASE}//}"; \ | | 839 | subprefix="${_CC:H:S/\/bin$//:S/${LOCALBASE}\///:S/${LOCALBASE}//}"; \ |
867 | case "$${subprefix}" in \ | | 840 | case "$${subprefix}" in \ |
868 | "") ${ECHO} "$${subprefix}" ;; \ | | 841 | "") ${ECHO} "$${subprefix}" ;; \ |
869 | *) ${ECHO} "$${subprefix}/" ;; \ | | 842 | *) ${ECHO} "$${subprefix}/" ;; \ |
870 | esac; \ | | 843 | esac; \ |
871 | ;; \ | | 844 | ;; \ |
872 | *) \ | | 845 | *) \ |
873 | ${ECHO} "_GCC_SUBPREFIX_not_found/"; \ | | 846 | ${ECHO} "_GCC_SUBPREFIX_not_found/"; \ |
874 | ;; \ | | 847 | ;; \ |
875 | esac; \ | | 848 | esac; \ |
876 | fi | | 849 | fi |
877 | _GCC_PREFIX= ${LOCALBASE}/${_GCC_SUBPREFIX} | | 850 | _GCC_PREFIX= ${LOCALBASE}/${_GCC_SUBPREFIX} |
878 | _GCC_ARCHDIR!= \ | | 851 | _GCC_ARCHDIR!= \ |
879 | if [ -x ${_GCC_PREFIX}bin/gcc ]; then \ | | 852 | if [ -x ${_GCC_PREFIX}bin/gcc ]; then \ |
880 | ${DIRNAME} `${_GCC_PREFIX}bin/gcc -print-libgcc-file-name 2>/dev/null`; \ | | 853 | ${DIRNAME} `${_GCC_PREFIX}bin/gcc -print-libgcc-file-name 2>/dev/null`; \ |
881 | else \ | | 854 | else \ |
882 | ${ECHO} "_GCC_ARCHDIR_not_found"; \ | | 855 | ${ECHO} "_GCC_ARCHDIR_not_found"; \ |
883 | fi | | 856 | fi |
884 | _GCC_LIBDIRS= ${_GCC_ARCHDIR} | | 857 | _GCC_LIBDIRS= ${_GCC_ARCHDIR} |
885 | . if empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) | | 858 | . if empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) |
886 | _GCC_LIBDIRS+= ${_GCC_PREFIX}lib${LIBABISUFFIX} | | 859 | _GCC_LIBDIRS+= ${_GCC_PREFIX}lib${LIBABISUFFIX} |
887 | . endif | | 860 | . endif |
888 | _GCC_LDFLAGS= # empty | | 861 | _GCC_LDFLAGS= # empty |
889 | . for _dir_ in ${_GCC_LIBDIRS:N*not_found*} | | 862 | . for _dir_ in ${_GCC_LIBDIRS:N*not_found*} |
890 | _GCC_LDFLAGS+= -L${_dir_} ${COMPILER_RPATH_FLAG}${_dir_} | | 863 | _GCC_LDFLAGS+= -L${_dir_} ${COMPILER_RPATH_FLAG}${_dir_} |
891 | . endfor | | 864 | . endfor |
892 | .endif | | 865 | .endif |
893 | | | 866 | |
894 | .if ${_PKGSRC_USE_RELRO} == "yes" | | 867 | .if ${_PKGSRC_USE_RELRO} == "yes" |
895 | _GCC_LDFLAGS+= ${_RELRO_LDFLAGS} | | 868 | _GCC_LDFLAGS+= ${_RELRO_LDFLAGS} |
896 | CWRAPPERS_APPEND.ld+= ${_RELRO_LDFLAGS} | | 869 | CWRAPPERS_APPEND.ld+= ${_RELRO_LDFLAGS} |
897 | .endif | | 870 | .endif |
898 | | | 871 | |
899 | LDFLAGS+= ${_GCC_LDFLAGS} | | 872 | LDFLAGS+= ${_GCC_LDFLAGS} |
900 | | | 873 | |
901 | # Point the variables that specify the compiler to the installed | | 874 | # Point the variables that specify the compiler to the installed |
902 | # GCC executables. | | 875 | # GCC executables. |
903 | # | | 876 | # |
904 | _GCC_DIR= ${WRKDIR}/.gcc | | 877 | _GCC_DIR= ${WRKDIR}/.gcc |
905 | _GCC_VARS= # empty | | 878 | _GCC_VARS= # empty |
906 | | | 879 | |
907 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 880 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
908 | _GCCBINDIR= ${_GCC_PREFIX}bin | | 881 | _GCCBINDIR= ${_GCC_PREFIX}bin |
909 | .elif !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) | | 882 | .elif !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) |
910 | _GCCBINDIR= ${_CC:H} | | 883 | _GCCBINDIR= ${_CC:H} |
911 | .endif | | 884 | .endif |
912 | .if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) | | 885 | .if !empty(USE_CROSS_COMPILE:M[yY][eE][sS]) |
913 | _GCC_BIN_PREFIX= ${MACHINE_GNU_PLATFORM}- | | 886 | _GCC_BIN_PREFIX= ${MACHINE_GNU_PLATFORM}- |
914 | .endif | | 887 | .endif |
915 | _GCC_BIN_PREFIX?= # empty | | 888 | _GCC_BIN_PREFIX?= # empty |
916 | GCC_VERSION_SUFFIX?= # empty | | 889 | GCC_VERSION_SUFFIX?= # empty |
917 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc${GCC_VERSION_SUFFIX}) | | 890 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc${GCC_VERSION_SUFFIX}) |
918 | _GCC_VARS+= CC | | 891 | _GCC_VARS+= CC |
919 | _GCC_CC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gcc${GCC_VERSION_SUFFIX} | | 892 | _GCC_CC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gcc${GCC_VERSION_SUFFIX} |
920 | _ALIASES.CC= cc gcc | | 893 | _ALIASES.CC= cc gcc |
921 | CCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc${GCC_VERSION_SUFFIX} | | 894 | CCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gcc${GCC_VERSION_SUFFIX} |
922 | PKG_CC:= ${_GCC_CC} | | 895 | PKG_CC:= ${_GCC_CC} |
923 | .endif | | 896 | .endif |
924 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp${GCC_VERSION_SUFFIX}) | | 897 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp${GCC_VERSION_SUFFIX}) |
925 | _GCC_VARS+= CPP | | 898 | _GCC_VARS+= CPP |
926 | _GCC_CPP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}cpp${GCC_VERSION_SUFFIX} | | 899 | _GCC_CPP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}cpp${GCC_VERSION_SUFFIX} |
927 | _ALIASES.CPP= cpp | | 900 | _ALIASES.CPP= cpp |
928 | CPPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp${GCC_VERSION_SUFFIX} | | 901 | CPPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}cpp${GCC_VERSION_SUFFIX} |
929 | PKG_CPP:= ${_GCC_CPP} | | 902 | PKG_CPP:= ${_GCC_CPP} |
930 | .endif | | 903 | .endif |
931 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++${GCC_VERSION_SUFFIX}) | | 904 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++${GCC_VERSION_SUFFIX}) |
932 | _GCC_VARS+= CXX | | 905 | _GCC_VARS+= CXX |
933 | _GCC_CXX= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g++${GCC_VERSION_SUFFIX} | | 906 | _GCC_CXX= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g++${GCC_VERSION_SUFFIX} |
934 | _ALIASES.CXX= c++ g++ | | 907 | _ALIASES.CXX= c++ g++ |
935 | CXXPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++${GCC_VERSION_SUFFIX} | | 908 | CXXPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g++${GCC_VERSION_SUFFIX} |
936 | PKG_CXX:= ${_GCC_CXX} | | 909 | PKG_CXX:= ${_GCC_CXX} |
937 | .endif | | 910 | .endif |
938 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX}) | | 911 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX}) |
939 | _GCC_VARS+= FC | | 912 | _GCC_VARS+= FC |
940 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX} | | 913 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX} |
941 | _ALIASES.FC= f77 g77 | | 914 | _ALIASES.FC= f77 g77 |
942 | FC= g77 | | 915 | FC= g77 |
943 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX} | | 916 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX} |
944 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX} | | 917 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}g77${GCC_VERSION_SUFFIX} |
945 | PKG_FC:= ${_GCC_FC} | | 918 | PKG_FC:= ${_GCC_FC} |
946 | PKGSRC_FORTRAN?= g77 | | 919 | PKGSRC_FORTRAN?= g77 |
947 | .endif | | 920 | .endif |
948 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX}) | | 921 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX}) |
949 | _GCC_VARS+= FC | | 922 | _GCC_VARS+= FC |
950 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX} | | 923 | _GCC_FC= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX} |
951 | _ALIASES.FC= gfortran | | 924 | _ALIASES.FC= gfortran |
952 | FC= gfortran | | 925 | FC= gfortran |
953 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX} | | 926 | FCPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX} |
954 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX} | | 927 | F77PATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gfortran${GCC_VERSION_SUFFIX} |
955 | PKG_FC:= ${_GCC_FC} | | 928 | PKG_FC:= ${_GCC_FC} |
956 | PKGSRC_FORTRAN?= gfortran | | 929 | PKGSRC_FORTRAN?= gfortran |
957 | .endif | | 930 | .endif |
958 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada) | | 931 | .if exists(${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada) |
959 | _GCC_VARS+= ADA GMK GLK GBD CHP PRP GLS GNT | | 932 | _GCC_VARS+= ADA GMK GLK GBD CHP PRP GLS GNT |
960 | _GCC_ADA= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}ada | | 933 | _GCC_ADA= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}ada |
961 | _GCC_GMK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatmake | | 934 | _GCC_GMK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatmake |
962 | _GCC_GLK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatlink | | 935 | _GCC_GLK= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatlink |
963 | _GCC_GBD= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatbind | | 936 | _GCC_GBD= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatbind |
964 | _GCC_CHP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatchop | | 937 | _GCC_CHP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatchop |
965 | _GCC_PRP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatprep | | 938 | _GCC_PRP= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatprep |
966 | _GCC_GLS= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatls | | 939 | _GCC_GLS= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnatls |
967 | _GCC_GNT= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnat | | 940 | _GCC_GNT= ${_GCC_DIR}/bin/${_GCC_BIN_PREFIX}gnat |
968 | _ALIASES.ADA= ada | | 941 | _ALIASES.ADA= ada |
969 | _ALIASES.GMK= gnatmake | | 942 | _ALIASES.GMK= gnatmake |
970 | _ALIASES.GLK= gnatlink | | 943 | _ALIASES.GLK= gnatlink |
971 | _ALIASES.GBD= gnatbind | | 944 | _ALIASES.GBD= gnatbind |
972 | _ALIASES.CHP= gnatchop | | 945 | _ALIASES.CHP= gnatchop |
973 | _ALIASES.PRP= gnatprep | | 946 | _ALIASES.PRP= gnatprep |
974 | _ALIASES.GLS= gnatls | | 947 | _ALIASES.GLS= gnatls |
975 | _ALIASES.GNT= gnat | | 948 | _ALIASES.GNT= gnat |
976 | ADAPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada | | 949 | ADAPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}ada |
977 | GMKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatmake | | 950 | GMKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatmake |
978 | GLKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatlink | | 951 | GLKPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatlink |
979 | GBDPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatbind | | 952 | GBDPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatbind |
980 | CHPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatchop | | 953 | CHPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatchop |
981 | PRPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatprep | | 954 | PRPPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatprep |
982 | GLSPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatls | | 955 | GLSPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnatls |
983 | GNTPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnat | | 956 | GNTPATH= ${_GCCBINDIR}/${_GCC_BIN_PREFIX}gnat |
984 | PKG_ADA:= ${_GCC_ADA} | | 957 | PKG_ADA:= ${_GCC_ADA} |
985 | PKG_GMK:= ${_GCC_GMK} | | 958 | PKG_GMK:= ${_GCC_GMK} |
986 | PKG_GLK:= ${_GCC_GLK} | | 959 | PKG_GLK:= ${_GCC_GLK} |
987 | PKG_GBD:= ${_GCC_GBD} | | 960 | PKG_GBD:= ${_GCC_GBD} |
988 | PKG_CHP:= ${_GCC_CHP} | | 961 | PKG_CHP:= ${_GCC_CHP} |
989 | PKG_PRP:= ${_GCC_PRP} | | 962 | PKG_PRP:= ${_GCC_PRP} |
990 | PKG_GLS:= ${_GCC_GLS} | | 963 | PKG_GLS:= ${_GCC_GLS} |
991 | PKG_GNT:= ${_GCC_GNT} | | 964 | PKG_GNT:= ${_GCC_GNT} |
992 | PKGSRC_ADA?= ada | | 965 | PKGSRC_ADA?= ada |
993 | PKGSRC_GMK?= gnatmake | | 966 | PKGSRC_GMK?= gnatmake |
994 | PKGSRC_GLK?= gnatlink | | 967 | PKGSRC_GLK?= gnatlink |
995 | PKGSRC_GBD?= gnatbind | | 968 | PKGSRC_GBD?= gnatbind |
996 | PKGSRC_CHP?= gnatchop | | 969 | PKGSRC_CHP?= gnatchop |
997 | PKGSRC_PRP?= gnatprep | | 970 | PKGSRC_PRP?= gnatprep |
998 | PKGSRC_GLS?= gnatls | | 971 | PKGSRC_GLS?= gnatls |
999 | PKGSRC_GNT?= gnat | | 972 | PKGSRC_GNT?= gnat |
1000 | .endif | | 973 | .endif |
1001 | _COMPILER_STRIP_VARS+= ${_GCC_VARS} | | 974 | _COMPILER_STRIP_VARS+= ${_GCC_VARS} |
1002 | | | 975 | |
1003 | # Pass the required flags to imake to tell it we're using gcc on Solaris. | | 976 | # Pass the required flags to imake to tell it we're using gcc on Solaris. |
1004 | .if ${OPSYS} == "SunOS" | | 977 | .if ${OPSYS} == "SunOS" |
1005 | IMAKEOPTS+= -DHasGcc2=YES -DHasGcc2ForCplusplus=YES | | 978 | IMAKEOPTS+= -DHasGcc2=YES -DHasGcc2ForCplusplus=YES |
1006 | .endif | | 979 | .endif |
1007 | | | 980 | |
1008 | .if ${OPSYS} == "AIX" | | 981 | .if ${OPSYS} == "AIX" |
1009 | # On AIX the GCC toolchain recognizes -maix32 and -maix64, | | 982 | # On AIX the GCC toolchain recognizes -maix32 and -maix64, |
1010 | # -m32 or -m64 are not recognized. | | 983 | # -m32 or -m64 are not recognized. |
1011 | _COMPILER_ABI_FLAG.32= -maix32 | | 984 | _COMPILER_ABI_FLAG.32= -maix32 |
1012 | _COMPILER_ABI_FLAG.64= -maix64 | | 985 | _COMPILER_ABI_FLAG.64= -maix64 |
1013 | # On HP-UX the GCC toolchain must be specifically targeted to an ABI, | | 986 | # On HP-UX the GCC toolchain must be specifically targeted to an ABI, |
1014 | # -m32 or -m64 are not recognized. | | 987 | # -m32 or -m64 are not recognized. |
1015 | .elif ${OPSYS} == "HPUX" | | 988 | .elif ${OPSYS} == "HPUX" |
1016 | _COMPILER_ABI_FLAG.32= # empty | | 989 | _COMPILER_ABI_FLAG.32= # empty |
1017 | _COMPILER_ABI_FLAG.64= # empty | | 990 | _COMPILER_ABI_FLAG.64= # empty |
1018 | .elif !empty(MACHINE_ARCH:Mmips*) | | 991 | .elif !empty(MACHINE_ARCH:Mmips*) |
1019 | _COMPILER_ABI_FLAG.32= -mabi=n32 # ABI == "32" == "n32" | | 992 | _COMPILER_ABI_FLAG.32= -mabi=n32 # ABI == "32" == "n32" |
1020 | _COMPILER_ABI_FLAG.n32= -mabi=n32 | | 993 | _COMPILER_ABI_FLAG.n32= -mabi=n32 |
1021 | _COMPILER_ABI_FLAG.o32= -mabi=32 | | 994 | _COMPILER_ABI_FLAG.o32= -mabi=32 |
1022 | _COMPILER_ABI_FLAG.64= -mabi=64 | | 995 | _COMPILER_ABI_FLAG.64= -mabi=64 |
1023 | .elif !empty(MACHINE_ARCH:Maarch64*) | | 996 | .elif !empty(MACHINE_ARCH:Maarch64*) |
1024 | _COMPILER_ABI_FLAG.32= -m32 | | 997 | _COMPILER_ABI_FLAG.32= -m32 |
1025 | _COMPILER_ABI_FLAG.64= # empty | | 998 | _COMPILER_ABI_FLAG.64= # empty |
1026 | .else | | 999 | .else |
1027 | _COMPILER_ABI_FLAG.32= -m32 | | 1000 | _COMPILER_ABI_FLAG.32= -m32 |
1028 | _COMPILER_ABI_FLAG.64= -m64 | | 1001 | _COMPILER_ABI_FLAG.64= -m64 |
1029 | .endif | | 1002 | .endif |
1030 | | | 1003 | |
1031 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 1004 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
1032 | . if exists(${CCPATH}) | | 1005 | . if exists(${CCPATH}) |
1033 | CC_VERSION_STRING!= ${CCPATH} -v 2>&1 | | 1006 | CC_VERSION_STRING!= ${CCPATH} -v 2>&1 |
1034 | CC_VERSION!= \ | | 1007 | CC_VERSION!= \ |
1035 | if ${CCPATH} -dumpversion > /dev/null 2>&1; then \ | | 1008 | if ${CCPATH} -dumpversion > /dev/null 2>&1; then \ |
1036 | ${ECHO} "gcc-`${CCPATH} -dumpversion`"; \ | | 1009 | ${ECHO} "gcc-`${CCPATH} -dumpversion`"; \ |
1037 | else \ | | 1010 | else \ |
1038 | ${ECHO} "gcc-${_GCC_REQD}"; \ | | 1011 | ${ECHO} "gcc-${_GCC_REQD}"; \ |
1039 | fi | | 1012 | fi |
1040 | | | 1013 | |
1041 | . else | | 1014 | . else |
1042 | CC_VERSION_STRING= ${CC_VERSION} | | 1015 | CC_VERSION_STRING= ${CC_VERSION} |
1043 | CC_VERSION= gcc-${_GCC_REQD} | | 1016 | CC_VERSION= gcc-${_GCC_REQD} |
1044 | . endif | | 1017 | . endif |
1045 | .else | | 1018 | .else |
1046 | CC_VERSION_STRING= ${CC_VERSION} | | 1019 | CC_VERSION_STRING= ${CC_VERSION} |
1047 | CC_VERSION= ${_GCC_PKG} | | 1020 | CC_VERSION= ${_GCC_PKG} |
1048 | .endif | | 1021 | .endif |
1049 | | | 1022 | |
1050 | # The user can choose the level of stack smashing protection. | | 1023 | # The user can choose the level of stack smashing protection. |
1051 | .if empty(CC_VERSION:Mgcc-[1-3].*) | | 1024 | .if empty(CC_VERSION:Mgcc-[1-3].*) |
1052 | . if ${PKGSRC_USE_SSP} == "all" | | 1025 | . if ${PKGSRC_USE_SSP} == "all" |
1053 | _SSP_CFLAGS= -fstack-protector-all | | 1026 | _SSP_CFLAGS= -fstack-protector-all |
1054 | . elif ${PKGSRC_USE_SSP} == "strong" | | 1027 | . elif ${PKGSRC_USE_SSP} == "strong" |
1055 | _SSP_CFLAGS= -fstack-protector-strong | | 1028 | _SSP_CFLAGS= -fstack-protector-strong |
1056 | . else | | 1029 | . else |
1057 | _SSP_CFLAGS= -fstack-protector | | 1030 | _SSP_CFLAGS= -fstack-protector |
1058 | . endif | | 1031 | . endif |
1059 | .endif | | 1032 | .endif |
1060 | | | 1033 | |
1061 | # Prepend the path to the compiler to the PATH. | | 1034 | # Prepend the path to the compiler to the PATH. |
1062 | .if !empty(_LANGUAGES.gcc) | | 1035 | .if !empty(_LANGUAGES.gcc) |
1063 | PREPEND_PATH+= ${_GCC_DIR}/bin | | 1036 | PREPEND_PATH+= ${_GCC_DIR}/bin |
1064 | .endif | | 1037 | .endif |
1065 | | | 1038 | |
1066 | # Add the dependency on GCC. | | 1039 | # Add the dependency on GCC. |
1067 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) | | 1040 | .if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) |
1068 | . for _dir_ in ${_GCC_PKGSRCDIR} | | 1041 | . for _dir_ in ${_GCC_PKGSRCDIR} |
1069 | . include "${_dir_}/buildlink3.mk" | | 1042 | . include "${_dir_}/buildlink3.mk" |
1070 | . endfor | | 1043 | . endfor |
1071 | .endif | | 1044 | .endif |
1072 | | | 1045 | |
1073 | # Add dependency on GCC libraries if requested. | | 1046 | # Add dependency on GCC libraries if requested. |
1074 | .if (defined(_USE_GCC_SHLIB) && !empty(_USE_GCC_SHLIB:M[Yy][Ee][Ss])) && !empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) | | 1047 | .if (defined(_USE_GCC_SHLIB) && !empty(_USE_GCC_SHLIB:M[Yy][Ee][Ss])) && !empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss]) |
1075 | # Special case packages which are themselves a dependency of gcc runtime. | | 1048 | # Special case packages which are themselves a dependency of gcc runtime. |
1076 | . if ${PKGPATH} != devel/libtool-base && ${PKGPATH} != devel/binutils && \ | | 1049 | . if ${PKGPATH} != devel/libtool-base && ${PKGPATH} != devel/binutils && \ |
1077 | empty(PKGPATH:Mlang/gcc4?) && empty(PKGPATH:Mlang/gcc[5-9]) && \ | | 1050 | empty(PKGPATH:Mlang/gcc4?) && empty(PKGPATH:Mlang/gcc[5-9]) && \ |
1078 | empty(PKGPATH:Mlang/gcc10) | | 1051 | empty(PKGPATH:Mlang/gcc10) |
1079 | . if !empty(_GCC_PKGBASE:Mgcc48) | | 1052 | . if !empty(_GCC_PKGBASE:Mgcc48) |
1080 | . include "../../lang/gcc48-libs/buildlink3.mk" | | 1053 | . include "../../lang/gcc48-libs/buildlink3.mk" |
1081 | . elif !empty(_GCC_PKGBASE:Mgcc49) | | 1054 | . elif !empty(_GCC_PKGBASE:Mgcc49) |
1082 | . include "../../lang/gcc49-libs/buildlink3.mk" | | 1055 | . include "../../lang/gcc49-libs/buildlink3.mk" |
1083 | . elif !empty(_GCC_PKGBASE:Mgcc5) | | 1056 | . elif !empty(_GCC_PKGBASE:Mgcc5) |
1084 | . include "../../lang/gcc5-libs/buildlink3.mk" | | 1057 | . include "../../lang/gcc5-libs/buildlink3.mk" |
1085 | . elif !empty(_GCC_PKGBASE:Mgcc6) | | 1058 | . elif !empty(_GCC_PKGBASE:Mgcc6) |
1086 | . include "../../lang/gcc6-libs/buildlink3.mk" | | 1059 | . include "../../lang/gcc6-libs/buildlink3.mk" |
1087 | . elif !empty(_GCC_PKGBASE:Mgcc7) | | 1060 | . elif !empty(_GCC_PKGBASE:Mgcc7) |
1088 | . include "../../lang/gcc7-libs/buildlink3.mk" | | 1061 | . include "../../lang/gcc7-libs/buildlink3.mk" |
1089 | . elif !empty(_GCC_PKGBASE:Mgcc8) | | 1062 | . elif !empty(_GCC_PKGBASE:Mgcc8) |
1090 | . include "../../lang/gcc8-libs/buildlink3.mk" | | 1063 | . include "../../lang/gcc8-libs/buildlink3.mk" |
1091 | . elif !empty(_GCC_PKGBASE:Mgcc9) | | 1064 | . elif !empty(_GCC_PKGBASE:Mgcc9) |
1092 | . include "../../lang/gcc9-libs/buildlink3.mk" | | 1065 | . include "../../lang/gcc9-libs/buildlink3.mk" |
1093 | . elif !empty(_GCC_PKGBASE:Mgcc10) | | 1066 | . elif !empty(_GCC_PKGBASE:Mgcc10) |
1094 | . include "../../lang/gcc10-libs/buildlink3.mk" | | 1067 | . include "../../lang/gcc10-libs/buildlink3.mk" |
1095 | . else | | 1068 | . else |
1096 | PKG_FAIL_REASON+= "No USE_PKGSRC_GCC_RUNTIME support for ${CC_VERSION}" | | 1069 | PKG_FAIL_REASON+= "No USE_PKGSRC_GCC_RUNTIME support for ${CC_VERSION}" |
1097 | . endif | | 1070 | . endif |
1098 | . endif | | 1071 | . endif |
1099 | .endif | | 1072 | .endif |
1100 | | | 1073 | |
1101 | .for _var_ in ${_GCC_VARS} | | 1074 | .for _var_ in ${_GCC_VARS} |
1102 | . if !target(${_GCC_${_var_}}) | | 1075 | . if !target(${_GCC_${_var_}}) |
1103 | override-tools: ${_GCC_${_var_}} | | 1076 | override-tools: ${_GCC_${_var_}} |
1104 | ${_GCC_${_var_}}: | | 1077 | ${_GCC_${_var_}}: |
1105 | ${RUN}${MKDIR} ${.TARGET:H} | | 1078 | ${RUN}${MKDIR} ${.TARGET:H} |
1106 | . if !empty(COMPILER_USE_SYMLINKS:M[Yy][Ee][Ss]) | | 1079 | . if !empty(COMPILER_USE_SYMLINKS:M[Yy][Ee][Ss]) |
1107 | ${RUN}${RM} -f ${.TARGET} | | 1080 | ${RUN}${RM} -f ${.TARGET} |
1108 | ${RUN}${LN} -s ${_GCCBINDIR}/${.TARGET:T} ${.TARGET} | | 1081 | ${RUN}${LN} -s ${_GCCBINDIR}/${.TARGET:T} ${.TARGET} |
1109 | . else | | 1082 | . else |
1110 | ${RUN} \ | | 1083 | ${RUN} \ |
1111 | (${ECHO} '#!${TOOLS_SHELL}'; \ | | 1084 | (${ECHO} '#!${TOOLS_SHELL}'; \ |
1112 | ${ECHO} 'exec ${_GCCBINDIR}/${.TARGET:T} "$$@"'; \ | | 1085 | ${ECHO} 'exec ${_GCCBINDIR}/${.TARGET:T} "$$@"'; \ |
1113 | ) > ${.TARGET} | | 1086 | ) > ${.TARGET} |
1114 | ${RUN}${CHMOD} +x ${.TARGET} | | 1087 | ${RUN}${CHMOD} +x ${.TARGET} |
1115 | . endif | | 1088 | . endif |
1116 | . for _alias_ in ${_ALIASES.${_var_}:S/^/${.TARGET:H}\//} | | 1089 | . for _alias_ in ${_ALIASES.${_var_}:S/^/${.TARGET:H}\//} |
1117 | ${RUN} \ | | 1090 | ${RUN} \ |
1118 | if [ ! -x "${_alias_}" ]; then \ | | 1091 | if [ ! -x "${_alias_}" ]; then \ |
1119 | ${LN} -f -s ${.TARGET:T} ${_alias_}; \ | | 1092 | ${LN} -f -s ${.TARGET:T} ${_alias_}; \ |
1120 | fi | | 1093 | fi |
1121 | . endfor | | 1094 | . endfor |
1122 | . endif | | 1095 | . endif |
1123 | .endfor | | 1096 | .endfor |
1124 | | | 1097 | |
1125 | # On systems without a Fortran compiler, pull one in if needed. | | 1098 | # On systems without a Fortran compiler, pull one in if needed. |
1126 | PKGSRC_FORTRAN?=gfortran | | 1099 | PKGSRC_FORTRAN?=gfortran |
1127 | | | 1100 | |
1128 | _GCC_NEEDS_A_FORTRAN= no | | 1101 | _GCC_NEEDS_A_FORTRAN= no |
1129 | .if empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && !(defined(FCPATH) && exists(${FCPATH})) | | 1102 | .if empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && !(defined(FCPATH) && exists(${FCPATH})) |
1130 | _GCC_NEEDS_A_FORTRAN= yes | | 1103 | _GCC_NEEDS_A_FORTRAN= yes |
1131 | .else | | 1104 | .else |
1132 | . for _pattern_ in 0.* 1.[0-4] 1.[0-4].* | | 1105 | . for _pattern_ in 0.* 1.[0-4] 1.[0-4].* |
1133 | . if !empty(MACHINE_PLATFORM:MNetBSD-${_pattern_}-*) | | 1106 | . if !empty(MACHINE_PLATFORM:MNetBSD-${_pattern_}-*) |
1134 | _GCC_NEEDS_A_FORTRAN= yes | | 1107 | _GCC_NEEDS_A_FORTRAN= yes |
1135 | . endif | | 1108 | . endif |
1136 | . endfor | | 1109 | . endfor |
1137 | .endif | | 1110 | .endif |
1138 | .if !empty(_GCC_NEEDS_A_FORTRAN:M[yY][eE][sS]) | | 1111 | .if !empty(_GCC_NEEDS_A_FORTRAN:M[yY][eE][sS]) |
1139 | . include "../../mk/compiler/${PKGSRC_FORTRAN}.mk" | | 1112 | . include "../../mk/compiler/${PKGSRC_FORTRAN}.mk" |
1140 | .endif | | 1113 | .endif |
1141 | | | 1114 | |
1142 | .if ${OPSYS} == "Interix" && !empty(_GCCBINDIR:M/opt/gcc.*) | | 1115 | .if ${OPSYS} == "Interix" && !empty(_GCCBINDIR:M/opt/gcc.*) |
1143 | COMPILER_INCLUDE_DIRS= ${_GCCBINDIR:H}/include ${_OPSYS_INCLUDE_DIRS} | | 1116 | COMPILER_INCLUDE_DIRS= ${_GCCBINDIR:H}/include ${_OPSYS_INCLUDE_DIRS} |
1144 | COMPILER_LIB_DIRS= ${_GCCBINDIR:H}/lib ${_OPSYS_LIB_DIRS} | | 1117 | COMPILER_LIB_DIRS= ${_GCCBINDIR:H}/lib ${_OPSYS_LIB_DIRS} |
1145 | .endif | | 1118 | .endif |
1146 | | | 1119 | |
1147 | #.READONLY: GCC_REQD | | 1120 | #.READONLY: GCC_REQD |
1148 | _GCC_REQD_EFFECTIVE:= ${GCC_REQD} | | 1121 | _GCC_REQD_EFFECTIVE:= ${GCC_REQD} |
1149 | | | 1122 | |
1150 | .endif # COMPILER_GCC_MK | | 1123 | .endif # COMPILER_GCC_MK |