gnu: Fix common unquote typos.
[jackhill/guix/guix.git] / gnu / packages / build-tools.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
3 ;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
4 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
5 ;;;
6 ;;; This file is part of GNU Guix.
7 ;;;
8 ;;; GNU Guix is free software; you can redistribute it and/or modify it
9 ;;; under the terms of the GNU General Public License as published by
10 ;;; the Free Software Foundation; either version 3 of the License, or (at
11 ;;; your option) any later version.
12 ;;;
13 ;;; GNU Guix is distributed in the hope that it will be useful, but
14 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ;;; GNU General Public License for more details.
17 ;;;
18 ;;; You should have received a copy of the GNU General Public License
19 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21 (define-module (gnu packages build-tools)
22 #:use-module ((guix licenses) #:prefix license:)
23 #:use-module (guix utils)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (gnu packages)
27 #:use-module (gnu packages compression)
28 #:use-module (gnu packages python)
29 #:use-module (gnu packages ninja)
30 #:use-module (guix build-system gnu)
31 #:use-module (guix build-system python))
32
33 (define-public bam
34 (package
35 (name "bam")
36 (version "0.4.0")
37 (source (origin
38 (method url-fetch)
39 (uri (string-append "http://github.com/downloads/matricks/"
40 "bam/bam-" version ".tar.bz2"))
41 (sha256
42 (base32
43 "0z90wvyd4nfl7mybdrv9dsd4caaikc6fxw801b72gqi1m9q0c0sn"))))
44 (build-system gnu-build-system)
45 (arguments
46 `(#:phases
47 (modify-phases %standard-phases
48 (delete 'configure)
49 (replace 'build
50 (lambda _
51 (zero? (system* "bash" "make_unix.sh"))))
52 (replace 'check
53 (lambda _
54 (zero? (system* "python" "scripts/test.py"))))
55 (replace 'install
56 (lambda* (#:key outputs #:allow-other-keys)
57 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
58 (mkdir-p bin)
59 (install-file "bam" bin)
60 #t))))))
61 (native-inputs
62 `(("python" ,python-2)))
63 (home-page "https://matricks.github.io/bam/")
64 (synopsis "Fast and flexible build system")
65 (description "Bam is a fast and flexible build system. Bam uses Lua to
66 describe the build process. It takes its inspiration for the script files
67 from scons. While scons focuses on being 100% correct when building, bam
68 makes a few sacrifices to acquire fast full and incremental build times.")
69 (license license:bsd-3)))
70
71 (define-public meson
72 (package
73 (name "meson")
74 (version "0.44.0")
75 (source (origin
76 (method url-fetch)
77 (uri (string-append "https://github.com/mesonbuild/meson/"
78 "releases/download/" version "/meson-"
79 version ".tar.gz"))
80 (sha256
81 (base32
82 "06r8limj38mv884s5riiz6lpzw37cvhbf9jd0smzcbi7fwmv3yah"))))
83 (build-system python-build-system)
84 (inputs `(("ninja" ,ninja)))
85 (propagated-inputs `(("python" ,python)))
86 (home-page "https://mesonbuild.com/")
87 (synopsis "Build system designed to be fast and user-friendly")
88 (description
89 "The Meson build system is focused on user-friendliness and speed.
90 It can compile code written in C, C++, Fortran, Java, Rust, and other
91 languages. Meson provides features comparable to those of the
92 Autoconf/Automake/make combo. Build specifications, also known as @dfn{Meson
93 files}, are written in a custom domain-specific language (@dfn{DSL}) that
94 resembles Python.")
95 (license license:asl2.0)))
96
97 (define-public meson-for-build
98 (package
99 (inherit meson)
100 (name "meson-for-build")
101 (version "0.42.1")
102 (source (origin
103 (method url-fetch)
104 (uri (string-append "https://github.com/mesonbuild/meson/"
105 "archive/" version ".tar.gz"))
106 (file-name (string-append name "-" version ".tar.gz"))
107 (sha256
108 (base32
109 "1494hdnd40g2v6pky34j0f2iwc6kwn51vck37qwz7nl2xr17b18q"))
110 (patches (search-patches "meson-for-build-rpath.patch"))))
111
112 ;; People should probably install "meson", not "meson-for-build".
113 (properties `((hidden? . #t)))))
114
115 (define-public premake4
116 (package
117 (name "premake")
118 (version "4.3")
119 (source (origin
120 (method url-fetch)
121 (uri (string-append "mirror://sourceforge/premake/Premake/"
122 version "/premake-" version "-src.zip"))
123 (sha256
124 (base32
125 "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn"))))
126 (build-system gnu-build-system)
127 (native-inputs
128 `(("unzip" ,unzip))) ; for unpacking the source
129 (arguments
130 `(#:make-flags '("CC=gcc")
131 #:tests? #f ; No test suite
132 #:phases
133 (modify-phases %standard-phases
134 (delete 'configure)
135 (add-after 'unpack 'enter-source
136 (lambda _ (chdir "build/gmake.unix") #t))
137 (replace 'install
138 (lambda* (#:key outputs #:allow-other-keys)
139 (install-file "../../bin/release/premake4"
140 (string-append (assoc-ref outputs "out") "/bin"))
141 #t)))))
142 (synopsis "Portable software build tool")
143 (description "@code{premake4} is a command line utility that reads a
144 scripted definition of a software project and outputs @file{Makefile}s or
145 other lower-level build files.")
146 (home-page "https://premake.github.io")
147 (license license:bsd-3)))