~ruther/guix-local

791cfa672d1b0eda29634f603177d1bede5b419a — Ricardo Wurmus 8 years ago b3b2efc
gnu: propeller-development-suite: Use stable release.

* gnu/packages/embedded.scm (propeller-binutils): Take sources from
release_1_0 branch.
[arguments]: Remove "patch-/bin/sh-in-tests" phase; add "chdir" phase; disable
Werror flag.
(propeller-gcc-4): Use sources from release_1_0 branch.
[arguments]: Add "chdir" phase.
[home-page]: Change to official home page.
(proplib): Use sources from release_1_0 branch.
[arguments]: Add "chdir" phase; remove outdated patch from "fix-Makefile"
phase; do not build and install tiny library.
[home-page]: Change to official home page.
(propeller-load): Use sources from release_1_0 branch.
[arguments]: Add "chdir" phase.
[home-page]: Change to official home page.
1 files changed, 48 insertions(+), 49 deletions(-)

M gnu/packages/embedded.scm
M gnu/packages/embedded.scm => gnu/packages/embedded.scm +48 -49
@@ 416,13 416,15 @@ language.")
with a layered architecture of JTAG interface and TAP support.")
    (license license:gpl2+)))

;; The commits for all propeller tools are the latest versions as published
;; here: https://github.com/dbetz/propeller-gcc
;; The commits for all propeller tools are the stable versions published at
;; https://github.com/propellerinc/propgcc in the release_1_0.  According to
;; personal correspondence with the developers in July 2017, more recent
;; versions are currently incompatible with the "Simple Libraries".

(define propeller-binutils
  (let ((xbinutils (cross-binutils "propeller-elf"))
        (commit "3bfba30076f8ce160a2f42914fdb68f24445fd44")
        (revision "1"))
        (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
        (revision "2"))
    (package
      (inherit xbinutils)
      (name "propeller-binutils")


@@ 430,28 432,24 @@ with a layered architecture of JTAG interface and TAP support.")
      (source (origin (inherit (package-source xbinutils))
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/totalspectrum/binutils-propeller.git")
                      (url "https://github.com/parallaxinc/propgcc.git")
                      (commit commit)))
                (file-name (string-append name "-" commit "-checkout"))
                (sha256
                 (base32
                  "1v3rgxwj7b8817wy5ccf8621v75qcxvcxygk4acr3hbc6yqybr8h"))))
                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))
                (patch-flags (list "-p1" "--directory=binutils"))))
      (arguments
       `(;; FIXME: For some reason there are many test failures.  Some of them
         ;; appear to be due to regular expression mismatch, but it's not
       `(;; FIXME: For some reason there are many test failures.  It's not
         ;; obvious how to fix the failures.
         #:tests? #f
         #:phases
         (modify-phases %standard-phases
           (add-after 'unpack 'patch-/bin/sh-in-tests
             (lambda _
               (substitute* '("sim/testsuite/Makefile.in"
                              "sim/testsuite/mips64el-elf/Makefile.in"
                              "sim/testsuite/d10v-elf/Makefile.in"
                              "sim/testsuite/sim/cris/asm/badarch1.ms")
                 (("/bin/sh") (which "sh")))
               #t)))
         ,@(package-arguments xbinutils)))
           (add-after 'unpack 'chdir
             (lambda _ (chdir "binutils") #t)))
         ,@(substitute-keyword-arguments (package-arguments xbinutils)
            ((#:configure-flags flags)
             `(cons "--disable-werror" ,flags)))))
      (native-inputs
       `(("bison" ,bison)
         ("flex" ,flex)


@@ 497,26 495,33 @@ with a layered architecture of JTAG interface and TAP support.")

(define-public propeller-gcc-4
  (let ((xgcc propeller-gcc-6)
        (commit "f1b01001b760d691a91ff1db4830d41bb712557f")
        (revision "1"))
        (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
        (revision "2"))
    (package (inherit xgcc)
      (name "propeller-gcc")
      (version (string-append "4.6.1-" revision "." (string-take commit 9)))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/dbetz/propgcc-gcc.git")
                      (url "https://github.com/parallaxinc/propgcc.git")
                      (commit commit)))
                (file-name (string-append name "-" commit "-checkout"))
                (sha256
                 (base32
                  "15mxrhk2v4vqmdkvcqy33ag1wrg9x9q20kx2w33kkw8pkrijknbi"))
                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))
                (patch-flags (list "-p1" "--directory=gcc"))
                (patches
                 (append
                  (origin-patches (package-source gcc-4.7))
                  (search-patches "gcc-4.6-gnu-inline.patch"
                                  "gcc-cross-environment-variables.patch")))))
      (home-page "https://github.com/dbetz/propgcc-gcc")
      (arguments
       (substitute-keyword-arguments (package-arguments propeller-gcc-6)
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'chdir
               (lambda _ (chdir "gcc") #t))))))
      (home-page "https://github.com/parallaxinc/propgcc")
      (supported-systems (delete "aarch64-linux" %supported-systems)))))

;; Version 6 is experimental and may not work correctly.  This is why we


@@ 524,23 529,25 @@ with a layered architecture of JTAG interface and TAP support.")
;; provided by Parallax Inc.
(define-public propeller-gcc propeller-gcc-4)

;; There is no release, so we take the latest version as referenced from here:
;; https://github.com/dbetz/propeller-gcc

;; FIXME: We do not build the tiny library because that would require C++
;; headers, which are not available.  This may require adding a propeller-elf
;; variant of the libstdc++ package.
(define-public proplib
  (let ((commit "844741fe0ceb140ab2fdf9d0667f68c1c39c31da")
        (revision "1"))
  (let ((commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
        (revision "2"))
    (package
      (name "proplib")
      (version (string-append "0.0.0-" revision "." (string-take commit 9)))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/totalspectrum/proplib.git")
                      (url "https://github.com/parallaxinc/propgcc.git")
                      (commit commit)))
                (file-name (string-append name "-" commit "-checkout"))
                (sha256
                 (base32
                  "0q7irf1x8iqx07n7lzksax9armrdkizs49swsz76nbks0mw67wiv"))))
                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))))
      (build-system gnu-build-system)
      (arguments
       `(#:tests? #f ; no tests


@@ 550,12 557,11 @@ with a layered architecture of JTAG interface and TAP support.")
         #:phases
         (modify-phases %standard-phases
           (delete 'configure)
           (add-after 'unpack 'fix-Makefile
           (add-after 'unpack 'chdir
             (lambda _ (chdir "lib") #t))
           (add-after 'chdir 'fix-Makefile
             (lambda _
               (substitute* "Makefile"
                 ;; The GCC sources are not part of this package, so we cannot
                 ;; install the out-of-tree license file.
                 (("cp \\.\\..*") "")
                 ;; Control the installation time of the headers.
                 ((" install-includes") ""))
               #t))


@@ 575,23 581,14 @@ with a layered architecture of JTAG interface and TAP support.")
                                      "/propeller-elf/include:"
                                      (or (getenv "CROSS_C_INCLUDE_PATH") "")))
               #t))
           (add-after 'build 'build-tiny
             (lambda* (#:key make-flags #:allow-other-keys)
               (zero? (apply system* "make" "tiny" make-flags))))
           ;; The build of the tiny libraries depends on the includes to be
           ;; available.  Since we set CROSS_C_INCLUDE_PATH to the output
           ;; directory, we have to install the includes first.
           (add-before 'build-tiny 'install-includes
           (add-before 'install 'install-includes
             (lambda* (#:key make-flags #:allow-other-keys)
               (zero? (apply system* "make" "install-includes" make-flags))))
           (add-after 'install 'install-tiny
             (lambda* (#:key make-flags #:allow-other-keys)
               (zero? (apply system* "make" "install-tiny" make-flags)))))))
               (zero? (apply system* "make" "install-includes" make-flags)))))))
      (native-inputs
       `(("propeller-gcc" ,propeller-gcc)
         ("propeller-binutils" ,propeller-binutils)
         ("perl" ,perl)))
      (home-page "https://github.com/totalspectrum/proplib")
      (home-page "https://github.com/parallaxinc/propgcc")
      (synopsis "C library for the Parallax Propeller")
      (description "This is a C library for the Parallax Propeller
micro-controller.")


@@ 655,20 652,20 @@ code.")
    (license license:expat)))

(define-public propeller-load
  (let ((commit "ba9c0a7251cf751d8d292ae19ffa03132097c0c0")
        (revision "1"))
  (let ((commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
        (revision "2"))
    (package
      (name "propeller-load")
      (version "3.4.0")
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/dbetz/propeller-load.git")
                      (url "https://github.com/parallaxinc/propgcc.git")
                      (commit commit)))
                (file-name (string-append name "-" commit "-checkout"))
                (sha256
                 (base32
                  "1qv3xaapl9fmj3zn58b60sprp4rnvnlpci8ci0pdrzkw6fhvx3pg"))))
                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))))
      (build-system gnu-build-system)
      (arguments
       `(#:tests? #f ; no tests


@@ 677,11 674,13 @@ code.")
               (string-append "TARGET=" (assoc-ref %outputs "out")))
         #:phases
         (modify-phases %standard-phases
           (add-after 'unpack 'chdir
             (lambda _ (chdir "loader") #t))
           (delete 'configure))))
      (native-inputs
       `(("openspin" ,openspin)
         ("propeller-toolchain" ,propeller-toolchain)))
      (home-page "https://github.com/dbetz/propeller-load")
      (home-page "https://github.com/parallaxinc/propgcc")
      (synopsis "Loader for Parallax Propeller micro-controllers")
      (description "This package provides the tool @code{propeller-load} to
upload binaries to a Parallax Propeller micro-controller.")