summaryrefslogtreecommitdiff
blob: 3f6ff2de7a8d7fd6b3e10032892c5b82a7c64a28 (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
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-roguelike/angband/angband-3.2.0.ebuild,v 1.1 2011/01/16 02:07:31 mr_bones_ Exp $

EAPI=2
inherit autotools eutils versionator games

MAJOR_PV=$(get_version_component_range 1-2)
MY_P=${P/_p/v}

DESCRIPTION="A roguelike dungeon exploration game based on the books of J.R.R. Tolkien"
HOMEPAGE="http://rephial.org/"
SRC_URI="http://rephial.org/downloads/${MAJOR_PV}/${MY_P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="gtk ncurses sdl +sound X"

RDEPEND="gtk? ( gnome-base/libglade
	   x11-libs/pango
	   x11-libs/gtk+:2
	   dev-libs/glib:2 )
	X? ( x11-libs/libSM
		 x11-libs/libX11 )
	!ncurses? ( !X? ( !sdl? ( !gtk? ( sys-libs/ncurses ) ) ) )
	sdl? ( media-libs/libsdl[video,X]
		media-libs/sdl-ttf
		media-libs/sdl-image
		sound? ( media-libs/sdl-mixer
			media-libs/libsdl[audio] ) )"
DEPEND="${RDEPEND}
	dev-util/pkgconfig"

S=${WORKDIR}/${MY_P}

src_prepare() {
	epatch "${FILESDIR}"/${P}-array.patch
	# The 3.2.0 tarball as of writing is dirty and has object files
	# in it that foul the build process.  Find is quicker than configuring
	# twice.
	find "${S}" -name '*.o' -exec rm -f '{}' +
	eautoreconf || die
}

src_configure() {
	local myconf

	if use sdl; then
		myconf="$(use_enable sound sdl-mixer)"
	else
		myconf="--disable-sdl-mixer"
	fi

	egamesconf \
		--bindir="${GAMES_BINDIR}" \
		--with-configpath="${GAMES_SYSCONFDIR}/${PN}" \
		--with-libpath="${GAMES_DATADIR}/${PN}" \
		--with-varpath="${GAMES_STATEDIR}/${PN}" \
		--with-private-dirs \
		$(use_enable X x11) \
		$(use_enable gtk) \
		$(use_enable sdl) \
		$(use_enable ncurses curses) \
		$( use !gtk && use !sdl && use !ncurses && use !X && \
			echo --enable-curses) \
		${myconf}
}

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

	# Edit files are now system config files in Angband, but
	# users will be hidden from applying updates by default
	echo "CONFIG_PROTECT_MASK=\"${GAMES_SYSCONFDIR}/${PN}/edit/\"" \
		> "${T}"/99${PN}
	doenvd "${T}"/99${PN} || die

	dodoc changes.txt faq.txt readme.txt thanks.txt || die

	# Create desktop entries if required.
	ICON_LOC="${GAMES_DATADIR}/${PN}/xtra/icon/att-32.png"
	if use X; then
		make_desktop_entry "angband -mx11" "Angband (X11)" "${ICON_LOC}" || die
	fi

	if use sdl; then
		make_desktop_entry "angband -msdl" "Angband (SDL)" "${ICON_LOC}" || die
	fi

	if use gtk; then
		make_desktop_entry "angband -mgtk" "Angband (GTK)" "${ICON_LOC}" || die
	fi

	use ncurses || rm -rf "${D}${GAMES_DATADIR}/${PN}/xtra/graf"
	use sound || rm -rf "${D}${GAMES_DATADIR}/${PN}/xtra/sound"

	prepgamesdirs
}

pkg_postinst() {
	echo
	elog "Angband now uses private savefiles instead of system-wide ones"
	elog "This version of Angband is not compatible with the save files"
	elog "of previous versions"
	echo

	games_pkg_postinst
}