Subject: [bug#77131] [PATCH 07/51] gnu: Add makel.

From: Nicolas Graves <[email-masked]>
Date: Thu, 20 Mar 2025 11:08:15 +0100

* gnu/packages/emacs-build.scm (makel): New variable.
---
 gnu/packages/emacs-build.scm | 60 ++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/emacs-build.scm b/gnu/packages/emacs-build.scm
index 78dfc1ed5b..aa917cc0ac 100644
--- a/gnu/packages/emacs-build.scm
+++ b/gnu/packages/emacs-build.scm
@@ -461,3 +461,63 @@ (define-public emacs-undercover
      "Undercover is a test coverage library for software written in Emacs
 Lisp.")
     (license license:expat)))
+
+(define-public makel
+  (let ((commit "2c831098c28a1f581b016532fa1f6e1c596b8ed1")
+        (revision "0"))
+    (package
+      (name "makel")
+      (version (git-version "0.8.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/DamienCassou/makel")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0lmfl27rqh1530j8g4z2k6y6mc25n54bjkqriqdkw3703kliyvry"))))
+      (build-system copy-build-system)
+      (arguments
+       (list
+        ;; Some tests are currently broken, see
+        ;; https://github.com/DamienCassou/makel/issues/6
+        #:tests? #f
+        #:modules
+        '((guix build copy-build-system)
+          (guix build utils)
+          (srfi srfi-1)
+          (srfi srfi-26)
+          (ice-9 ftw))
+         #:install-plan ''(("makel.mk" "include/")
+                           ("README.org" "share/docs/"))
+         #:phases
+         #~(modify-phases %standard-phases
+             (add-before 'install 'inject-deps
+               (lambda _
+                 (substitute* "makel.mk"
+                   (("^MAKEL_LOAD_PATH=(.*)$" all rest)
+                    (string-append
+                     "MAKEL_LOAD_PATH=-L "
+                     (string-join
+                      (filter-map
+                       (lambda (dir)
+                         (let ((path (scandir dir)))
+                           (and (eq? (length path) 3) ; removes emacs
+                                (string-append dir "/" (last path)))))
+                       (string-split (getenv "EMACSLOADPATH") #\:))
+                      " -L ")
+                     " " rest)))))
+             (add-before 'install 'check
+               (lambda* (#:key tests? #:allow-other-keys)
+                 (if tests?
+                     (with-directory-excursion "test"
+                       (invoke "bash" "run-tests.sh"))
+                     (format #f "Test suite not run.~%")))))))
+      (native-inputs (list bash-minimal emacs-minimal))
+      (inputs (list emacs-buttercup emacs-package-lint))
+      (home-page "https://github.com/DamienCassou/makel")
+      (synopsis "Makefile to help checking Emacs packages")
+      (description "This package provides a makefile to help checking Emacs
+packages.")
+      (license license:gpl3+))))
-- 
2.48.1