summaryrefslogtreecommitdiff
blob: 5435f121f83a87814d881c584bb33c881fee1517 (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
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/dev86/dev86-0.16.18.ebuild,v 1.5 2012/08/06 02:28:35 zerochaos Exp $

inherit eutils multilib

DESCRIPTION="Bruce's C compiler - Simple C compiler to generate 8086 code"
HOMEPAGE="http://www.debath.co.uk/"
SRC_URI="http://www.debath.co.uk/dev86/Dev86src-${PV}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""

RDEPEND="sys-devel/bin86"
DEPEND="${RDEPEND}
	dev-util/gperf"

src_unpack() {
	unpack ${A}
	# elksemu doesn't compile under amd64
	if use amd64; then
		einfo "Not compiling elksemu on amd64"
		sed -i.orig \
			-e 's,alt-libs elksemu,alt-libs,' \
			-e 's,install-lib install-emu,install-lib,' \
			"${S}"/makefile.in
	fi
	cd "${S}"
	epatch "${FILESDIR}"/dev86-pic.patch
	epatch "${FILESDIR}"/${PN}-0.16.17-fortify.patch
	sed -i \
		-e "s:-O2 -g:${CFLAGS}:" \
		-e '/INEXE=/s:-s::' \
		makefile.in
	sed -i -e '/INSTALL_OPTS=/s:-s::' bin86/Makefile
	sed -i -e '/install -m 755 -s/s:-s::' dis88/Makefile
}

src_compile() {
	# Don't mess with CPPFLAGS as they tend to break compilation
	# (bug #343655).
	CPPFLAGS=""

	emake -j1 DIST="${D}" CC="$(tc-getCC)" || die

	export PATH=${S}/bin:${PATH}
	cd bin
	ln -s ncc bcc
	cd ..
	cd bootblocks
	ln -s ../bcc/version.h .
	emake DIST="${D}" || die
}

src_install() {
	emake -j1 install-all LIBDIR="/usr/$(get_libdir)/bcc" INCLDIR="/usr/$(get_libdir)/bcc" DIST="${D}" || die
	dobin bootblocks/makeboot || die
	# remove all the stuff supplied by bin86
	cd "${D}"
	rm usr/bin/{as,ld,nm,objdump,size}86 || die
	rm usr/man/man1/{as,ld}86.1 || die
	dodir /usr/share/man
	mv usr/man usr/share/ || die
}