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

EAPI=7

inherit flag-o-matic toolchain-funcs readme.gentoo-r1

MY_PN="${PN/-sdl/}"
MY_PV="${PV/e/-5}"
MY_P="${MY_PN}-${MY_PV}"

DESCRIPTION="Portable redcode simulator's sdl port for core war"
HOMEPAGE="https://corewar.co.uk/pihlaja/pmars-sdl/"
SRC_URI="https://corewar.co.uk/pihlaja/pmars-sdl/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"

LICENSE="BSD GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="sdl X"

RDEPEND="
	sdl? ( x11-libs/libX11 media-libs/libsdl[video] )
	X? ( x11-libs/libX11 )
	!sdl? ( !X? ( sys-libs/ncurses:0= ) )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"

PATCHES=(
	"${FILESDIR}"/${P}-format.patch
)

DOC_CONTENTS="
	There are some macros in /usr/share/pmars/macros
	which you should make accessible to pmars by typing
	export PMARSHOME=/usr/share/pmars/macros\n
"

src_compile() {
	local LIB=""
	export LFLAGS="-x"

	append-cppflags -DEXT94 -DPERMUTATE

	if use sdl ; then
		append-cflags $(sdl-config --cflags)
		append-cppflags -DSDLGRAPHX

		LIB="$(sdl-config --libs)"
	elif use X ; then
		append-cppflags -DXWINGRAPHX

		LIB="$($(tc-getPKG_CONFIG) --libs x11)"
	else
		append-cppflags -DCURSESGRAPHX

		LIB="$($(tc-getPKG_CONFIG) --libs ncurses)"
	fi

	cd src || die

	local programs=(
		asm.c
		cdb.c
		clparse.c
		disasm.c
		eval.c
		global.c
		pmars.c
		sim.c
		pos.c
		str_eng.c
		token.c
	)

	for program in "${programs[@]}" ; do
		einfo "Compiling ${program}"
		$(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${program} -c || die
	done

	einfo "Linking with LIB: ${LIB}"
	$(tc-getCC) ${LDFLAGS} *.o ${LIB} -o ${MY_PN} || die
}

src_install() {
	dobin src/${MY_PN}
	doman doc/${MY_PN}.6

	dodoc AUTHORS CONTRIB ChangeLog README doc/redcode.ref
	readme.gentoo_create_doc

	insinto /usr/share/${MY_PN}/warriors
	doins warriors/*

	insinto /usr/share/${MY_PN}/macros
	doins config/*.mac
}

pkg_postinst() {
	readme.gentoo_print_elog
}