summaryrefslogtreecommitdiff
path: root/gnu/packages/games.scm
diff options
context:
space:
mode:
authorFoo Chuan Wei <chuanwei.foo@hotmail.com>2021-12-10 06:09:08 +0000
committerLudovic Courtès <ludo@gnu.org>2021-12-22 23:23:17 +0100
commit72a5895b7e68e814e58ec96ca51624ca682247dc (patch)
tree956f21b71803315b1db81c6bf9d65e3a05980dc3 /gnu/packages/games.scm
parente89f767ce8990f4959616031e3c98fbfe92a008b (diff)
downloadguix-patches-72a5895b7e68e814e58ec96ca51624ca682247dc.tar
guix-patches-72a5895b7e68e814e58ec96ca51624ca682247dc.tar.gz
gnu: Add xblackjack.
* gnu/packages/games.scm (xblackjack): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/games.scm')
-rw-r--r--gnu/packages/games.scm76
1 files changed, 76 insertions, 0 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6258d65f97..fa6865c050 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -67,6 +67,7 @@
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -151,6 +152,7 @@
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages less)
+ #:use-module (gnu packages lesstif)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libidn)
@@ -12200,6 +12202,80 @@ game.") ;thanks to Debian for description
computer opponents or against real players online.")
(license license:agpl3+)))
+(define-public xblackjack
+ (package
+ (name "xblackjack")
+ (version "2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.ibiblio.org/pub/X11/contrib/games/"
+ "xblackjack-" version ".tar.gz"))
+ (sha256
+ (base32 "05h93rya7zwnx2l58f0a7wkjadymkj4y77clcr2hryhrhhy1vwjx"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((imake (assoc-ref inputs "imake"))
+ (out (assoc-ref outputs "out")))
+ (substitute* "Imakefile"
+ (("EXTRA_LIBRARIES = -lXm \\$\\(DEPLIBS\\) -lbsd")
+ "EXTRA_LIBRARIES = -lXm -lXt -lXmu -lXext -lX11")
+ (("^#define NonStandardInstallTargets NO")
+ "#define NonStandardInstallTargets YES")
+ (("BINDIR = /usr/local/bin")
+ (string-append "BINDIR = " out "/bin"))
+ (("MANDIR = /usr/local/man/cat1")
+ (string-append "MANDIR = " out "/share/man/man1"))
+ (("XAPPLOADDIR = /usr/local/lib/app-defaults")
+ (string-append "XAPPLOADDIR = " out "/lib/X11/app-defaults")))
+
+ (invoke "xmkmf") ; Generate Makefile.
+ (substitute* "Makefile"
+ ((imake) out)
+ (("ETCX11DIR = /etc/X11")
+ (string-append "ETCX11DIR = " out "/etc/X11"))
+ ;; Fix incorrect argument given to gcc. Error message:
+ ;; "gcc: error: DefaultGcc2AMD64Opt: No such file or directory"
+ (("CDEBUGFLAGS = [^\n]*") ""))
+
+ ;; Fix header paths.
+ (substitute* '("Draw.c"
+ "Strategy.c")
+ (("^#include <X11/Xm/Xm.h>")
+ "#include <Xm/Xm.h>"))
+ (substitute* "Strategy.c"
+ (("^#include <X11/Xm/Label.h>")
+ "#include <Xm/Label.h>"))
+
+ ;; Fix compilation errors.
+ (substitute* "Table.c"
+ (("/\\* focus_moved_proc \\*/\tXtInheritFocusMovedProc,") "")
+ (("_XmMoveObject\\(\\(RectObj\\) w, rx, ry\\);")
+ "_XmMoveObject(w, rx, ry);")
+ (("_XmResizeObject\\(\\(RectObj\\) managed->locs[i].w, nw, nh,")
+ "_XmResizeObject(managed->locs[i].w, nw, nh,")))))
+ (add-after 'install 'install-man-pages
+ (lambda _
+ (invoke "make" "install.man"))))
+ #:tests? #f)) ; No check target.
+ (inputs
+ (list lesstif libx11 libxext libxmu libxt))
+ (native-inputs
+ (list imake))
+ (home-page "https://www.ibiblio.org/pub/X11/contrib/games/")
+ (synopsis "X11/Motif blackjack game")
+ (description
+ "Xblackjack is a MOTIF/OLIT based tool constructed to get you ready for
+the casino. It was inspired by a book called \"Beat the Dealer\" by Edward
+O. Thorp, Ph.D. of UCLA. A number of important statistics are maintained
+for display, and used by the program to implement Thorp's \"Complete Point
+System\" (high-low system).")
+ (license (license:x11-style "" "See file headers."))))
+
(define-public azimuth
(package
(name "azimuth")