From: iyzsong--- via Guix-patches via <guix-patches@gnu.org>
To: 63391@debbugs.gnu.org
Cc: 宋文武 <iyzsong@member.fsf.org>
Subject: [bug#63391] [PATCH] gnu: Add bbcsdl.
Date: Tue, 9 May 2023 22:06:34 +0800 [thread overview]
Message-ID: <a387b889bd5714635509673309c21f8d95379eb6.1683641189.git.iyzsong@member.fsf.org> (raw)
From: 宋文武 <iyzsong@member.fsf.org>
* gnu/packages/game-development.scm (bbcsdl): New variable.
---
gnu/packages/game-development.scm | 72 +++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 844ce935ae..ae6a49b1a1 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -59,6 +59,7 @@ (define-module (gnu packages game-development)
#:use-module (guix build-system python)
#:use-module (guix build-system scons)
#:use-module (gnu packages)
+ #:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
@@ -2884,3 +2885,74 @@ (define-public raylib
writing your game.")
(home-page "https://www.raylib.com/")
(license license:zlib)))
+
+(define-public bbcsdl
+ (package
+ (name "bbcsdl")
+ (version "1.35a")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rtrussell/BBCSDL/")
+ (commit "b9b2a3eb438cb799edb2766055b3c38e9518e3e3")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d03xmhrl6ba6w0vwfk46mpyc9d0w3bixxj2d4irx7wl7bh3bfic"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; XXX: tests not automated
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'build
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; 'makefile' expects the source directory to be named 'BBCSDL'.
+ (symlink "source" "../BBCSDL")
+ ;; 'bbcsdl' finds 'libstb.so' in its RPATH.
+ (substitute* "bin/linux/makefile"
+ (("-Wl,-R,'\\$\\$ORIGIN'")
+ (string-append "-Wl,-rpath="
+ (assoc-ref outputs "out") "/opt/bbcsdl")))
+ ;; Build 'bbcbasic' and 'bbcsdl'.
+ (invoke "make" "-C" "console/linux")
+ (invoke "make" "-C" "bin/linux")))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (opt (string-append out "/opt/bbcsdl"))
+ (bin (string-append out "/bin")))
+ (for-each
+ (lambda (f)
+ (copy-recursively f (string-append opt "/" f)))
+ ;; Those files need to be installed into the same difertory.
+ '("lib" "examples" "bbcsdl.bbc"
+ "libstb.so" "bbcsdl" "bbcbasic"))
+ ;; Replace bundled fonts.
+ (for-each
+ (lambda (font)
+ (delete-file (string-append opt "/lib/" font))
+ (symlink
+ (search-input-file
+ inputs (string-append "share/fonts/truetype/" font))
+ (string-append opt "/lib/" font)))
+ '("DejaVuSans.ttf" "DejaVuSansMono.ttf"
+ "FreeSans.ttf" "FreeMono.ttf" "FreeSerif.ttf"))
+ (mkdir bin)
+ (symlink (string-append opt "/bbcsdl")
+ (string-append bin "/bbcsdl"))
+ (symlink (string-append opt "/bbcbasic")
+ (string-append bin "/bbcbasic"))))))))
+ (native-inputs (list nasm))
+ (inputs (list sdl2 sdl2-ttf sdl2-net font-dejavu font-gnu-freefont))
+ (synopsis "BBC BASIC for SDL 2.0")
+ (home-page "https://www.bbcbasic.co.uk/bbcsdl/")
+ (description
+ "BBC BASIC is the programming language originally specified and adopted
+by the British Broadcasting Corporation for its groundbreaking Computer
+Literacy Project of the early 1980s. BBC BASIC for SDL 2.0 combines the
+simplicity of BASIC with the sophistication of a modern structured language,
+allowing you to write utilities and games, use sound and graphics, perform
+calculations and create complete applications.")
+ (license license:zlib)))
base-commit: 649ce7b433171a47e8a2819b849bfa88c736d0e9
--
2.39.2
next reply other threads:[~2023-05-09 14:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-09 14:06 iyzsong--- via Guix-patches via [this message]
2023-05-14 3:10 ` bug#63391: [PATCH] gnu: Add bbcsdl 宋文武 via Guix-patches via
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a387b889bd5714635509673309c21f8d95379eb6.1683641189.git.iyzsong@member.fsf.org \
--to=guix-patches@gnu.org \
--cc=63391@debbugs.gnu.org \
--cc=iyzsong@envs.net \
--cc=iyzsong@member.fsf.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.