diff options
author | 2013-11-24 10:25:52 +0000 | |
---|---|---|
committer | 2013-11-24 10:25:52 +0000 | |
commit | 1f3ed6843ebc56b6d564701a5c9cf7130ecb6413 (patch) | |
tree | e7144f7162c7e0cd66bf2275a13927908a6530dc /eclass/autotools-multilib.eclass | |
parent | Use bundled qtsingleapplication for -X (diff) | |
download | historical-1f3ed6843ebc56b6d564701a5c9cf7130ecb6413.tar.gz historical-1f3ed6843ebc56b6d564701a5c9cf7130ecb6413.tar.bz2 historical-1f3ed6843ebc56b6d564701a5c9cf7130ecb6413.zip |
Reuse multilib-minimal to reduce code duplication and allow easier function overrides.
Diffstat (limited to 'eclass/autotools-multilib.eclass')
-rw-r--r-- | eclass/autotools-multilib.eclass | 71 |
1 files changed, 53 insertions, 18 deletions
diff --git a/eclass/autotools-multilib.eclass b/eclass/autotools-multilib.eclass index 0984c251d05b..9b133b29f84c 100644 --- a/eclass/autotools-multilib.eclass +++ b/eclass/autotools-multilib.eclass @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/autotools-multilib.eclass,v 1.17 2013/06/28 12:42:48 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/autotools-multilib.eclass,v 1.18 2013/11/24 10:25:52 mgorny Exp $ # @ECLASS: autotools-multilib.eclass # @MAINTAINER: @@ -15,6 +15,10 @@ # when the relevant flag is enabled. Other than that, it works like # regular autotools-utils. # +# The multilib phase functions can be overriden via defining multilib_* +# phase functions as in multilib-minimal.eclass. In some cases you may +# need to call the underlying autotools-utils_* phase though. +# # Note that the multilib support requires out-of-source builds to be # enabled. Thus, it is impossible to use AUTOTOOLS_IN_SOURCE_BUILD with # it. @@ -29,40 +33,71 @@ if [[ ${AUTOTOOLS_IN_SOURCE_BUILD} ]]; then die "${ECLASS}: multilib support requires out-of-source builds." fi -inherit autotools-utils multilib-build +inherit autotools-utils eutils multilib-build multilib-minimal EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install +# bug #485046 +_autotools-multilib_fix_multilib_minimal() { + src_conf=$(declare -f multilib-minimal_src_configure) + src_conf=${src_conf/multilib_foreach_abi/multilib_parallel_foreach_abi} + eval "${src_conf}" +} +_autotools-multilib_fix_multilib_minimal + +# Note: _at_args[@] passing is a backwards compatibility measure. +# Don't use it in new packages. + autotools-multilib_src_prepare() { autotools-utils_src_prepare "${@}" } +multilib_src_configure() { + autotools-utils_src_configure "${_at_args[@]}" +} + autotools-multilib_src_configure() { - multilib_parallel_foreach_abi autotools-utils_src_configure "${@}" + local _at_args=( "${@}" ) + + multilib-minimal_src_configure +} + +multilib_src_compile() { + emake "${_at_args[@]}" } autotools-multilib_src_compile() { - multilib_foreach_abi autotools-utils_src_compile "${@}" + local _at_args=( "${@}" ) + + multilib-minimal_src_compile +} + +multilib_src_test() { + autotools-utils_src_test "${_at_args[@]}" } autotools-multilib_src_test() { - multilib_foreach_abi autotools-utils_src_test "${@}" + local _at_args=( "${@}" ) + + multilib-minimal_src_test } -autotools-multilib_src_install() { - autotools-multilib_secure_install() { - autotools-utils_src_install "${@}" +multilib_src_install() { + emake DESTDIR="${D}" "${_at_args[@]}" install +} + +multilib_src_install_all() { + einstalldocs - # Do multilib magic only when >1 ABI is used. - if [[ ${#MULTIBUILD_VARIANTS[@]} -gt 1 ]]; then - multilib_prepare_wrappers - # Make sure all headers are the same for each ABI. - multilib_check_headers - fi - } + # Remove libtool files and unnecessary static libs + local prune_ltfiles=${AUTOTOOLS_PRUNE_LIBTOOL_FILES} + if [[ ${prune_ltfiles} != none ]]; then + prune_libtool_files ${prune_ltfiles:+--${prune_ltfiles}} + fi +} - multilib_foreach_abi autotools-multilib_secure_install "${@}" +autotools-multilib_src_install() { + local _at_args=( "${@}" ) - # merge the wrappers - multilib_install_wrappers + multilib-minimal_src_install } |