Link Here
|
6 |
echo "RUNNING FROM EXTRA_FUNCTIONS.SH" |
6 |
echo "RUNNING FROM EXTRA_FUNCTIONS.SH" |
7 |
} |
7 |
} |
8 |
|
8 |
|
9 |
# ============================================================================ |
|
|
10 |
# Extracted from flag-o-matic -- March 10, 2003 |
11 |
# ============================================================================ |
12 |
|
13 |
#### filter-flags <flag> #### |
14 |
# Remove particular flags from C[XX]FLAGS |
15 |
# |
16 |
#### append-flags <flag> #### |
17 |
# Add extra flags to your current C[XX]FLAGS |
18 |
# |
19 |
#### replace-flags <orig.flag> <new.flag> ### |
20 |
# Replace a flag by another one |
21 |
# |
22 |
#### is-flag <flag> #### |
23 |
# Returns "true" if flag is set in C[XX]FLAGS |
24 |
# Matches only complete flag |
25 |
# |
26 |
#### strip-flags #### |
27 |
# Strip C[XX]FLAGS of everything except known |
28 |
# good options. |
29 |
# |
30 |
#### get-flag <flag> #### |
31 |
# Find and echo the value for a particular flag |
32 |
# |
33 |
|
34 |
ALLOWED_FLAGS="-O -mcpu -march -pipe -g" |
35 |
|
36 |
filter-flags() { |
37 |
for x in $1; do |
38 |
export CFLAGS="${CFLAGS/${x}}" |
39 |
export CXXFLAGS="${CXXFLAGS/${x}}" |
40 |
done |
41 |
} |
42 |
|
43 |
append-flags() { |
44 |
CFLAGS="${CFLAGS} $1" |
45 |
CXXFLAGS="${CXXFLAGS} $1" |
46 |
} |
47 |
|
48 |
replace-flags() { |
49 |
CFLAGS="${CFLAGS/${1}/${2} }" |
50 |
CXXFLAGS="${CXXFLAGS/${1}/${2} }" |
51 |
} |
52 |
|
53 |
is-flag() { |
54 |
for x in ${CFLAGS} ${CXXFLAGS}; do |
55 |
if [ "${x}" = "$1" ]; then |
56 |
echo true |
57 |
return 0 |
58 |
fi |
59 |
done |
60 |
return 1 |
61 |
} |
62 |
|
63 |
strip-flags() { |
64 |
local NEW_CFLAGS="" |
65 |
local NEW_CXXFLAGS="" |
66 |
|
67 |
set -f |
68 |
for x in ${CFLAGS}; do |
69 |
for y in ${ALLOWED_FLAGS}; do |
70 |
if [ "${x/${y}}" != "${x}" ]; then |
71 |
if [ -z "${NEW_CFLAGS}" ]; then |
72 |
NEW_CFLAGS="${x}" |
73 |
else |
74 |
NEW_CFLAGS="${NEW_CFLAGS} ${x}" |
75 |
fi |
76 |
fi |
77 |
done |
78 |
done |
79 |
|
80 |
for x in ${CXXFLAGS}; do |
81 |
for y in ${ALLOWED_FLAGS}; do |
82 |
if [ "${x/${y}}" != "${x}" ]; then |
83 |
if [ -z "${NEW_CXXFLAGS}" ]; then |
84 |
NEW_CXXFLAGS="${x}" |
85 |
else |
86 |
NEW_CXXFLAGS="${NEW_CXXFLAGS} ${x}" |
87 |
fi |
88 |
fi |
89 |
done |
90 |
done |
91 |
|
92 |
set +f |
93 |
|
94 |
export CFLAGS="${NEW_CFLAGS}" |
95 |
export CXXFLAGS="${NEW_CXXFLAGS}" |
96 |
} |
97 |
|
98 |
get-flag() { |
99 |
local findflag="$1" |
100 |
|
101 |
for f in ${CFLAGS} ${CXXFLAGS}; do |
102 |
if [ "${f/${findflag}}" != "${f}" ]; then |
103 |
echo "${f/-${findflag}=}" |
104 |
return |
105 |
fi |
106 |
done |
107 |
} |
108 |
|
109 |
# ---------------------------------------------------------------------------- |
9 |
# ---------------------------------------------------------------------------- |
110 |
# ---------------------------------------------------------------------------- |
10 |
# ---------------------------------------------------------------------------- |
111 |
# ---------------------------------------------------------------------------- |
11 |
# ---------------------------------------------------------------------------- |