summaryrefslogtreecommitdiff
blob: 2a0c5d8f9e919ebf5bdad133fd1b28a4e1ca092d (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
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PYTHON_COMPAT=( python3_{10..13} )
inherit python-single-r1

DESCRIPTION="Versatile (cross-)toolchain generator"
HOMEPAGE="https://crosstool-ng.github.io/"

if [[ ${PV} == 9999 ]] ; then
	EGIT_REPO_URI="https://github.com/crosstool-ng/crosstool-ng.git"
	inherit autotools git-r3
else
	SRC_URI="
		https://github.com/crosstool-ng/crosstool-ng/releases/download/${PN}-${PV/_rc/-rc}/${P}.tar.xz
		http://crosstool-ng.org/download/crosstool-ng/${P}.tar.xz
	"

	if [[ ${PV} != *_rc* ]] ; then
		KEYWORDS="~amd64 ~x86"
	fi
fi

LICENSE="GPL-2 doc? ( CC-BY-SA-2.5 )"
SLOT="0"

REQUIRED_USE="${PYTHON_REQUIRED_USE}"
IUSE="curl cvs doc dtc git lzip meson ninja python rsync subversion wget"

# TODO: Consider dropping these USE (optfeature), but configure does check for them
BDEPEND="
	app-arch/unzip
	>=app-shells/bash-3.1
	sys-apps/help2man
	>=sys-apps/sed-4.0
	sys-apps/gawk
	sys-apps/texinfo
	sys-apps/which
	sys-devel/bison
	sys-devel/flex
	curl? ( net-misc/curl )
	cvs? ( dev-vcs/cvs )
	dtc? ( sys-apps/dtc )
	git? ( dev-vcs/git )
	lzip? ( app-arch/lzip )
	meson? ( dev-build/meson )
	python? ( ${PYTHON_DEPS} )
	ninja? ( app-alternatives/ninja )
	rsync? ( net-misc/rsync )
	subversion? ( dev-vcs/subversion )
	wget? ( net-misc/wget )
"
RDEPEND="
	${BDEPEND}
"

src_prepare() {
	if [[ ${PV} == 9999 ]]; then
		# Some data files must be generated before autoreconf, and the logic
		# is non-trivial, so the upstream bootstrap script must be used.
		# In addition, eautoreconf mis-detects the project to make use of
		# gettext while it actually isn't, so just rely on the invocation of
		# autoreconf for us in the bootstrap script.
		./bootstrap || die "bootstrap failed"
	fi

	default
}

src_configure() {
	# Needs bison+flex
	unset YACC LEX

	CONFIG_SHELL="${BROOT}"/bin/bash econf
}

src_install() {
	emake DESTDIR="${D}" install

	rm -f "${ED}"/usr/share/man/man1/ct-ng.1.gz || die
	doman docs/ct-ng.1
}