1SUMMARY="The GNU BackGammon"
2DESCRIPTION="GNU Backgammon (GNUbg) plays and analyzes backgammon games and matches. It is able \
3to play and analyze both money games and tournament matches, evaluate and roll out positions, and \
4more. Driven by a command-line interface, it displays an ASCII rendering of a board on text-only \
5terminals, but also allows the user to play games and manipulate positions with a graphical GTK+ \
6interface. GNU Backgammon is extensible on platforms which support Python.
7
8GNU Backgammon is a world class opponent and rates at over 2000 on FIBS, the First Internet \
9Backgammon Server.
10
11The following features can be found in the current release of GNU Backgammon.
12
13A command line interface (with full command editing features if GNU readline is available) that \
14lets you play matches and sessions against GNU Backgammon with a rough ASCII representation of \
15the board on text terminals.
16* Support for a GTK+ interface with a graphical board window. Both 2D and 3D graphics are \
17available.
18* Tournament match and money session cube handling and cubeful play. All governed by underlying \
19cubeless money game based neural networks.
20* Support for both 1-sided and 2-sided bearoff databases: 1-sided bearoff database for 15 \
21checkers on the first 6 points and optional 2-sided database kept in memory. Optional larger \
221-sided and 2-sided databases stored on disk.
23* Automated rollouts of positions, with lookahead and variance reduction where appropriate. \
24Rollouts may be extended.
25* Automatic and manual annotation (analysis and commentary) of games and matches.
26* Record keeping of statistics of players in games and matches (both native inside GNU Backgammon \
27and externally using relational databases and Python).
28* Loading and saving analyzed games and matches as .sgf files (Smart Game Format).
29* Exporting positions, games and matches to: (.eps) Encapsulated Postscript, (.gam) Jellyfish \
30Game, (.html) HTML, (.mat) Jellyfish Match, (.pdf) PDF, (.png) Portable Network Graphics, (.pos) \
31Jellyfish Position, (.ps) PostScript, (.sgf) GNU Backgammon File, (.tex) LaTeX, (.txt) Plain \
32Text, (.txt) Snowie Text
33* Import of matches and positions from a number of file formats: (.bgf) BGRoom Game, (.gam) \
34GammonEmpire Game, (.gam) PartyGammon Game, (.mat) Jellyfish Match, (.pos) Jellyfish Position, \
35(.sgf) GNU Backgammon File, (.sgg) GridGammon Save Game, (.tmg) TrueMoneyGames, (.txt) Snowie Text
36* Python Scripting ability.
37* Native language support; 15 languages complete or in progress: (cs_CZ, da_DK, en_GB; en_US, \
38fi_FI, fr_FR, de_DE, el_GR, is_IS, it_IT, ja_JP, ro_RO, ru_RU, es_ES and tr_TR)"
39HOMEPAGE="https://www.gnu.org/software/gnubg/"
40COPYRIGHT="1999-2004 Gary Wong
41	2004-2022 gnubg contributors"
42LICENSE="GNU GPL v3"
43REVISION="1"
44SOURCE_URI="https://ftp.gnu.org/gnu/gnubg/gnubg-release-$portVersion-sources.tar.gz"
45CHECKSUM_SHA256="72399729419cad9f112c3066a12d0000da450a456add7b094d89155069d6821e"
46
47ARCHITECTURES="all !x86_gcc2"
48SECONDARY_ARCHITECTURES="x86"
49
50commandBinDir=$binDir
51commandSuffix=$secondaryArchSuffix
52if [ "$targetArchitecture" = x86_gcc2 ]; then
53	commandSuffix=
54	commandBinDir=$prefix/bin
55fi
56
57PROVIDES="
58	gnubg$secondaryArchSuffix = $portVersion
59	cmd:bearoffdump$commandSuffix = $portVersion
60	cmd:gnubg$commandSuffix = $portVersion
61	cmd:makebearoff$commandSuffix = $portVersion
62	cmd:makehyper$commandSuffix = $portVersion
63	cmd:makeweights$commandSuffix = $portVersion
64	"
65REQUIRES="
66	haiku$secondaryArchSuffix
67	lib:libcurl$secondaryArchSuffix
68	lib:libfreetype$secondaryArchSuffix
69	lib:libglib_2.0$secondaryArchSuffix
70	lib:libgobject_2.0$secondaryArchSuffix
71	lib:libgthread_2.0$secondaryArchSuffix
72	lib:libintl$secondaryArchSuffix
73	lib:libpng16$secondaryArchSuffix
74#	lib:libpython3.10$secondaryArchSuffix
75	lib:libsqlite3$secondaryArchSuffix
76	"
77
78BUILD_REQUIRES="
79	haiku${secondaryArchSuffix}_devel
80	devel:libcurl$secondaryArchSuffix
81	devel:libfreetype$secondaryArchSuffix
82	devel:libglib_2.0$secondaryArchSuffix
83	devel:libgobject_2.0$secondaryArchSuffix
84	devel:libgthread_2.0$secondaryArchSuffix
85	devel:libintl$secondaryArchSuffix
86	devel:libpng16$secondaryArchSuffix
87	devel:libsqlite3$secondaryArchSuffix
88	"
89BUILD_PREREQUIRES="
90	cmd:aclocal
91	cmd:autoheader
92	cmd:automake
93	cmd:bison
94	cmd:gcc$secondaryArchSuffix
95	cmd:libtoolize$secondaryArchSuffix
96	cmd:flex
97	cmd:make
98	cmd:pkg_config$secondaryArchSuffix
99#	error on launch when python is enabled
100#	Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdio encoding
101#	cmd:python3
102	cmd:xsltproc
103	"
104
105BUILD()
106{
107	./autogen.sh
108	runConfigure --omit-dirs binDir ./configure \
109			--bindir=$commandBinDir \
110			--without-python
111	make $jobArgs
112}
113
114INSTALL()
115{
116	make install
117}
118
119TEST()
120{
121	make check
122}
123