blob: c84fb3781a9757e97830c312e2ecb0a3a180226a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: multilib-minimal.eclass
# @MAINTAINER:
# Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
# @PROVIDES: multilib-build
# @BLURB: wrapper for multilib builds providing convenient multilib_src_* functions
# @DESCRIPTION:
#
# src_configure, src_compile, src_test and src_install are exported.
#
# Use multilib_src_* instead of src_* which runs this phase for
# all enabled ABIs.
#
# multilib-minimal should _always_ go last in inherit order!
#
# If you want to use in-source builds, then you must run
# multilib_copy_sources at the end of src_prepare!
# Also make sure to set correct variables such as
# ECONF_SOURCE=${S}
#
# If you need generic install rules, use multilib_src_install_all function.
inherit multilib-build
if [[ ! ${_MULTILIB_MINIMAL_ECLASS} ]]; then
_MULTILIB_MINIMAL_ECLASS=1
case ${EAPI} in
6)
ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!"
ewarn "${CATEGORY}/${PF}: Support will be removed on 2024-10-08. Please port to newer EAPI."
;;
7|8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
multilib-minimal_src_configure() {
debug-print-function ${FUNCNAME} "$@"
multilib-minimal_abi_src_configure() {
debug-print-function ${FUNCNAME} "$@"
mkdir -p "${BUILD_DIR}" || die
pushd "${BUILD_DIR}" >/dev/null || die
if declare -f multilib_src_configure >/dev/null ; then
multilib_src_configure
else
default_src_configure
fi
popd >/dev/null || die
}
multilib_foreach_abi multilib-minimal_abi_src_configure
}
multilib-minimal_src_compile() {
debug-print-function ${FUNCNAME} "$@"
multilib-minimal_abi_src_compile() {
debug-print-function ${FUNCNAME} "$@"
pushd "${BUILD_DIR}" >/dev/null || die
if declare -f multilib_src_compile >/dev/null ; then
multilib_src_compile
else
default_src_compile
fi
popd >/dev/null || die
}
multilib_foreach_abi multilib-minimal_abi_src_compile
}
multilib-minimal_src_test() {
debug-print-function ${FUNCNAME} "$@"
multilib-minimal_abi_src_test() {
debug-print-function ${FUNCNAME} "$@"
pushd "${BUILD_DIR}" >/dev/null || die
if declare -f multilib_src_test >/dev/null ; then
multilib_src_test
else
default_src_test
fi
popd >/dev/null || die
}
multilib_foreach_abi multilib-minimal_abi_src_test
}
multilib-minimal_src_install() {
debug-print-function ${FUNCNAME} "$@"
multilib-minimal_abi_src_install() {
debug-print-function ${FUNCNAME} "$@"
pushd "${BUILD_DIR}" >/dev/null || die
if declare -f multilib_src_install >/dev/null ; then
multilib_src_install
else
# default_src_install will not work here as it will
# break handling of DOCS wrt #468092
# so we split up the emake and doc-install part
# this is synced with __eapi4_src_install
if [[ -f Makefile || -f GNUmakefile || -f makefile ]] ; then
emake DESTDIR="${D}" install
fi
fi
multilib_prepare_wrappers
multilib_check_headers
popd >/dev/null || die
}
multilib_foreach_abi multilib-minimal_abi_src_install
multilib_install_wrappers
if declare -f multilib_src_install_all >/dev/null ; then
multilib_src_install_all
else
einstalldocs
fi
}
fi
EXPORT_FUNCTIONS src_configure src_compile src_test src_install
|