Lines 1-98
Link Here
|
1 |
# Copyright 1999-2007 Gentoo Foundation |
1 |
# Copyright 1999-2008 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/multilib.eclass,v 1.63 2007/07/01 23:14:58 peper Exp $ |
3 |
# $Header: $ |
4 |
# |
|
|
5 |
# Maintainer: amd64@gentoo.org / toolchain@gentoo.org |
6 |
# |
7 |
# This eclass is for all functions pertaining to handling multilib. |
8 |
# configurations. |
9 |
|
10 |
___ECLASS_RECUR_MULTILIB="yes" |
11 |
[[ -z ${___ECLASS_RECUR_TOOLCHAIN_FUNCS} ]] && inherit toolchain-funcs |
12 |
|
13 |
# has_multilib_profile: |
14 |
# Return true if the current profile is a multilib profile and lists more than |
15 |
# one abi in ${MULTILIB_ABIS}. When has_multilib_profile returns true, that |
16 |
# profile should enable the 'multilib' use flag. This is so you can DEPEND on |
17 |
# a package only for multilib or not multilib. |
18 |
|
4 |
|
19 |
# is_final_abi: |
5 |
# @ECLASS: multilib.eclass |
20 |
# Return true if ${ABI} is the final abi to be installed (and thus we are |
6 |
# @MAINTAINER: |
21 |
# on our last run through a src_* function. |
7 |
# amd64@gentoo.org |
|
|
8 |
# toolchain@gentoo.org |
9 |
# @BLURB: This eclass is for all functions pertaining to handling multilib. configurations. |
10 |
# @DESCRIPTION: |
11 |
# This eclass is for all functions pertaining to handling multilib. configurations. |
22 |
|
12 |
|
23 |
# number_abis: |
|
|
24 |
# echo the number of ABIs we will be installing for |
25 |
|
13 |
|
26 |
# get_install_abis: |
14 |
___ECLASS_RECUR_MULTILIB="yes" |
27 |
# Return a list of the ABIs we want to install for with |
15 |
[[ -z ${___ECLASS_RECUR_TOOLCHAIN_FUNCS} ]] && inherit toolchain-funcs |
28 |
# the last one in the list being the default. |
|
|
29 |
|
30 |
# get_all_abis: |
31 |
# Return a list of the ABIs supported by this profile. |
32 |
# the last one in the list being the default. |
33 |
|
34 |
# get_all_libdirs: |
35 |
# Returns a list of all the libdirs used by this profile. This includes |
36 |
# those that might not be touched by the current ebuild and always includes |
37 |
# "lib". |
38 |
|
39 |
# get_libdir: |
40 |
# Returns the libdir for the selected ABI. This is backwards compatible |
41 |
# and simply calls get_abi_LIBDIR() on newer profiles. You should use this |
42 |
# to determine where to install shared objects (ex: /usr/$(get_libdir)) |
43 |
|
44 |
# get_abi_var <VAR> [<ABI>]: |
45 |
# returns the value of ${<VAR>_<ABI>} which should be set in make.defaults |
46 |
# |
47 |
# get_abi_CFLAGS: |
48 |
# get_abi_CDEFINE: |
49 |
# get_abi_LIBDIR: |
50 |
# Aliases for 'get_abi_var CFLAGS', etc. |
51 |
|
52 |
# get_ml_incdir [<include dir> [<ABI>]] |
53 |
# include dir defaults to /usr/include |
54 |
# ABI defaults to ${ABI} or ${DEFAULT_ABI} |
55 |
# |
56 |
# If a multilib include dir is associated with the passed include dir, then |
57 |
# we return it, otherwise, we just echo back the include dir. This is |
58 |
# neccessary when a built script greps header files rather than testing them |
59 |
# via #include (like perl) to figure out features. |
60 |
|
61 |
# prep_ml_includes: |
62 |
# Some includes (include/asm, glibc, etc) are ABI dependent. In this case, |
63 |
# We can install them in different locations for each ABI and create a common |
64 |
# header which includes the right one based on CDEFINE_${ABI}. If your |
65 |
# package installs ABI-specific headers, just add 'prep_ml_includes' to the |
66 |
# end of your src_install(). It takes a list of directories that include |
67 |
# files are installed in (default is /usr/include if none are passed). |
68 |
# |
69 |
# Example: |
70 |
# src_install() { |
71 |
# ... |
72 |
# prep_ml_includes /usr/qt/3/include |
73 |
# } |
74 |
|
75 |
# create_ml_includes <include dir> <symbol 1>:<dir 1> [<symbol 2>:<dir 2> ...] |
76 |
# If you need more control than prep_ml_includes can offer (like linux-headers |
77 |
# for the asm-* dirs, then use create_ml_includes. The firs argument is the |
78 |
# common dir. The remaining args are of the form <symbol>:<dir> where |
79 |
# <symbol> is what is put in the #ifdef for choosing that dir. |
80 |
# |
81 |
# Ideas for this code came from debian's sparc-linux headers package. |
82 |
# |
83 |
# Example: |
84 |
# create_ml_includes /usr/include/asm __sparc__:/usr/include/asm-sparc __sparc64__:/usr/include/asm-sparc64 |
85 |
# create_ml_includes /usr/include/asm __i386__:/usr/include/asm-i386 __x86_64__:/usr/include/asm-x86_64 |
86 |
|
87 |
# get_libname [version] |
88 |
# returns libname with proper suffix {.so,.dylib} and optionally supplied version |
89 |
# for ELF/MACH-O shared objects |
90 |
# |
91 |
# Example: |
92 |
# get_libname libfoo ${PV} |
93 |
# Returns: libfoo.so.${PV} (ELF) || libfoo.${PV}.dylib (MACH) |
94 |
|
95 |
### END DOCUMENTATION ### |
96 |
|
16 |
|
97 |
# Defaults: |
17 |
# Defaults: |
98 |
export MULTILIB_ABIS=${MULTILIB_ABIS:-"default"} |
18 |
export MULTILIB_ABIS=${MULTILIB_ABIS:-"default"} |
Lines 105-123
Link Here
|
105 |
export CDEFINE_default="__unix__" |
25 |
export CDEFINE_default="__unix__" |
106 |
export KERNEL_ABI=${KERNEL_ABI:-${DEFAULT_ABI}} |
26 |
export KERNEL_ABI=${KERNEL_ABI:-${DEFAULT_ABI}} |
107 |
|
27 |
|
108 |
# has_multilib_profile() |
28 |
# @FUNCTION: has_multilib_profile |
|
|
29 |
# @DESCRIPTION: |
30 |
# Return true if the current profile is a multilib profile and lists more than |
31 |
# one abi in ${MULTILIB_ABIS}. When has_multilib_profile returns true, that |
32 |
# profile should enable the 'multilib' use flag. This is so you can DEPEND on |
33 |
# a package only for multilib or not multilib. |
109 |
has_multilib_profile() { |
34 |
has_multilib_profile() { |
110 |
[ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] |
35 |
[ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] |
111 |
} |
36 |
} |
112 |
|
37 |
|
|
|
38 |
# FUNCTION: get_libdir |
39 |
# @MAINTAINER: |
40 |
# Travis Tilley <lv@gentoo.org> (24 Aug 2004) |
41 |
# Jeremy Huddleston <eradicator@gentoo.org> (23 Dec 2004): |
42 |
# @RETURN: Returns the libdir for the selected ABI. |
43 |
# @DESCRIPTION: |
113 |
# This function simply returns the desired lib directory. With portage |
44 |
# This function simply returns the desired lib directory. With portage |
114 |
# 2.0.51, we now have support for installing libraries to lib32/lib64 |
45 |
# 2.0.51, we now have support for installing libraries to lib32/lib64 |
115 |
# to accomidate the needs of multilib systems. It's no longer a good idea |
46 |
# to accomidate the needs of multilib systems. It's no longer a good idea |
116 |
# to assume all libraries will end up in lib. Replace any (sane) instances |
47 |
# to assume all libraries will end up in lib. Replace any (sane) instances |
117 |
# where lib is named directly with $(get_libdir) if possible. |
48 |
# where lib is named directly with $(get_libdir) if possible. |
118 |
# |
49 |
# |
119 |
# Travis Tilley <lv@gentoo.org> (24 Aug 2004) |
|
|
120 |
# |
121 |
# Jeremy Huddleston <eradicator@gentoo.org> (23 Dec 2004): |
50 |
# Jeremy Huddleston <eradicator@gentoo.org> (23 Dec 2004): |
122 |
# Added support for ${ABI} and ${DEFAULT_ABI}. If they're both not set, |
51 |
# Added support for ${ABI} and ${DEFAULT_ABI}. If they're both not set, |
123 |
# fall back on old behavior. Any profile that has these set should also |
52 |
# fall back on old behavior. Any profile that has these set should also |
Lines 133-138
Link Here
|
133 |
fi |
62 |
fi |
134 |
} |
63 |
} |
135 |
|
64 |
|
|
|
65 |
# @FUNCTION: get_multilibdir |
66 |
# @RETURN: Returns the multilibdir |
136 |
get_multilibdir() { |
67 |
get_multilibdir() { |
137 |
if has_multilib_profile; then |
68 |
if has_multilib_profile; then |
138 |
eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org" |
69 |
eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org" |
Lines 141-146
Link Here
|
141 |
echo ${CONF_MULTILIBDIR:=lib32} |
72 |
echo ${CONF_MULTILIBDIR:=lib32} |
142 |
} |
73 |
} |
143 |
|
74 |
|
|
|
75 |
# @FUNCTION: get_libdir_override |
76 |
# @MAINTAINER: |
77 |
# Travis Tilley <lv@gentoo.org> (31 Aug 2004) |
78 |
# @DESCRIPTION: |
144 |
# Sometimes you need to override the value returned by get_libdir. A good |
79 |
# Sometimes you need to override the value returned by get_libdir. A good |
145 |
# example of this is xorg-x11, where lib32 isnt a supported configuration, |
80 |
# example of this is xorg-x11, where lib32 isnt a supported configuration, |
146 |
# and where lib64 -must- be used on amd64 (for applications that need lib |
81 |
# and where lib64 -must- be used on amd64 (for applications that need lib |
Lines 150-157
Link Here
|
150 |
# return: |
85 |
# return: |
151 |
# |
86 |
# |
152 |
# get_libdir_override lib64 |
87 |
# get_libdir_override lib64 |
153 |
# |
|
|
154 |
# Travis Tilley <lv@gentoo.org> (31 Aug 2004) |
155 |
get_libdir_override() { |
88 |
get_libdir_override() { |
156 |
if has_multilib_profile; then |
89 |
if has_multilib_profile; then |
157 |
eerror "get_libdir_override called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org" |
90 |
eerror "get_libdir_override called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org" |
Lines 162-171
Link Here
|
162 |
LIBDIR_default="$1" |
95 |
LIBDIR_default="$1" |
163 |
} |
96 |
} |
164 |
|
97 |
|
165 |
# get_abi_var <VAR> [<ABI>] |
98 |
# @FUNCTION: get_abi_var |
166 |
# returns the value of ${<VAR>_<ABI>} which should be set in make.defaults |
99 |
# @USAGE: < VAR > [ ABI ] |
167 |
# |
100 |
# @RETURN: returns the value of ${<VAR>_<ABI>} which should be set in make.defaults |
|
|
101 |
# @MAINTAINER: |
102 |
# Jeremy Huddleston <eradicator@gentoo.org> |
103 |
# @DESCRIPTION: |
168 |
# ex: |
104 |
# ex: |
|
|
105 |
# |
169 |
# CFLAGS=$(get_abi_var CFLAGS sparc32) # CFLAGS=-m32 |
106 |
# CFLAGS=$(get_abi_var CFLAGS sparc32) # CFLAGS=-m32 |
170 |
# |
107 |
# |
171 |
# Note that the prefered method is to set CC="$(tc-getCC) $(get_abi_CFLAGS)" |
108 |
# Note that the prefered method is to set CC="$(tc-getCC) $(get_abi_CFLAGS)" |
Lines 174-181
Link Here
|
174 |
# If <ABI> is not specified, ${ABI} is used. |
111 |
# If <ABI> is not specified, ${ABI} is used. |
175 |
# If <ABI> is not specified and ${ABI} is not defined, ${DEFAULT_ABI} is used. |
112 |
# If <ABI> is not specified and ${ABI} is not defined, ${DEFAULT_ABI} is used. |
176 |
# If <ABI> is not specified and ${ABI} and ${DEFAULT_ABI} are not defined, we return an empty string. |
113 |
# If <ABI> is not specified and ${ABI} and ${DEFAULT_ABI} are not defined, we return an empty string. |
177 |
# |
|
|
178 |
# Jeremy Huddleston <eradicator@gentoo.org> |
179 |
get_abi_var() { |
114 |
get_abi_var() { |
180 |
local flag=$1 |
115 |
local flag=$1 |
181 |
local abi |
116 |
local abi |
Lines 193-207
Link Here
|
193 |
echo ${!var} |
128 |
echo ${!var} |
194 |
} |
129 |
} |
195 |
|
130 |
|
|
|
131 |
# @FUNCTION: get_abi_CFLAGS |
132 |
# @USAGE: [ ABI ] |
133 |
# @DESCRIPTION: |
134 |
# Alias for 'get_abi_var CFLAGS' |
196 |
get_abi_CFLAGS() { get_abi_var CFLAGS "$@"; } |
135 |
get_abi_CFLAGS() { get_abi_var CFLAGS "$@"; } |
|
|
136 |
|
137 |
# @FUNCTION: get_abi_ASFLAGS |
138 |
# @USAGE: [ ABI ] |
139 |
# @DESCRIPTION: |
140 |
# Alias for 'get_abi_var ASFLAGS' |
197 |
get_abi_ASFLAGS() { get_abi_var ASFLAGS "$@"; } |
141 |
get_abi_ASFLAGS() { get_abi_var ASFLAGS "$@"; } |
|
|
142 |
|
143 |
# @FUNCTION: get_abi_LDFLAGS |
144 |
# @USAGE: [ ABI ] |
145 |
# @DESCRIPTION: |
146 |
# Alias for 'get_abi_var LDFLAGS' |
198 |
get_abi_LDFLAGS() { get_abi_var LDFLAGS "$@"; } |
147 |
get_abi_LDFLAGS() { get_abi_var LDFLAGS "$@"; } |
|
|
148 |
|
149 |
# @FUNCTION: get_abi_CHOST |
150 |
# @USAGE: [ ABI ] |
151 |
# @DESCRIPTION: |
152 |
# Alias for 'get_abi_var CHOST' |
199 |
get_abi_CHOST() { get_abi_var CHOST "$@"; } |
153 |
get_abi_CHOST() { get_abi_var CHOST "$@"; } |
|
|
154 |
|
155 |
# @FUNCTION: get_abi_CTARGET |
156 |
# @USAGE: [ ABI ] |
157 |
# @DESCRIPTION: |
158 |
# Alias for 'get_abi_var CTARGET' |
200 |
get_abi_CTARGET() { get_abi_var CTARGET "$@"; } |
159 |
get_abi_CTARGET() { get_abi_var CTARGET "$@"; } |
|
|
160 |
|
161 |
# @FUNCTION: get_abi_FAKE_TARGETS |
162 |
# @USAGE: [ ABI ] |
163 |
# @DESCRIPTION: |
164 |
# Alias for 'get_abi_var FAKE_TARGETS' |
201 |
get_abi_FAKE_TARGETS() { get_abi_var FAKE_TARGETS "$@"; } |
165 |
get_abi_FAKE_TARGETS() { get_abi_var FAKE_TARGETS "$@"; } |
|
|
166 |
|
167 |
# @FUNCTION: get_abi_CDEFINE |
168 |
# @USAGE: [ ABI ] |
169 |
# @DESCRIPTION: |
170 |
# Alias for 'get_abi_var CDEFINE' |
202 |
get_abi_CDEFINE() { get_abi_var CDEFINE "$@"; } |
171 |
get_abi_CDEFINE() { get_abi_var CDEFINE "$@"; } |
|
|
172 |
|
173 |
# @FUNCTION: get_abi_LIBDIR |
174 |
# @USAGE: [ ABI ] |
175 |
# @DESCRIPTION: |
176 |
# Alias for 'get_abi_var LIBDIR' |
203 |
get_abi_LIBDIR() { get_abi_var LIBDIR "$@"; } |
177 |
get_abi_LIBDIR() { get_abi_var LIBDIR "$@"; } |
204 |
|
178 |
|
|
|
179 |
# @FUNCTION: get_install_abis |
180 |
# @DESCRIPTION: |
205 |
# Return a list of the ABIs we want to install for with |
181 |
# Return a list of the ABIs we want to install for with |
206 |
# the last one in the list being the default. |
182 |
# the last one in the list being the default. |
207 |
get_install_abis() { |
183 |
get_install_abis() { |
Lines 241-246
Link Here
|
241 |
return 0 |
217 |
return 0 |
242 |
} |
218 |
} |
243 |
|
219 |
|
|
|
220 |
# @FUNCTION: get_all_abis |
221 |
# @DESCRIPTION: |
244 |
# Return a list of the ABIs supported by this profile. |
222 |
# Return a list of the ABIs supported by this profile. |
245 |
# the last one in the list being the default. |
223 |
# the last one in the list being the default. |
246 |
get_all_abis() { |
224 |
get_all_abis() { |
Lines 262-270
Link Here
|
262 |
return 0 |
240 |
return 0 |
263 |
} |
241 |
} |
264 |
|
242 |
|
265 |
# get_all_libdirs() |
243 |
# @FUNCTION: get_all_libdirs |
|
|
244 |
# @DESCRIPTION: |
266 |
# Returns a list of all the libdirs used by this profile. This includes |
245 |
# Returns a list of all the libdirs used by this profile. This includes |
267 |
# those that might not be touched by the current ebuild. |
246 |
# those that might not be touched by the current ebuild and always includes |
|
|
247 |
# "lib". |
268 |
get_all_libdirs() { |
248 |
get_all_libdirs() { |
269 |
local libdirs="lib" |
249 |
local libdirs="lib" |
270 |
local abi |
250 |
local abi |
Lines 277-282
Link Here
|
277 |
echo "${libdirs}" |
257 |
echo "${libdirs}" |
278 |
} |
258 |
} |
279 |
|
259 |
|
|
|
260 |
# @FUNCTION: is_final_abi |
261 |
# @DESCRIPTION: |
280 |
# Return true if ${ABI} is the last ABI on our list (or if we're not |
262 |
# Return true if ${ABI} is the last ABI on our list (or if we're not |
281 |
# using the new multilib configuration. This can be used to determine |
263 |
# using the new multilib configuration. This can be used to determine |
282 |
# if we're in the last (or only) run through src_{unpack,compile,install} |
264 |
# if we're in the last (or only) run through src_{unpack,compile,install} |
Lines 287-300
Link Here
|
287 |
[[ ${LAST_ABI} == ${ABI} ]] |
269 |
[[ ${LAST_ABI} == ${ABI} ]] |
288 |
} |
270 |
} |
289 |
|
271 |
|
|
|
272 |
# @FUNCTION: number_abis |
273 |
# @DESCRIPTION: |
290 |
# echo the number of ABIs we will be installing for |
274 |
# echo the number of ABIs we will be installing for |
291 |
number_abis() { |
275 |
number_abis() { |
292 |
get_install_abis | wc -w |
276 |
get_install_abis | wc -w |
293 |
} |
277 |
} |
294 |
|
278 |
|
295 |
# get_ml_incdir [<include dir> [<ABI>]] |
279 |
# @FUNCTION: get_ml_incdir |
|
|
280 |
# @USAGE: [ include_dir ] [ ABI ] |
281 |
# @DESCRIPTION: |
296 |
# include dir defaults to /usr/include |
282 |
# include dir defaults to /usr/include |
297 |
# ABI defaults to ${ABI} or ${DEFAULT_ABI} |
283 |
# ABI defaults to ${ABI} or ${DEFAULT_ABI} |
|
|
284 |
# |
285 |
# If a multilib include dir is associated with the passed include dir, then |
286 |
# we return it, otherwise, we just echo back the include dir. This is |
287 |
# neccessary when a built script greps header files rather than testing them |
288 |
# via #include (like perl) to figure out features. |
298 |
get_ml_incdir() { |
289 |
get_ml_incdir() { |
299 |
local dir=/usr/include |
290 |
local dir=/usr/include |
300 |
|
291 |
|
Lines 321-328
Link Here
|
321 |
fi |
312 |
fi |
322 |
} |
313 |
} |
323 |
|
314 |
|
324 |
# prep_ml_includes: |
315 |
# @FUNCTION: prep_ml_includes |
325 |
# |
316 |
# @DESCRIPTION: |
326 |
# Some includes (include/asm, glibc, etc) are ABI dependent. In this case, |
317 |
# Some includes (include/asm, glibc, etc) are ABI dependent. In this case, |
327 |
# We can install them in different locations for each ABI and create a common |
318 |
# We can install them in different locations for each ABI and create a common |
328 |
# header which includes the right one based on CDEFINE_${ABI}. If your |
319 |
# header which includes the right one based on CDEFINE_${ABI}. If your |
Lines 331-341
Link Here
|
331 |
# files are installed in (default is /usr/include if none are passed). |
322 |
# files are installed in (default is /usr/include if none are passed). |
332 |
# |
323 |
# |
333 |
# Example: |
324 |
# Example: |
334 |
# src_install() { |
325 |
# src_install() { |
335 |
# ... |
326 |
# ... |
336 |
# prep_ml_includes /usr/qt/3/include |
327 |
# prep_ml_includes /usr/qt/3/include |
337 |
# } |
328 |
# } |
338 |
|
|
|
339 |
prep_ml_includes() { |
329 |
prep_ml_includes() { |
340 |
if [[ $(number_abis) -gt 1 ]] ; then |
330 |
if [[ $(number_abis) -gt 1 ]] ; then |
341 |
local dir |
331 |
local dir |
Lines 376-381
Link Here
|
376 |
fi |
366 |
fi |
377 |
} |
367 |
} |
378 |
|
368 |
|
|
|
369 |
# @FUNCTION: create_ml_includes |
370 |
# @USAGE: < include_dir > < symbol_1 >:< dir_1 > [ <symbol_2>:<dir_2> ...] |
371 |
# @DESCRIPTION: |
379 |
# If you need more control than prep_ml_includes can offer (like linux-headers |
372 |
# If you need more control than prep_ml_includes can offer (like linux-headers |
380 |
# for the asm-* dirs, then use create_ml_includes. The firs argument is the |
373 |
# for the asm-* dirs, then use create_ml_includes. The firs argument is the |
381 |
# common dir. The remaining args are of the form <symbol>:<dir> where |
374 |
# common dir. The remaining args are of the form <symbol>:<dir> where |
Lines 384-391
Link Here
|
384 |
# Ideas for this code came from debian's sparc-linux headers package. |
377 |
# Ideas for this code came from debian's sparc-linux headers package. |
385 |
# |
378 |
# |
386 |
# Example: |
379 |
# Example: |
387 |
# create_ml_includes /usr/include/asm __sparc__:/usr/include/asm-sparc __sparc64__:/usr/include/asm-sparc64 |
380 |
# create_ml_includes /usr/include/asm __sparc__:/usr/include/asm-sparc __sparc64__:/usr/include/asm-sparc64 |
388 |
# create_ml_includes /usr/include/asm __i386__:/usr/include/asm-i386 __x86_64__:/usr/include/asm-x86_64 |
381 |
# create_ml_includes /usr/include/asm __i386__:/usr/include/asm-i386 __x86_64__:/usr/include/asm-x86_64 |
389 |
# |
382 |
# |
390 |
# Warning: Be careful with the ordering here. The default ABI has to be the |
383 |
# Warning: Be careful with the ordering here. The default ABI has to be the |
391 |
# last, because it is always defined (by GCC) |
384 |
# last, because it is always defined (by GCC) |
Lines 531-536
Link Here
|
531 |
exit 1 |
524 |
exit 1 |
532 |
} |
525 |
} |
533 |
|
526 |
|
|
|
527 |
# @FUNCTION: get_libname |
528 |
# @USAGE: [ version ] |
529 |
# @DESCRIPTION: |
530 |
# Returns libname with proper suffix {.so,.dylib} and optionally supplied version |
531 |
# for ELF/MACH-O shared objects |
532 |
# |
533 |
# Example: |
534 |
# get_libname libfoo ${PV} |
535 |
# Returns: libfoo.so.${PV} (ELF) || libfoo.${PV}.dylib (MACH) |
534 |
get_libname() { |
536 |
get_libname() { |
535 |
local libname |
537 |
local libname |
536 |
local ver=$1 |
538 |
local ver=$1 |
Lines 650-655
Link Here
|
650 |
esac |
652 |
esac |
651 |
} |
653 |
} |
652 |
|
654 |
|
|
|
655 |
# @FUNCTION: multilib_toolchain_setup |
656 |
# @DESCRIPTION: |
653 |
# Hide multilib details here for packages which are forced to be compiled for a |
657 |
# Hide multilib details here for packages which are forced to be compiled for a |
654 |
# specific ABI when run on another ABI (like x86-specific packages on amd64) |
658 |
# specific ABI when run on another ABI (like x86-specific packages on amd64) |
655 |
multilib_toolchain_setup() { |
659 |
multilib_toolchain_setup() { |