summaryrefslogtreecommitdiff
path: root/rodion/packages/games.scm
blob: 39b52f5e8798ffbe28c43f3f9b58645545990f2d (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
(define-module (rodion packages games)
    #:use-module (guix packages)
    #:use-module (guix build-system copy)
    #:use-module (guix build-system cmake)
    #:use-module (guix git-download)
    #:use-module (guix gexp)
    #:use-module (gnu packages sdl)
    #:use-module (gnu packages emulators)
    #:use-module (gnu packages compression)
    #:use-module ((guix licenses) #:prefix license:))

(define-public fpattern
  (package
   (name "fpattern")
   (version "1.9")
   (build-system copy-build-system)
   (home-page "https://github.com/Loadmaster/fpattern")
   (source
    (origin
     (method git-fetch)
     (uri (git-reference
	   (url "https://github.com/Loadmaster/fpattern")
	   (commit (string-append "v" version))))
     (sha256
      (base32 "0lm5afk18a6m4wib4xvslik9zz00r36zvdrrgjbwd8d8550cq2zx"))))
   (arguments
    (list #:phases
	  #~(modify-phases %standard-phases
			   (add-before 'install 'build-library
				       (lambda* (#:key inputs #:allow-other-keys)
					 (invoke "gcc" "-c" "-Wall" "-fpic" "fpattern.c")
					 (invoke "gcc" "-shared" "-o" "libfpattern.so" "fpattern.o"))))
	  #:install-plan ''(("libfpattern.so" "lib/")
			    ("fpattern.h" "include/"))))
   (license license:expat)
   (description "Filename pattern matching library functions")
   (synopsis "Filename pattern matching library functions for DOS, Windows, and Unix.

Functions for matching filename patterns to filenames. Written in C. Provided as an object file (fpattern.obj) and a header include source file (fpattern.h).

Filename patterns are composed of regular (printable) characters which may comprise a filename, as well as special pattern matching characters. A filename patterns is a special kind of regular expression, except that it is not as general and is designed to match only file and directory names instead of arbitrary text strings. The syntax is borrowed from Unix, and is a superset of the MS-DOS and Windows syntax.")))

(define-public fallout-ce
  (package
   (name "fallout-ce")
   (version "1.1.0")
   (build-system cmake-build-system)
   (home-page "https://github.com/alexbatalov/fallout1-ce")
   (inputs (list sdl2
		 fpattern))
   (arguments
    (list
     #:tests? #f
     #:phases #~(modify-phases %standard-phases
           (replace 'install
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
                      (bin (string-append out "/bin")))
                 (mkdir-p bin)
		 (copy-file "fallout-ce" (string-append bin "/fallout-ce"))))))))
   (source
    (origin
     (method git-fetch)
     (uri (git-reference
	   (url "https://github.com/alexbatalov/fallout1-ce")
	   (commit (string-append "v" version))))
     (patches `(,(local-file "./patches/0001-fallout-ce-fpattern.patch")))
     (sha256
      (base32 "0c11zbvja42s0z8zqfm6gf981m0v2vwxvhqas46lplwbfhbnh836"))))
   (license license:expat)
   (description "Fallout")
   (synopsis "Fallout")))

(define-public fallout2-ce
  (package
   (name "fallout2-ce")
   (version "1.3.0")
   (build-system cmake-build-system)
   (home-page "https://github.com/alexbatalov/fallout2-ce")
   (inputs (list sdl2
		 fpattern
		 zlib))
   (arguments
    (list
     #:tests? #f
     #:phases #~(modify-phases %standard-phases
           (replace 'install
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
                      (bin (string-append out "/bin")))
                 (mkdir-p bin)
		 (copy-file "fallout2-ce" (string-append bin "/fallout2-ce"))))))))
   (source
    (origin
     (method git-fetch)
     (uri (git-reference
	   (url "https://github.com/alexbatalov/fallout2-ce")
	   (commit (string-append "v" version))))
     (patches `(,(local-file "./patches/0001-fallout2-ce-fpattern.patch")))
     (sha256
      (base32 "15b30i2ixq0w01qxrymd1qs1awj8kijbqzac8wvfrpm85fdnfnmg"))))
   (license license:expat)
   (description "Fallout")
   (synopsis "Fallout")))

;; Build with the old CPU support
(define-public dosbox-staging/old-cpu
  (package
    (inherit dosbox-staging)
    (name "dosbox-staging-old-cpu")
    (arguments
     (list #:configure-flags
	   #~(list
	      "-Duse_zlib_ng=sse2,ssse3"
              ;; These both try to git clone subprojects.
              "-Dunit_tests=disabled"   ; gtest
              "-Duse_mt32emu=false")
	   #:build-type "release"))))