From d575ca033480b0a20abaf324a5806733a67342ba Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 23 May 2025 09:11:00 +0900 Subject: gnu: Add samurai. * gnu/packages/ninja.scm (samurai): New variable. Change-Id: I5be4fd7e5100adfd24370a1ce8d7377a6b45df3b --- gnu/packages/ninja.scm | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm index 42c9309b82c..7b517b98378 100644 --- a/gnu/packages/ninja.scm +++ b/gnu/packages/ninja.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2020 Marius Bakke +;;; Copyright © 2025 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,11 +22,14 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages ninja) - #:use-module ((guix licenses) #:select (asl2.0)) + #:use-module ((guix licenses) #:select (asl2.0 expat)) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages python)) (define-public ninja @@ -75,3 +79,40 @@ other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible.") (license asl2.0))) + +(define-public samurai + (package + (name "samurai") + (version "1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/michaelforney/samurai") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04iw18hgkm72yrl83a2xh1jc47w9rilpb95kwick0j37b4q3gxj4")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;no test suite + #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "build.c" + (("/bin/sh") + (search-input-file inputs "bin/sh"))))) + (delete 'configure)))) + (inputs (list bash-minimal)) + (home-page "https://github.com/michaelforney/samurai") + (synopsis "Ninja-compatible build tool written in C") + (description "@code{samurai} is a ninja-compatible build tool written in +C99 with a focus on simplicity, speed, and portability. It is +feature-complete and supports most of the same options as ninja. This package +provides the command @command{samu}. For a @command{ninja} command +replacement, use the @code{samu-as-ninja-wrapper} package.") + (license (list asl2.0 ;for the most part + expat)))) ;htab.h, htab.c and tree.c + -- cgit v1.3