dev-embedded/avr-libc: stable 2.0.0 for amd64, bug #620316 (thanks to Richard Kenney)
[gentoo.git] / dev-embedded / avr-libc / avr-libc-1.8.1.ebuild
1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI="5"
5
6 CHOST="avr"
7 CTARGET="avr"
8
9 inherit flag-o-matic eutils
10
11 DESCRIPTION="C library for Atmel AVR microcontrollers"
12 HOMEPAGE="http://www.nongnu.org/avr-libc/"
13 SRC_URI="https://savannah.nongnu.org/download/avr-libc/${P}.tar.bz2
14         https://savannah.nongnu.org/download/avr-libc/${PN}-manpages-${PV}.tar.bz2
15         doc? ( https://savannah.nongnu.org/download/avr-libc/${PN}-user-manual-${PV}.tar.bz2 )"
16
17 LICENSE="BSD"
18 SLOT="0"
19 # 'amd64' is a blessed placeholder for crossdev. It could
20 # be any other arch. See bug #620316#c5
21 # Don't add more arches to KEYWORDS.
22 KEYWORDS="~amd64"
23 IUSE="doc crosscompile_opts_headers-only"
24
25 DEPEND=">=sys-devel/crossdev-0.9.1"
26 [[ ${CATEGORY/cross-} != ${CATEGORY} ]] \
27         && RDEPEND="!dev-embedded/avr-libc" \
28         || RDEPEND=""
29
30 DOCS="AUTHORS ChangeLog* NEWS README"
31
32 pkg_setup() {
33         # check for avr-gcc, bug #134738
34         ebegin "Checking for avr-gcc"
35         if type -p avr-gcc > /dev/null ; then
36                 eend 0
37         else
38                 eend 1
39
40                 eerror
41                 eerror "Failed to locate 'avr-gcc' in \$PATH. You can install an AVR toolchain using:"
42                 eerror "  $ crossdev -t avr"
43                 eerror
44                 die "AVR toolchain not found"
45         fi
46 }
47
48 src_prepare() {
49         epatch_user #455828
50
51         # work around broken gcc versions PR45261
52         local mcu
53         for mcu in $(sed -r -n '/CHECK_AVR_DEVICE/{s:.*[(](.*)[)]:\1:;p}' configure.ac) ; do
54                 if avr-gcc -E - -mmcu=${mcu} <<<"" |& grep -q 'unknown MCU' ; then
55                         sed -i "/HAS_${mcu}=yes/s:yes:no:" configure
56                 fi
57         done
58
59         # Install docs in correct directory
60         sed -i -e "/DOC_INST_DIR/s:\$(VERSION):${PVR}:" configure || die
61
62         strip-flags
63         strip-unsupported-flags
64 }
65
66 src_install() {
67         default
68
69         # man pages can not go into standard locations
70         # as they would then overwrite libc man pages
71         insinto /usr/share/doc/${PF}/man/man3
72         doins "${WORKDIR}"/man/man3/*
73
74         use doc && dohtml "${WORKDIR}"/${PN}-user-manual-${PV}/*
75
76         # Make sure diff cross-compilers don't collide #414075
77         mv "${ED}"/usr/share/doc/{${PF},${CTARGET}-${PF}} || die
78 }