;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Corentin Bocquillon ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages build-tools) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages python) #:use-module (gnu packages ninja) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) (define-public bam (package (name "bam") (version "0.4.0") (source (origin (method url-fetch) (uri (string-append "http://github.com/downloads/matricks/" "bam/bam-" version ".tar.bz2")) (sha256 (base32 "0z90wvyd4nfl7mybdrv9dsd4caaikc6fxw801b72gqi1m9q0c0sn")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (delete 'configure) (replace 'build (lambda _ (zero? (system* "bash" "make_unix.sh")))) (replace 'check (lambda _ (zero? (system* "python" "scripts/test.py")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) (mkdir-p bin) (install-file "bam" bin) #t)))))) (native-inputs `(("python" ,python-2))) (home-page "https://matricks.github.io/bam/") (synopsis "Fast and flexible build system") (description "Bam is a fast and flexible build system. Bam uses Lua to describe the build process. It takes its inspiration for the script files from scons. While scons focuses on being 100% correct when building, bam makes a few sacrifices to acquire fast full and incremental build times.") (license license:bsd-3))) (define-public meson (package (name "meson") (version "0.44.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" "releases/download/" version "/meson-" version ".tar.gz")) (sha256 (base32 "06r8limj38mv884s5riiz6lpzw37cvhbf9jd0smzcbi7fwmv3yah")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases ;; Meson runs itself through the Python interpreter, so ;; we cannot use the shell wrapper. (delete 'wrap)))) (inputs `(("ninja", ninja))) (propagated-inputs `(("python" ,python))) (home-page "https://mesonbuild.com/") (synopsis "Build system designed to be fast and user-friendly") (description "The Meson build system is focused on user-friendliness and speed. It can compile code written in C, C++, Fortran, Java, Rust, and other languages. Meson provides features comparable to those of the Autoconf/Automake/make combo. Build specifications, also known as @dfn{Meson files}, are written in a custom domain-specific language (@dfn{DSL}) that resembles Python.") (license license:asl2.0))) (define-public meson-for-build (package (inherit meson) (name "meson-for-build") (version "0.42.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" "archive/" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1494hdnd40g2v6pky34j0f2iwc6kwn51vck37qwz7nl2xr17b18q")) (patches (search-patches "meson-for-build-rpath.patch")))) ;; People should probably install "meson", not "meson-for-build". (properties `((hidden? . #t))))) (define-public premake4 (package (name "premake") (version "4.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/premake/Premake/" version "/premake-" version "-src.zip")) (sha256 (base32 "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn")))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip))) ; for unpacking the source (arguments `(#:make-flags '("CC=gcc") #:tests? #f ; No test suite #:phases (modify-phases %standard-phases (delete 'configure) (add-after 'unpack 'enter-source (lambda _ (chdir "build/gmake.unix") #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (install-file "../../bin/release/premake4" (string-append (assoc-ref outputs "out") "/bin")) #t))))) (synopsis "Portable software build tool") (description "@code{premake4} is a command line utility that reads a scripted definition of a software project and outputs @file{Makefile}s or other lower-level build files.") (home-page "https://premake.github.io") (license license:bsd-3)))