From mboxrd@z Thu Jan 1 00:00:00 1970 From: Danny Milosavljevic Subject: [PATCH v6 2/2] gnu: Add arduino-makefile. Date: Tue, 30 Aug 2016 21:01:55 +0200 Message-ID: <20160830190155.11668-3-dannym@scratchpost.org> References: <20160830190155.11668-1-dannym@scratchpost.org> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49975) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1beoIP-0002ql-Ug for guix-devel@gnu.org; Tue, 30 Aug 2016 15:02:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1beoIL-0006mo-6B for guix-devel@gnu.org; Tue, 30 Aug 2016 15:02:05 -0400 Received: from dd1012.kasserver.com ([85.13.128.8]:45131) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1beoIK-0006mi-R2 for guix-devel@gnu.org; Tue, 30 Aug 2016 15:02:01 -0400 In-Reply-To: <20160830190155.11668-1-dannym@scratchpost.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * gnu/packages/arduino.scm (arduino-makefile): New variable. --- gnu/packages/arduino.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/arduino.scm b/gnu/packages/arduino.scm index 5309587..08ed1cf 100644 --- a/gnu/packages/arduino.scm +++ b/gnu/packages/arduino.scm @@ -89,3 +89,84 @@ hardware spec files (boards.txt).") license:asl2.0 license:expat license:bsd-3)))) + +(define-public arduino-makefile + (package + (name "arduino-makefile") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sudar/Arduino-Makefile/" + "archive/" version ".tar.gz")) + (sha256 + (base32 + "1gqmcg2jg62b915akbkivnqf8sx76gv719vx7azm47szd0w1i94i")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; no tests exist + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((avr-gcc (assoc-ref inputs "avr-gcc-5")) + (avr-binutils (assoc-ref inputs "avr-binutils"))) + (substitute* "bin/ard-reset-arduino" + (("#!/usr/bin/env python") "#!/usr/bin/python3")) + (substitute* "Arduino.mk" + (("# => ARDUINO_DIR.*") + (string-append "ARDUINO_DIR = " + (assoc-ref %build-inputs "arduino-libraries") + "/share/arduino\n")) + ; ; defaults to "hardware/tools/avr" + (("# => AVR_TOOLS_DIR.*") + (string-append "AVR_TOOLS_DIR = /\n" + "AVR_TOOLS_PATH = /\n" + "AVRDUDE = " (assoc-ref %build-inputs "avrdude") "\n")) + (("CC_NAME[ ]*=.*") + (string-append "CC_NAME = " avr-gcc "/bin/avr-gcc\n")) + (("CXX_NAME[ ]*=.*") + (string-append "CXX_NAME = " avr-gcc "/bin/avr-g++\n")) + (("OBJCOPY_NAME[ ]*=.*") + (string-append "OBJCOPY_NAME = " avr-binutils "/bin/avr-objcopy\n")) + (("OBJDUMP_NAME[ ]*=.*") + (string-append "OBJDUMP_NAME = " avr-binutils "/bin/avr-objdump\n")) + (("AR_NAME[ ]*=.*") + (string-append "AR_NAME = " avr-binutils "/bin/avr-ar\n")) + (("SIZE_NAME[ ]*=.*") + (string-append "SIZE_NAME = " avr-binutils "/bin/avr-size\n")) + (("NM_NAME[ ]*=.*") + (string-append "NM_NAME = " avr-binutils "/bin/avr-nm\n")) + ; What about ld ? + (("# => ARDMK_DIR.*") + (string-append "ARDMK_DIR = " + (assoc-ref %outputs "out") + "/share/arduino\n")))))) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-mk (string-append out "/share/arduino")) + (out-doc (string-append out "/share/doc")) + (out-bin (string-append out "/bin")) + (out-man (string-append out "/share/man/man1"))) + (for-each (lambda (name) + (install-file name out-mk)) + '("Arduino.mk" "arduino-mk-vars.md" "chipKIT.mk" "Common.mk")) + (mkdir-p out-doc) + (copy-recursively "examples" out-doc) + (install-file "bin/ard-reset-arduino" out-bin) + (install-file "ard-reset-arduino.1" out-man))))))) + (inputs + `(("python" ,python) + ("python-pyserial" ,python-pyserial) + ("arduino-libraries" ,arduino-libraries) + ("avrdude" ,avrdude) + ("avr-gcc-5" ,avr-gcc-5) + ("avr-binutils" ,avr-binutils))) + (synopsis "Arduino Makefile Include file") + (description "@code{arduino-makefile} allows you to build Arduino sketches using a very tiny Makefile.") + (home-page "https://github.com/sudar/Arduino-Makefile") + ;(supported-systems '("avr")) + (license license:lgpl2.1)))