| 1 | # Copyright 1999-2009 Gentoo Foundation |
1 | # Copyright 1999-2009 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/flag-o-matic.eclass,v 1.132 2009/01/21 00:42:20 gengor Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/flag-o-matic.eclass,v 1.136 2009/05/23 23:12:07 vapier Exp $ |
| 4 | |
4 | |
| 5 | # @ECLASS: flag-o-matic.eclass |
5 | # @ECLASS: flag-o-matic.eclass |
| 6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
| 7 | # toolchain@gentoo.org |
7 | # toolchain@gentoo.org |
| 8 | # @BLURB: common functions to manipulate and query toolchain flags |
8 | # @BLURB: common functions to manipulate and query toolchain flags |
| … | |
… | |
| 39 | export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident" |
39 | export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident" |
| 40 | export ALLOWED_FLAGS="${ALLOWED_FLAGS} -W* -w" |
40 | export ALLOWED_FLAGS="${ALLOWED_FLAGS} -W* -w" |
| 41 | fi |
41 | fi |
| 42 | # allow a bunch of flags that negate features / control ABI |
42 | # allow a bunch of flags that negate features / control ABI |
| 43 | ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all \ |
43 | ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all \ |
| 44 | -fno-strict-aliasing -fno-bounds-checking -fstrict-overflow" |
44 | -fno-strict-aliasing -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer" |
| 45 | ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs \ |
45 | ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs \ |
| 46 | -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow \ |
46 | -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow \ |
| 47 | -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 \ |
47 | -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 \ |
| 48 | -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu \ |
48 | -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu \ |
| 49 | -mieee -mieee-with-inexact -mschedule \ |
49 | -mieee -mieee-with-inexact -mschedule \ |
| … | |
… | |
| 134 | [[ -z $* ]] && return 0 |
134 | [[ -z $* ]] && return 0 |
| 135 | export CPPFLAGS="${CPPFLAGS} $*" |
135 | export CPPFLAGS="${CPPFLAGS} $*" |
| 136 | return 0 |
136 | return 0 |
| 137 | } |
137 | } |
| 138 | |
138 | |
|
|
139 | # @FUNCTION: append-cflags |
|
|
140 | # @USAGE: <flags> |
|
|
141 | # @DESCRIPTION: |
|
|
142 | # Add extra <flags> to the current CFLAGS. |
|
|
143 | append-cppflags() { |
|
|
144 | [[ -z $* ]] && return 0 |
|
|
145 | export CFLAGS="${CFLAGS} $*" |
|
|
146 | return 0 |
|
|
147 | } |
|
|
148 | |
| 139 | # @FUNCTION: append-cxxflags |
149 | # @FUNCTION: append-cxxflags |
| 140 | # @USAGE: <flags> |
150 | # @USAGE: <flags> |
| 141 | # @DESCRIPTION: |
151 | # @DESCRIPTION: |
| 142 | # Add extra <flags> to the current CXXFLAGS. |
152 | # Add extra <flags> to the current CXXFLAGS. |
| 143 | append-cxxflags() { |
153 | append-cxxflags() { |
| … | |
… | |
| 169 | # @USAGE: <flags> |
179 | # @USAGE: <flags> |
| 170 | # @DESCRIPTION: |
180 | # @DESCRIPTION: |
| 171 | # Add extra <flags> to your current {C,CXX,F,FC}FLAGS. |
181 | # Add extra <flags> to your current {C,CXX,F,FC}FLAGS. |
| 172 | append-flags() { |
182 | append-flags() { |
| 173 | [[ -z $* ]] && return 0 |
183 | [[ -z $* ]] && return 0 |
| 174 | export CFLAGS="${CFLAGS} $*" |
184 | append-cflags "$@" |
| 175 | export CXXFLAGS="${CXXFLAGS} $*" |
185 | append-cppflags "$@" |
| 176 | export FFLAGS="${FFLAGS} $*" |
186 | append-fflags "$@" |
| 177 | export FCFLAGS="${FCFLAGS} $*" |
|
|
| 178 | return 0 |
187 | return 0 |
| 179 | } |
188 | } |
| 180 | |
189 | |
| 181 | # @FUNCTION: replace-flags |
190 | # @FUNCTION: replace-flags |
| 182 | # @USAGE: <old> <new> |
191 | # @USAGE: <old> <new> |