gnu: Fix common unquote typos.
[jackhill/guix/guix.git] / gnu / packages / build-tools.scm
CommitLineData
33f79a74
RW
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
162dd290 3;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
6c4da3b7 4;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
33f79a74
RW
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)
c97cef0a 27 #:use-module (gnu packages compression)
33f79a74 28 #:use-module (gnu packages python)
162dd290
CB
29 #:use-module (gnu packages ninja)
30 #:use-module (guix build-system gnu)
31 #:use-module (guix build-system python))
33f79a74
RW
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
66describe the build process. It takes its inspiration for the script files
67from scons. While scons focuses on being 100% correct when building, bam
68makes a few sacrifices to acquire fast full and incremental build times.")
69 (license license:bsd-3)))
162dd290
CB
70
71(define-public meson
72 (package
73 (name "meson")
e05cc6b8 74 (version "0.44.0")
162dd290
CB
75 (source (origin
76 (method url-fetch)
77 (uri (string-append "https://github.com/mesonbuild/meson/"
a47ed096
RW
78 "releases/download/" version "/meson-"
79 version ".tar.gz"))
162dd290
CB
80 (sha256
81 (base32
e05cc6b8 82 "06r8limj38mv884s5riiz6lpzw37cvhbf9jd0smzcbi7fwmv3yah"))))
162dd290 83 (build-system python-build-system)
c695fb76 84 (inputs `(("ninja" ,ninja)))
67f8ba11 85 (propagated-inputs `(("python" ,python)))
162dd290
CB
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.
90It can compile code written in C, C++, Fortran, Java, Rust, and other
91languages. Meson provides features comparable to those of the
92Autoconf/Automake/make combo. Build specifications, also known as @dfn{Meson
6c4da3b7
TGR
93files}, are written in a custom domain-specific language (@dfn{DSL}) that
94resembles Python.")
162dd290 95 (license license:asl2.0)))
c97cef0a 96
dab666cd
PM
97(define-public meson-for-build
98 (package
99 (inherit meson)
100 (name "meson-for-build")
137adfa3 101 (version "0.42.1")
dab666cd
PM
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
137adfa3 109 "1494hdnd40g2v6pky34j0f2iwc6kwn51vck37qwz7nl2xr17b18q"))
dab666cd
PM
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
c97cef0a
OP
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
144scripted definition of a software project and outputs @file{Makefile}s or
145other lower-level build files.")
146 (home-page "https://premake.github.io")
147 (license license:bsd-3)))