From 1d50c43baa360a45fe0ae2d6982bde30a2cecf6b Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 2 Dec 2018 17:46:25 -0500 Subject: guix: Upgrade to Guile with JIT. --- guix.scm | 61 ++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 21 deletions(-) diff --git a/guix.scm b/guix.scm index f0bf114..b54af4b 100644 --- a/guix.scm +++ b/guix.scm @@ -35,11 +35,12 @@ (use-modules (ice-9 match) (srfi srfi-1) - (guix packages) - (guix licenses) + (guix build-system gnu) (guix download) (guix git-download) - (guix build-system gnu) + (guix licenses) + (guix packages) + (guix utils) (gnu packages) (gnu packages autotools) (gnu packages pkg-config) @@ -50,24 +51,43 @@ (gnu packages maths) (gnu packages image)) -(define (package-with-guile p guile) +(define guile-opengl (package - (inherit p) + (inherit guile-opengl) (inputs (map (match-lambda (("guile" _) - `("guile" ,guile)) + `("guile" ,guile-next)) (input input)) - (package-inputs p))))) - -(define (package-with-guile-2.2 p) - (package-with-guile p guile-2.2.4)) + (package-inputs guile-opengl))) + (native-inputs + (append (package-native-inputs guile-opengl) + `(("autoconf" ,autoconf) + ("automake" ,automake)))) + (arguments + (substitute-keyword-arguments (package-arguments guile-opengl) + ((#:phases phases) + `(modify-phases ,phases + (delete 'patch-makefile) + (add-before 'bootstrap 'patch-configure.ac + (lambda _ + ;; The Guile version check doesn't work for the 3.0 + ;; pre-release, so just remove it. + (substitute* "configure.ac" + (("GUILE_PKG\\(\\[2.2 2.0\\]\\)") "")) + (substitute* "Makefile.am" + (("\\$\\(GUILE_EFFECTIVE_VERSION\\)") "3.0") + (("ccache") "site-ccache")) + #t)) + (replace 'bootstrap + (lambda _ + (invoke "autoreconf" "-vfi"))))))))) (define guile-sdl2 - (let ((commit "5a6ea82c9ad859972c01d2908b2f66fb3addcfbb")) + (let ((commit "d0f9c26dce6e23533c23e401f604d712b43d4420")) (package (name "guile-sdl2") - (version "0.2.0-1.") + (version (string-append "0.3.1-1." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference @@ -75,7 +95,7 @@ (commit commit))) (sha256 (base32 - "1gc8f24l2y939a673kix0jd0kqr4zgwr8kd5qy60czqbqbjqrn96")))) + "183r50bsf317f4iclsdw4ag83s915nymvadh3izw04iv7fm8xbwj")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -105,7 +125,7 @@ ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs - `(("guile" ,guile-2.2.4) + `(("guile" ,guile-next) ("sdl2" ,sdl2) ("sdl2-image" ,sdl2-image) ("sdl2-mixer" ,sdl2-mixer) @@ -117,7 +137,7 @@ SDL2 C shared library via the foreign function interface.") (license lgpl3+)))) (define chickadee - (let ((commit "b69cdffb9e86e62325b8bc5560162b044b8b30b6")) + (let ((commit "3a5f0b977dd6ef7581b200515275cc67d8378138")) (package (name "chickadee") (version "0.1") @@ -128,7 +148,7 @@ SDL2 C shared library via the foreign function interface.") (commit commit))) (sha256 (base32 - "1n0kiria124wwgbbwwhd8b7r2lgs9pk9vhh3fn82rmrq7c3sk8ix")))) + "0f0l5ndla2j8b0dwygr79mh26brsshrdg9zfn9g1pbk4gxjghip0")))) (build-system gnu-build-system) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0") @@ -150,9 +170,9 @@ SDL2 C shared library via the foreign function interface.") ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs - `(("guile" ,guile-2.2.2))) + `(("guile" ,guile-next))) (propagated-inputs - `(("guile-opengl" ,(package-with-guile-2.2 guile-opengl)) + `(("guile-opengl" ,guile-opengl) ("guile-sdl2" ,guile-sdl2))) (synopsis "Game development toolkit for Guile Scheme") (description "Chickadee is a game development toolkit for Guile @@ -172,10 +192,9 @@ Scheme. It contains all of the basic components needed to develop ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs - `(("guile" ,guile-2.2.4))) + `(("guile" ,guile-next))) (propagated-inputs - `(("guile-opengl" ,(package-with-guile-2.2 guile-opengl)) - ("guile-sdl2" ,guile-sdl2) + `(("guile-sdl2" ,guile-sdl2) ("chickadee" ,chickadee))) (synopsis "Game engine for Scheme programmers") (description "Starling is a game engine written in Guile Scheme.") -- cgit v1.2.3