80 lines
3.7 KiB
Scheme
80 lines
3.7 KiB
Scheme
![]() |
(define-module (ambrevar games)
|
||
|
#:use-module ((guix packages) #:select (package origin base32))
|
||
|
#:use-module ((guix download) #:select (url-fetch))
|
||
|
#:use-module ((guix licenses) #:prefix license:)
|
||
|
#:use-module ((guix build-system gnu) #:select (gnu-build-system))
|
||
|
#:use-module ((guix build-system trivial) #:select (trivial-build-system))
|
||
|
;; Inputs
|
||
|
#:use-module (gnu packages base)
|
||
|
#:use-module ((gnu packages sdl) #:select (sdl-union sdl2 sdl2-mixer))
|
||
|
#:use-module ((gnu packages gl) #:select (glu))
|
||
|
#:use-module ((gnu packages pkg-config) #:select (pkg-config))
|
||
|
#:use-module ((gnu packages xiph) #:select (libvorbis flac))
|
||
|
#:use-module ((gnu packages video) #:select (libvpx))
|
||
|
#:use-module ((gnu packages gtk) #:select (gtk+-2)))
|
||
|
|
||
|
(define-public eduke32
|
||
|
(package
|
||
|
(name "eduke32")
|
||
|
(version "20181027-7136")
|
||
|
(source
|
||
|
(origin
|
||
|
(method url-fetch)
|
||
|
(uri (string-append "http://dukeworld.duke4.net/eduke32/synthesis/"
|
||
|
version
|
||
|
"/eduke32_src_"
|
||
|
version
|
||
|
".tar.xz"))
|
||
|
(sha256
|
||
|
(base32 "121k2k7ylw8dvs71mrdy7hwb1a2xd5di7jdqc20a1ml5k0n9akpn"))))
|
||
|
(build-system gnu-build-system)
|
||
|
(arguments
|
||
|
`(#:tests? #f
|
||
|
#:phases
|
||
|
(modify-phases %standard-phases
|
||
|
(delete 'configure)
|
||
|
(add-after 'set-paths 'set-sdl-paths
|
||
|
;; The makefile adds the output of `sdl2-config --cflags` to the
|
||
|
;; compiler flags, but sdl2-config gives us the wrong directory to
|
||
|
;; include. We have to add the SDL2 header directory ourselves.
|
||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||
|
(setenv "CPLUS_INCLUDE_PATH"
|
||
|
(string-append (assoc-ref inputs "sdl-union")
|
||
|
"/include/SDL2"
|
||
|
":"
|
||
|
(getenv "CPLUS_INCLUDE_PATH")))
|
||
|
#t))
|
||
|
(replace 'install
|
||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||
|
(let ((out (assoc-ref outputs "out"))
|
||
|
(glu (assoc-ref inputs "glu")))
|
||
|
;; TODO: Install custom .desktop file? Need icon.
|
||
|
;; See https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=eduke32.
|
||
|
(install-file "eduke32" (string-append out "/bin"))
|
||
|
(install-file "mapster32" (string-append out "/bin"))
|
||
|
(install-file "package/common/buildlic.txt" (string-append out "/share/licenses"))
|
||
|
(wrap-program (string-append out "/bin/eduke32")
|
||
|
`("LD_LIBRARY_PATH" ":" prefix
|
||
|
(,(string-append glu "/lib"))))))))))
|
||
|
(native-inputs
|
||
|
`(("pkg-config" ,pkg-config)))
|
||
|
(inputs
|
||
|
`(("sdl-union" ,(sdl-union (list sdl2 sdl2-mixer)))
|
||
|
("glu" ,glu)
|
||
|
("libvorbis" ,libvorbis)
|
||
|
("libvpx" ,libvpx)
|
||
|
("flac" ,flac)
|
||
|
("gtk+" ,gtk+-2)))
|
||
|
(synopsis "Source port of the classic PC first person shooter Duke Nukem 3D")
|
||
|
(description "EDuke32 is an awesome, free homebrew game engine and source port of the
|
||
|
classic PC first person shooter Duke Nukem 3D—Duke3D for short—to Windows,
|
||
|
Linux, Mac OS X, FreeBSD, several handhelds, your family toaster, and to your
|
||
|
girlfriend's vibrator. We've added thousands of cool and useful features and
|
||
|
upgrades for regular players and additional editing capabilities and scripting
|
||
|
extensions for homebrew developers and mod creators. EDuke32 is open source
|
||
|
software that is completely free to use for all non-commercial purposes.")
|
||
|
(home-page "https://eduke32.com/")
|
||
|
(license ((@@ (guix licenses) license) "BUILD license"
|
||
|
"https://eduke32.com/buildlic.txt"
|
||
|
""))))
|