6c2881430a662deedc0f931bfa537c56c366fbd0
[gentoo.git] / dev-libs / libnl / libnl-3.4.0.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=6
5 PYTHON_COMPAT=( python2_7 python3_{5,6,7} )
6 DISTUTILS_OPTIONAL=1
7 inherit distutils-r1 eutils libtool multilib multilib-minimal
8
9 LIBNL_P=${P/_/-}
10 LIBNL_DIR=${PV/_/}
11 LIBNL_DIR=${LIBNL_DIR//./_}
12
13 DESCRIPTION="Libraries providing APIs to netlink protocol based Linux kernel interfaces"
14 HOMEPAGE="http://www.infradead.org/~tgr/libnl/ https://github.com/thom311/libnl"
15 SRC_URI="
16         https://github.com/thom311/${PN}/releases/download/${PN}${LIBNL_DIR}/${P/_rc/-rc}.tar.gz
17 "
18 LICENSE="LGPL-2.1 utils? ( GPL-2 )"
19 SLOT="3"
20 KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~amd64-linux ~x86-linux"
21 IUSE="+debug static-libs python +threads utils"
22
23 RDEPEND="
24         python? ( ${PYTHON_DEPS} )
25 "
26 DEPEND="
27         ${RDEPEND}
28         python? ( dev-lang/swig )
29         sys-devel/bison
30         sys-devel/flex
31 "
32 REQUIRED_USE="
33         python? ( ${PYTHON_REQUIRED_USE} )
34 "
35 DOCS=(
36         ChangeLog
37 )
38
39 S=${WORKDIR}/${LIBNL_P}
40
41 MULTILIB_WRAPPED_HEADERS=(
42         # we do not install CLI stuff for non-native
43         /usr/include/libnl3/netlink/cli/addr.h
44         /usr/include/libnl3/netlink/cli/class.h
45         /usr/include/libnl3/netlink/cli/cls.h
46         /usr/include/libnl3/netlink/cli/ct.h
47         /usr/include/libnl3/netlink/cli/exp.h
48         /usr/include/libnl3/netlink/cli/link.h
49         /usr/include/libnl3/netlink/cli/neigh.h
50         /usr/include/libnl3/netlink/cli/qdisc.h
51         /usr/include/libnl3/netlink/cli/route.h
52         /usr/include/libnl3/netlink/cli/rule.h
53         /usr/include/libnl3/netlink/cli/tc.h
54         /usr/include/libnl3/netlink/cli/utils.h
55 )
56
57 src_prepare() {
58         default
59
60         elibtoolize
61
62         if use python; then
63                 cd "${S}"/python || die
64                 distutils-r1_src_prepare
65         fi
66
67         # out-of-source build broken
68         # https://github.com/thom311/libnl/pull/58
69         multilib_copy_sources
70 }
71
72 multilib_src_configure() {
73         econf \
74                 $(multilib_native_use_enable utils cli) \
75                 $(use_enable debug) \
76                 $(use_enable static-libs static) \
77                 $(use_enable threads) \
78                 --disable-silent-rules
79 }
80
81 multilib_src_compile() {
82         default
83
84         if multilib_is_native_abi && use python; then
85                 cd python || die
86                 distutils-r1_src_compile
87         fi
88 }
89
90 multilib_src_install() {
91         emake DESTDIR="${D}" install
92
93         if multilib_is_native_abi && use python; then
94                 # Unset DOCS= since distutils-r1.eclass interferes
95                 local DOCS=()
96                 cd python || die
97                 distutils-r1_src_install
98         fi
99 }
100
101 multilib_src_install_all() {
102         einstalldocs
103         prune_libtool_files --modules
104 }