Subject: gnu: Add emu8051
From: c4droid <[email-masked]>
To: [email-masked]
Date: Tue, 21 Mar 2023 15:20:27 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

From 351280951b0ad515dc6b725dca51a986def1f93f Mon Sep 17 00:00:00 2001
From: c4droid <[email-masked]>
Date: Tue, 21 Mar 2023 15:16:10 +0800
Subject: [PATCH] gnu: Add emu8051.

* gnu/packages/embedded.scm (emu8051): New variable.
---
 gnu/packages/embedded.scm | 41 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 8d854c7..50658e4 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2021 Morgan Smith <[email-masked]>
 ;;; Copyright © 2022 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2023 c4droid <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1747,3 +1748,43 @@ (define-public ts4900-utils
 @item tssilomon
 @end itemize")
       (license license:bsd-2))))
+
+(define-public emu8051
+  (let ((commit "5dc681275151c4a5d7b85ec9ff4ceb1b25abd5a8")
+        (revision "1"))
+    (package
+      (name "emu8051")
+      (version (git-version "0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/jarikomppa/emu8051")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1xxmkcwvd5fjnhwbricafg4xvxvr8dxhfanyfp4rbksw37dgk2fx"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ;No test suite
+         #:make-flags (list (string-append "CC="
+                                           ,(cc-for-target)))
+         #:phases (modify-phases %standard-phases
+                    (delete 'configure) ;No ./configure script
+                    (add-before 'build 'patch-ncurses
+                      ;; Replace LDFLAGS -lcurses to -lncurses
+                      (lambda* _
+                        (substitute* "Makefile"
+                          (("-lcurses")
+                           "-lncurses"))))
+                    (replace 'install
+                      ;; No installation procedure
+                      (lambda _
+                        (install-file "emu"
+                                      (string-append (assoc-ref %outputs "out")
+                                                     "/bin")))))))
+      (inputs (list ncurses))
+      (home-page "https://github.comjarikomppa/emu8051")
+      (synopsis "8051/8052 emulator with curses-based UI")
+      (description "emu8051 is a simulator of the 8051/8052 microcontrollers.")
+      (license license:expat))))
-- 
2.39.2