all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant.
@ 2024-09-15 19:03 manolis837
  2024-09-15 19:03 ` [bug#73278] [PATCH 2/2] gnu: Add ps1 homebrew development kit manolis837
  2024-09-16 12:00 ` [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant Jean-Pierre De Jesus Diaz
  0 siblings, 2 replies; 4+ messages in thread
From: manolis837 @ 2024-09-15 19:03 UTC (permalink / raw)
  To: 73277; +Cc: Manolis Ragkousis

From: Manolis Ragkousis <manolis837@gmail.com>

* gnu/packages/embedded.scm (make-mipsel-none-elf-toolchain-ps1): New procedure.
  (make-gcc-mipsel-none-elf, make-mipsel-none-elf-toolchain): New variables.

Change-Id: I8d4e1f5601bf255703750f95862d9427013e38e7
---
 gnu/packages/embedded.scm | 86 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 85 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index bee65663b6..8779cc5e71 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
 ;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2024 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -101,7 +102,9 @@ (define-module (gnu packages embedded)
             make-propeller-gcc-4
             make-propeller-gcc-6
             make-propeller-toolchain
-            make-propeller-development-suite))
+            make-propeller-development-suite
+
+            make-mipsel-none-elf-toolchain-ps1))
 
 ;;; Commentary:
 ;;;
@@ -1859,3 +1862,84 @@ (define-public ts4900-utils
 @item tssilomon
 @end itemize")
       (license license:bsd-2))))
+
+(define make-gcc-mipsel-none-elf
+  (mlambda ()
+    (let ((xgcc (cross-gcc "mipsel-none-elf"
+                           #:xgcc gcc
+                           #:xbinutils (cross-binutils "mipsel-none-elf"))))
+      (package
+        (inherit xgcc)
+        (arguments
+         (substitute-keyword-arguments (package-arguments xgcc)
+           ((#:phases phases)
+            #~(modify-phases #$phases
+                (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
+                  (lambda* (#:key inputs #:allow-other-keys)
+                    (let ((gcc (assoc-ref inputs  "gcc")))
+                      ;; Remove the default compiler from CPLUS_INCLUDE_PATH
+                      ;; to prevent header conflict with the GCC from
+                      ;; native-inputs.
+                      (setenv "CPLUS_INCLUDE_PATH"
+                              (string-join
+                               (delete (string-append gcc "/include/c++")
+                                       (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                     #\:))
+                               ":"))
+                      (format #t
+                              "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                              (getenv "CPLUS_INCLUDE_PATH")))))
+                (add-after 'unpack 'fix-genmultilib
+                  (lambda _
+                    (substitute* "gcc/genmultilib"
+                      (("#!/bin/sh") (string-append "#!" (which "sh"))))))))
+           ((#:configure-flags flags)
+            #~(append (list "--target=mipsel-none-elf"
+                            "--disable-docs"
+                            "--disable-nls"
+                            "--disable-werror"
+                            "--disable-libada"
+                            "--disable-libssp"
+                            "--disable-libquadmath"
+                            "--disable-threads"
+                            "--disable-libgomp"
+                            "--disable-libstdcxx-pch"
+                            "--disable-hosted-libstdcxx"
+                            "--enable-languages=c,c++"
+                            "--without-isl"
+                            "--without-headers"
+                            "--with-float=soft"
+                            "--with-gnu-as"
+                            "--with-gnu-ld")
+                      #$flags))))))))
+
+(define make-mipsel-none-elf-toolchain
+  (mlambda (xgcc)
+    "Produce a cross-compiler toolchain package with the compiler XGCC."
+    (let ()
+      (package
+        (name "mipsel-none-elf-toolchain")
+        (version (package-version xgcc))
+        (source #f)
+        (build-system trivial-build-system)
+        (arguments
+         '(#:modules ((guix build union))
+           #:builder
+           (begin
+             (use-modules (ice-9 match)
+                          (guix build union))
+             (match %build-inputs
+               (((names . directories) ...)
+                (union-build (assoc-ref %outputs "out")
+                             directories))))))
+        (propagated-inputs
+         `(("binutils" ,(cross-binutils "mipsel-none-elf"))
+           ("gcc" ,xgcc)))
+        (synopsis "")
+        (description "")
+        (home-page (package-home-page xgcc))
+        (license (package-license xgcc))))))
+
+(define make-mipsel-none-elf-toolchain-ps1
+  (mlambda () 
+    (make-mipsel-none-elf-toolchain (make-gcc-mipsel-none-elf))))

base-commit: 61b6c7ceb1e2c3baf9cdfbd05e6ad4f6d2dc2a3c
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#73278] [PATCH 2/2] gnu: Add ps1 homebrew development kit
  2024-09-15 19:03 [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant manolis837
@ 2024-09-15 19:03 ` manolis837
  2024-09-15 19:09   ` Liliana Marie Prikler
  2024-09-16 12:00 ` [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant Jean-Pierre De Jesus Diaz
  1 sibling, 1 reply; 4+ messages in thread
From: manolis837 @ 2024-09-15 19:03 UTC (permalink / raw)
  To: 73278
  Cc: Manolis Ragkousis, Adam Faiz, Liliana Marie Prikler,
	宋文武

From: Manolis Ragkousis <manolis837@gmail.com>

* gnu/packages/game-development.scm (miniaudio): New variable.
  (miniaudio-0.10.43): New variable.
  (gulrak-filesystem): New variable.
  (ThreadPool): New variable.
  (mkpsxiso): New variable.
  (psn00bsdk): New variable.

Change-Id: I96cbfa6bb91ed90b183297cc3118bb9411e11705
---
 gnu/packages/game-development.scm | 249 +++++++++++++++++++++++++++++-
 1 file changed, 248 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index efbbabaaf5..af5d2506d9 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2018, 2019, 2024 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;; Copyright © 2017, 2024 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017, 2019 Rutger Helling <rhelling@mykolab.com>
@@ -75,6 +75,7 @@ (define-module (gnu packages game-development)
   #:use-module (gnu packages check)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages embedded)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
@@ -82,6 +83,7 @@ (define-module (gnu packages game-development)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages gawk)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -3382,3 +3384,248 @@ (define-public bbcsdl
 allowing you to write utilities and games, use sound and graphics, perform
 calculations and create complete applications.")
     (license license:zlib)))
+
+(define-public miniaudio
+  (package
+    (name "miniaudio")
+    (version "0.11.21")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mackron/miniaudio")
+                    (commit version)
+                    (recursive? #f)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0hlqp44ifi3vswvfpqljj89321y6yz3zq6rng51wfq8p4n9k5qhh"))))
+    (build-system copy-build-system)
+    (arguments
+     (list #:tests? #f))
+    (synopsis "Audio playback and capture library for C and C++")
+    (description
+     "Miniaudio is a lightweight, single-file audio playback and capture
+library designed for use in C and C++ applications.  It features no external
+dependencies, making it highly portable and easy to integrate.")
+    (home-page "https://miniaud.io/")
+    (license license:expat-0)))
+
+(define-public miniaudio-0.10.43
+  (package (inherit miniaudio)
+    (name "miniaudio")
+    (version "0.10.43")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mackron/miniaudio")
+                    (commit "8686f52e6625e562f4756b946696692c016324ab")
+                    (recursive? #f)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0lv5gq23rspa3s9yqr3lhrfvbz63zcnkbxngsl2bgvj79x49vw9a"))))))
+
+(define-public gulrak-filesystem
+  (package
+    (name "gulrak-filesystem")
+    (version "v1.5.14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gulrak/filesystem")
+                    (commit version)
+                    (recursive? #f)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0n1w2q0fp31z2l7g16ysc5nwyhmy3rj3hb89ganws0j84g3hi7ax"))))
+    (build-system copy-build-system)
+    (arguments
+     (list #:tests? #f))
+    (synopsis "Header-only single-file std::filesystem helper library for C++")
+    (description
+ "This library provides std::filesystem-compatible functionality for C++11,
+C++14, C++17, and C++20.  It is portable, tested on various platforms, and
+resides in the ghc::filesystem namespace to avoid conflicts with
+std::filesystem.")
+    (home-page "https://github.com/gulrak/filesystem")
+    (license license:expat)))
+
+(define-public ThreadPool
+  (package
+    (name "ThreadPool")
+    ;; No actual version in upstream
+    (version "v0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/progschj/ThreadPool")
+                    (commit "9a42ec1329f259a5f4881a291db1dcb8f2ad9040")
+                    (recursive? #f)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "020j6cgvl9aq2gs6fndl31w7wni7djwl90nw465bnmx0648ss89n"))))
+    (build-system copy-build-system)
+    (arguments
+     (list #:tests? #f))
+    (synopsis "Simple C++11 Thread Pool implementation")
+    (description
+     "A simple C++11 Thread Pool implementation.")
+    (home-page "https://github.com/progschj/ThreadPool")
+    (license license:expat)))
+
+(define-public mkpsxiso
+  (package
+    (name "mkpsxiso")
+    (version "v2.04")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Lameguy64/mkpsxiso")
+                    (commit version)
+                    (recursive? #f)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "19cs5i39qhgwabrcklm6dym9p1zqmsgfgv6hcfc5z207yzdc9qhl"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f  ;no test
+           #:configure-flags
+           #~(list "-DCMAKE_CXX_FLAGS=-fpermissive")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'copy-tinyxml2
+                 (lambda _
+                   (copy-recursively
+                    #$(package-source tinyxml2)
+                    "tinyxml2")))
+               (add-after 'copy-tinyxml2 'copy-miniaudio
+                 (lambda _
+                   (copy-recursively
+                    #$(package-source miniaudio-0.10.43)
+                    "miniaudio")))
+               (add-after 'copy-miniaudio 'copy-gulrak-filesystem
+                 (lambda _
+                   (copy-recursively
+                    #$(package-source gulrak-filesystem)
+                    "ghc")))
+               (add-after 'copy-gulrak-filesystem 'copy-threadpool
+                 (lambda _
+                   (copy-recursively
+                    #$(package-source ThreadPool)
+                    "ThreadPool")))
+               (add-after 'copy-threadpool 'copy-flac
+                 (lambda _
+                   (mkdir-p "flac")
+                   (with-directory-excursion "flac"
+                     (invoke "tar" "xvf" #$(package-source flac)
+                             "--strip-components=1")))))))
+    (inputs (list glfw pulseaudio))
+    (native-inputs
+     (list
+      pkg-config
+      tinyxml2
+      miniaudio-0.10.43
+      gulrak-filesystem
+      ThreadPool
+      flac
+      ninja))
+    (synopsis "Builds PlayStation CD images from an XML document")
+    (description
+     "MKPSXISO is capable of generating 2352 byte per sector ISO images with
+CD-DA audio tracks and mixed-mode CD-XA and interleaved data for streaming
+content.  It also uses XML with very simple to use directives for scripting the
+contents of the image project.")
+    (home-page "http://lameguy64.net/")
+    (license license:gpl2)))
+
+(define-public psn00bsdk
+  (package
+    (name "psn00bsdk")
+    (version "v0.24")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Lameguy64/PSn00bSDK")
+                    (commit "702bb601fb5712e2ae962a34b89204c646fe98f5")
+                    (recursive? #f)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1nvy6lff4p54127awc4pl0a73myrgssihksvpaxamadzpk12vvl4"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f  ;no test
+           #:configure-flags
+           #~(list "-DCMAKE_BUILD_TYPE=Release"
+                   "-DSKIP_EXAMPLES=true"
+                   (string-append
+                    "-DCMAKE_ASM_FLAGS=-Wa,-I"
+                    #$source
+                    "/libpsn00b/include,-march=r3000"))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-cmake
+                 (lambda _
+                   (substitute* "CMakeLists.txt"
+                     ;; Modify ExternalProject_Add for 'libpsn00b-debug'
+                     (("CMAKE_CACHE_ARGS[^\n]+-DCMAKE_BUILD_TYPE:STRING=Debug")
+                      (string-append
+                       "CMAKE_CACHE_ARGS ${_libpsn00b_args} -DCMAKE_BUILD_TYPE:STRING=Debug "
+                       "-DCMAKE_ASM_FLAGS:STRING=-Wa,-I"
+                       #$source "/libpsn00b/include,-march=r3000"))
+                     ;; Modify ExternalProject_Add for 'libpsn00b-release'
+                     (("CMAKE_CACHE_ARGS[^\n]+-DCMAKE_BUILD_TYPE:STRING=Release")
+                      (string-append
+                       "CMAKE_CACHE_ARGS ${_libpsn00b_args} -DCMAKE_BUILD_TYPE:STRING=Release "
+                       "-DCMAKE_ASM_FLAGS:STRING=-Wa,-I"
+                       #$source "/libpsn00b/include,-march=r3000")))))
+               (add-after 'patch-cmake 'copy-mkpsxiso
+                 (lambda _
+                   (copy-recursively
+                    #$(package-source mkpsxiso)
+                    "tools/mkpsxiso")))
+               (add-after 'copy-mkpsxiso 'copy-tinyxml2
+                 (lambda _
+                   (copy-recursively #$(package-source tinyxml2) "tools/tinyxml2")
+                   (with-directory-excursion "tools/mkpsxiso"
+                     (copy-recursively
+                      #$(package-source tinyxml2)
+                      "tinyxml2"))))
+               (add-after 'copy-tinyxml2 'copy-miniaudio
+                 (lambda _
+                   (with-directory-excursion "tools/mkpsxiso"
+                     (copy-recursively
+                      #$(package-source miniaudio-0.10.43)
+                      "miniaudio"))))
+               (add-after 'copy-miniaudio 'copy-gulrak-filesystem
+                 (lambda _
+                   (with-directory-excursion "tools/mkpsxiso"
+                     (copy-recursively
+                      #$(package-source gulrak-filesystem)
+                      "ghc"))))
+               (add-after 'copy-gulrak-filesystem 'copy-threadpool
+                 (lambda _
+                   (with-directory-excursion "tools/mkpsxiso"
+                     (copy-recursively
+                      #$(package-source ThreadPool)
+                      "ThreadPool"))))
+               (add-after 'copy-threadpool 'copy-flac
+                 (lambda _
+                   (mkdir-p "flac")
+                   (with-directory-excursion "tools/mkpsxiso/flac"
+                     (invoke "tar" "xvf" #$(package-source flac)
+                             "--strip-components=1")))))))
+    (propagated-inputs
+     `(("mipsel-none-elf-toolchain" ,(make-mipsel-none-elf-toolchain-ps1))))
+    (native-inputs (list pkg-config))
+    (synopsis "Homebrew software development kit for the original Sony
+PlayStation")
+    (description
+     "Sn00bSDK is a set of libraries that implements most of the core
+functionality of the official Sony SDK (excluding higher-level libraries) plus
+several new extensions to it.")
+    (home-page "http://lameguy64.net/")
+    (license license:mpl2.0)))
-- 
2.46.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#73278] [PATCH 2/2] gnu: Add ps1 homebrew development kit
  2024-09-15 19:03 ` [bug#73278] [PATCH 2/2] gnu: Add ps1 homebrew development kit manolis837
@ 2024-09-15 19:09   ` Liliana Marie Prikler
  0 siblings, 0 replies; 4+ messages in thread
From: Liliana Marie Prikler @ 2024-09-15 19:09 UTC (permalink / raw)
  To: manolis837, 73278; +Cc: 宋文武, Adam Faiz

Am Sonntag, dem 15.09.2024 um 22:03 +0300 schrieb manolis837@gmail.com:
> From: Manolis Ragkousis <manolis837@gmail.com>
> 
> * gnu/packages/game-development.scm (miniaudio): New variable.
>   (miniaudio-0.10.43): New variable.
>   (gulrak-filesystem): New variable.
>   (ThreadPool): New variable.
>   (mkpsxiso): New variable.
>   (psn00bsdk): New variable.
Please only do one package per patch.

> […]
> +     (list #:tests? #f))
Should always be documented (using a comment).

> +    (synopsis "Header-only single-file std::filesystem helper
> library for C++")
Perhaps we can shorten that a little?
> +    (description
> + "This library provides std::filesystem-compatible functionality for
> C++11,
> +C++14, C++17, and C++20.  It is portable, tested on various
> platforms, and
> +resides in the ghc::filesystem namespace to avoid conflicts with
> +std::filesystem.")
> +    (home-page "https://github.com/gulrak/filesystem")
> +    (license license:expat)))
It looks like gulrak-filesystem is actually defined already.

> +(define-public ThreadPool
Use kebab-case.

> […]
> +    (description
> +     "A simple C++11 Thread Pool implementation.")
Avoid marketing speech ("simple" often isn't, particularly with thread
pools 😉).

> +    (home-page "https://github.com/progschj/ThreadPool")
> +    (license license:expat)))
> +
> +(define-public mkpsxiso
> +  (package
> +    (name "mkpsxiso")
> +    (version "v2.04")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/Lameguy64/mkpsxiso")
> +                    (commit version)
> +                    (recursive? #f)))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +               
> "19cs5i39qhgwabrcklm6dym9p1zqmsgfgv6hcfc5z207yzdc9qhl"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list #:tests? #f  ;no test
> +           #:configure-flags
> +           #~(list "-DCMAKE_CXX_FLAGS=-fpermissive")
> +           #:phases
> +           #~(modify-phases %standard-phases
> +               (add-after 'unpack 'copy-tinyxml2
> +                 (lambda _
> +                   (copy-recursively
> +                    #$(package-source tinyxml2)
> +                    "tinyxml2")))
> +               (add-after 'copy-tinyxml2 'copy-miniaudio
> +                 (lambda _
> +                   (copy-recursively
> +                    #$(package-source miniaudio-0.10.43)
> +                    "miniaudio")))
> +               (add-after 'copy-miniaudio 'copy-gulrak-filesystem
> +                 (lambda _
> +                   (copy-recursively
> +                    #$(package-source gulrak-filesystem)
> +                    "ghc")))
> +               (add-after 'copy-gulrak-filesystem 'copy-threadpool
> +                 (lambda _
> +                   (copy-recursively
> +                    #$(package-source ThreadPool)
> +                    "ThreadPool")))
> +               (add-after 'copy-threadpool 'copy-flac
> +                 (lambda _
> +                   (mkdir-p "flac")
> +                   (with-directory-excursion "flac"
> +                     (invoke "tar" "xvf" #$(package-source flac)
> +                             "--strip-components=1")))))))
Do actually unbundle those instead of copying their sources.
> +    (inputs (list glfw pulseaudio))
> +    (native-inputs
> +     (list
> +      pkg-config
> +      tinyxml2
> +      miniaudio-0.10.43
> +      gulrak-filesystem
> +      ThreadPool
> +      flac
> +      ninja))
> +    (synopsis "Builds PlayStation CD images from an XML document")
> +    (description
> +     "MKPSXISO is capable of generating 2352 byte per sector ISO
> images with
> +CD-DA audio tracks and mixed-mode CD-XA and interleaved data for
> streaming
> +content.  It also uses XML with very simple to use directives for
> scripting the
> +contents of the image project.")
> +    (home-page "http://lameguy64.net/")
> +    (license license:gpl2)))
> +
> +(define-public psn00bsdk
> +  (package
> +    (name "psn00bsdk")
> +    (version "v0.24")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/Lameguy64/PSn00bSDK")
> +                    (commit
> "702bb601fb5712e2ae962a34b89204c646fe98f5")
> +                    (recursive? #f)))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +               
> "1nvy6lff4p54127awc4pl0a73myrgssihksvpaxamadzpk12vvl4"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list #:tests? #f  ;no test
> +           #:configure-flags
> +           #~(list "-DCMAKE_BUILD_TYPE=Release"
> +                   "-DSKIP_EXAMPLES=true"
> +                   (string-append
> +                    "-DCMAKE_ASM_FLAGS=-Wa,-I"
> +                    #$source
> +                    "/libpsn00b/include,-march=r3000"))
> +           #:phases
> +           #~(modify-phases %standard-phases
> +               (add-after 'unpack 'patch-cmake
> +                 (lambda _
> +                   (substitute* "CMakeLists.txt"
> +                     ;; Modify ExternalProject_Add for 'libpsn00b-
> debug'
> +                     (("CMAKE_CACHE_ARGS[^\n]+-
> DCMAKE_BUILD_TYPE:STRING=Debug")
> +                      (string-append
> +                       "CMAKE_CACHE_ARGS ${_libpsn00b_args} -
> DCMAKE_BUILD_TYPE:STRING=Debug "
> +                       "-DCMAKE_ASM_FLAGS:STRING=-Wa,-I"
> +                       #$source "/libpsn00b/include,-march=r3000"))
> +                     ;; Modify ExternalProject_Add for 'libpsn00b-
> release'
> +                     (("CMAKE_CACHE_ARGS[^\n]+-
> DCMAKE_BUILD_TYPE:STRING=Release")
> +                      (string-append
> +                       "CMAKE_CACHE_ARGS ${_libpsn00b_args} -
> DCMAKE_BUILD_TYPE:STRING=Release "
> +                       "-DCMAKE_ASM_FLAGS:STRING=-Wa,-I"
> +                       #$source "/libpsn00b/include,-
> march=r3000")))))
> +               (add-after 'patch-cmake 'copy-mkpsxiso
> +                 (lambda _
> +                   (copy-recursively
> +                    #$(package-source mkpsxiso)
> +                    "tools/mkpsxiso")))
> +               (add-after 'copy-mkpsxiso 'copy-tinyxml2
> +                 (lambda _
> +                   (copy-recursively #$(package-source tinyxml2)
> "tools/tinyxml2")
> +                   (with-directory-excursion "tools/mkpsxiso"
> +                     (copy-recursively
> +                      #$(package-source tinyxml2)
> +                      "tinyxml2"))))
> +               (add-after 'copy-tinyxml2 'copy-miniaudio
> +                 (lambda _
> +                   (with-directory-excursion "tools/mkpsxiso"
> +                     (copy-recursively
> +                      #$(package-source miniaudio-0.10.43)
> +                      "miniaudio"))))
> +               (add-after 'copy-miniaudio 'copy-gulrak-filesystem
> +                 (lambda _
> +                   (with-directory-excursion "tools/mkpsxiso"
> +                     (copy-recursively
> +                      #$(package-source gulrak-filesystem)
> +                      "ghc"))))
> +               (add-after 'copy-gulrak-filesystem 'copy-threadpool
> +                 (lambda _
> +                   (with-directory-excursion "tools/mkpsxiso"
> +                     (copy-recursively
> +                      #$(package-source ThreadPool)
> +                      "ThreadPool"))))
> +               (add-after 'copy-threadpool 'copy-flac
> +                 (lambda _
> +                   (mkdir-p "flac")
> +                   (with-directory-excursion "tools/mkpsxiso/flac"
> +                     (invoke "tar" "xvf" #$(package-source flac)
> +                             "--strip-components=1")))))))
As above.

Cheers

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant.
  2024-09-15 19:03 [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant manolis837
  2024-09-15 19:03 ` [bug#73278] [PATCH 2/2] gnu: Add ps1 homebrew development kit manolis837
@ 2024-09-16 12:00 ` Jean-Pierre De Jesus Diaz
  1 sibling, 0 replies; 4+ messages in thread
From: Jean-Pierre De Jesus Diaz @ 2024-09-16 12:00 UTC (permalink / raw)
  To: 73277; +Cc: manolis837

Hello,

Just letting you know that using `cross-gcc-toolchain` is preferred
and since the usage
is to provide a PS1 SDK I think you can add this to the list of bare
metal targets in Guix.

See `guix build --list-targets', for example it contains avr,
xtensa-ath9k-elf and or1k-elf.

This can be done by adding a variable to:

- `guix/platforms/mips.scm'

So, this should allow to add this target as an argument to your
`psn00bsdk' package:

For example:

(arguments
  (list #:target "mipsel-none-elf"
        ...))

And the build system will:

1. Automayically add the cross-gcc compiler.
2. Will also cross-compile inputs (excluding native-inputs, of course).

So that will allow you to unbundle the dependencies as you could just build
each one independently for that target (or for all ones, if the
library supports it).

With this though you'll probably need to create a separate package for
the tools and
one for the code that runs on the PS1 itself.

You can take inspiration from the existing bare-metal targets and
packages compiled
like this (which are few), there is firmware on
`gnu/packages/firmware.scm' that does
this.  Also the QMK firmware for keyboards use the Guix
cross-compilation mechanism
too.

Additionally, you can provide the toolchain as a package on the
`gnu/package/cross-toolchain.scm` module.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-09-16 12:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-15 19:03 [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant manolis837
2024-09-15 19:03 ` [bug#73278] [PATCH 2/2] gnu: Add ps1 homebrew development kit manolis837
2024-09-15 19:09   ` Liliana Marie Prikler
2024-09-16 12:00 ` [bug#73277] [PATCH 1/2] gnu: Add mipsel-none-elf-toolchain variant Jean-Pierre De Jesus Diaz

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.