summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEvgeny Pisemsky <mail@pisemsky.site>2024-11-12 22:55:22 +0300
committerLudovic Courtès <ludo@gnu.org>2024-11-12 23:53:17 +0100
commiteca0a777d353608e5c1b3e1a4dc644fa7deff1a0 (patch)
treef11fb3a1bf7879b7adbfaf0c6f92f5f37887e518 /gnu
parent9600e345c1eff163bfb24f7c108ae06e096108a5 (diff)
downloadguix-eca0a777d353608e5c1b3e1a4dc644fa7deff1a0.tar.gz
gnu: Add potato-make.
* gnu/packages/build-tools.scm (potato-make): New variable.

Change-Id: I86843b4001298ee984e6d1c35b59dc3b2e51d97f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Reviewed-by: Noé Lopez <noelopez@free.fr>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/build-tools.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 21df25e4f5..b6b991247a 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
 ;;; Copyright © 2021, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022, 2023 Juliana Sims <juli@incana.org>
+;;; Copyright © 2024 Evgeny Pisemsky <mail@pisemsky.site>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
+  #:use-module (guix build-system guile)
   #:use-module (guix modules)
   #:use-module (gnu packages)
   #:use-module (gnu packages adns)
@@ -54,6 +56,7 @@
   #:use-module (gnu packages cppi)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages logging)
@@ -1042,3 +1045,47 @@ with GNU make.")
     ;; pdpmake is distributed under the public domain, but the sources include
     ;; tests under the GPL license version 2.
     (license (list license:gpl2 license:public-domain))))
+
+(define-public potato-make
+  ;; No releases.
+  (let ((commit "e8c09ce1f6a33c013b27961b0a07f991db33e6fb")
+        (revision "0"))
+    (package
+      (name "potato-make")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/spk121/potato-make")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0axgrkqdfip5f2bp7d2dprd74g58lyc0c7lgg2m93k5jqn1lpbmj"))
+         ;; Delete files of the seemingly unfinished pmake program.
+         (snippet '(begin
+                     (delete-file "pmake")
+                     (delete-file "documents/pmake.org")
+                     (delete-file "make/main.scm")
+                     (rmdir "documents")
+                     (rmdir "make")))))
+      (build-system guile-build-system)
+      (arguments
+       (list
+        #:phases #~(modify-phases %standard-phases
+                     (add-after 'build 'check
+                       (lambda _
+                         ;; Delete test referencing nonexistent file.
+                         (delete-file "tests/parse.sh")
+                         (for-each (lambda (f)
+                                     (invoke "guile" "-L" "." "-s" f))
+                                   (find-files "tests")))))))
+      (native-inputs (list guile-3.0))
+      (home-page "https://github.com/spk121/potato-make")
+      (synopsis "Library to write makefiles in Guile Scheme")
+      (description
+       "Potato Make is a Scheme library that aims to simplify the task of
+maintaining, updating, and regenerating programs.  It is inspired by
+the POSIX make utility and allows to write a build script in Guile
+Scheme.")
+      (license license:expat))))