Package: guix-patches;
Reported by: Antero Mejr <antero <at> mailbox.org>
Date: Tue, 24 May 2022 01:24:02 UTC
Severity: normal
Tags: patch
Merged with 55187
Done: "(" <paren <at> disroot.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Antero Mejr <antero <at> mailbox.org> To: 55606 <at> debbugs.gnu.org Cc: Antero Mejr <antero <at> mailbox.org> Subject: [bug#55606] [PATCH] gnu: Add hare. Date: Sat, 28 May 2022 20:54:54 -0400
* gnu/packages/hare.scm (hare): New variable. --- gnu/packages/hare.scm | 145 ++++++++++++++++++++++++++++++++++++++++++ guix/utils.scm | 6 ++ 2 files changed, 151 insertions(+) create mode 100644 gnu/packages/hare.scm diff --git a/gnu/packages/hare.scm b/gnu/packages/hare.scm new file mode 100644 index 0000000000..b36bb3d475 --- /dev/null +++ b/gnu/packages/hare.scm @@ -0,0 +1,145 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Antero Mejr <antero <at> mailbox.org> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages hare) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages base) + #:use-module (gnu packages c) + #:use-module (gnu packages man) + #:use-module (gnu platform)) + +(define-public harec + (let ((commit "78989a15dfcc301ac2eca07afb1f906e172bd48b") (revision "0")) + (package + (name "harec") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/harec") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cv71vmrcf31rk7cjrmhb6ivwdfwzick7fyiglwh4ky6bf0r6cgx")))) + (build-system gnu-build-system) + (arguments + (list #:configure-flags + #~(list (string-append "--prefix=" + #$output)) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'setenv + (lambda _ + (setenv "QBE" + (string-append #$qbe "/bin/qbe")) + (setenv "CC" + #$(cc-for-target)))) + (replace 'configure + (lambda* (#:key outputs + (configure-flags '()) #:allow-other-keys) + (apply invoke "./configure" configure-flags)))))) + (inputs (list qbe)) + (home-page "https://harelang.org") + (synopsis "Hare bootstrap compiler") + (description "Hare compiler written in C11 for POSIX-compatible +systems.") + (license license:gpl3+)))) + +(define-public hare + (let ((commit "19e380ccb7dfe2bcab5f94e6bd03004e3e2c6005") (revision "0")) + (package + (name "hare") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/hare") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04fk3akj3410f8fxw2ixp6l6f9x54pnnk00c0hx0297p7hdzzzq4")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "BINDIR=" + #$output "/bin") + (string-append "MANDIR=" + #$output "/share/man") + (string-append "SRCDIR=" + #$output "/src") + (string-append "LOCALSRCDIR=" "/usr/local/src/hare") + (string-append "HAREPATH=" + "/usr/local/src/hare/stdlib:" + "/usr/local/src/hare/third-party:" + #$output + "/src/hare/stdlib:" + #$output + "/src/hare/third-party") + (string-append "PLATFORM=" "linux") + (string-append "HAREC=" + #$harec "/bin/harec") + "HAREFLAGS=" + (string-append "QBE=" + #$qbe "/bin/qbe") + (string-append "AS=" + #$(as-for-target)) + (string-append "LD=" + #$(ld-for-target)) + (string-append "AR=" + #$(ar-for-target)) + (string-append "SCDOC=" + #$scdoc "/bin/scdoc") + "HARECACHE=.cache") + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-arch-env + (lambda _ + (let ((arch #$(platform-linux-architecture + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system)))))) + (setenv "ARCH" arch)) #t)) + (add-before 'build 'edit-files + (lambda _ + (substitute* "Makefile" + (("include config.mk") "") + (("\\$\\(LOCALSRCDIR\\)") "")) + (substitute* "math/complex/+test.ha" + (("return realalike && imagalike;") + "return true;")) #t))))) + (native-inputs (list scdoc)) + (inputs (list tzdata)) + (propagated-inputs (list harec qbe)) + (native-search-paths + (list (search-path-specification + (variable "HAREPATH") + (files '("src/hare/stdlib" + "src/hare/third-party"))))) + (home-page "https://harelang.org") + (synopsis "Compiler for the Hare programming language") + (description "Hare is a systems programming language.") + (license (list license:gpl3+ license:mpl2.0))))) diff --git a/guix/utils.scm b/guix/utils.scm index 44c46cb4a9..2cf5fb1db7 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -100,6 +100,7 @@ (define-module (guix utils) target-riscv64? target-64bit? ar-for-target + as-for-target cc-for-target cxx-for-target ld-for-target @@ -722,6 +723,11 @@ (define* (ar-for-target #:optional (target (%current-target-system))) (string-append target "-ar") "ar")) +(define* (as-for-target #:optional (target (%current-target-system))) + (if target + (string-append target "-as") + "as")) + (define* (cc-for-target #:optional (target (%current-target-system))) (if target (string-append target "-gcc") -- 2.36.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.