From patchwork Tue Sep 15 00:01:45 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Packham X-Patchwork-Id: 517639 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id 5EC66140D24 for ; Tue, 15 Sep 2015 10:02:14 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=qcCBipuy; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 117B02E6FD; Tue, 15 Sep 2015 00:02:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ULwpYSrcRXWx; Tue, 15 Sep 2015 00:02:09 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 613552603F; Tue, 15 Sep 2015 00:02:09 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 050B91C1FB8 for ; Tue, 15 Sep 2015 00:02:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 0273B9630B for ; Tue, 15 Sep 2015 00:02:08 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M-KdttCoiYD7 for ; Tue, 15 Sep 2015 00:02:07 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pa0-f49.google.com (mail-pa0-f49.google.com [209.85.220.49]) by hemlock.osuosl.org (Postfix) with ESMTPS id 20881962F1 for ; Tue, 15 Sep 2015 00:02:07 +0000 (UTC) Received: by pacex6 with SMTP id ex6so157773224pac.0 for ; Mon, 14 Sep 2015 17:02:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1LWaZhioWjLm3HXJb1ib/DuupIcwCnHdrsTfrxbBmEU=; b=qcCBipuyVWrsyawIXZ9C9pc0ffGYyv2P9hBOUgdBBm7UnEo7/KT0rcF9eFfvrR9at7 0My3f3brUKAK5YWoies3cUSY7zbhgV6Mseacc7jraudANpaDlGZanaK2O0xQLVR7T6Wu TP4vZHDwVFby8pXoWmIdvD0ze6Qp8bqGP5xGg+v0fqigkXzUljLQk5FzJEaOfKJB6Lon g5KSzB1b7qYBTZAmayxVy72GWlocJDXFSlUFZKEmWiA3n1qoCRpvVEHhd0Yw9bngDcXY vRFMshYGXIdjEwvV/vW/wpUCeQFPVOFGHAhJ3KqnlxkliUC9VXQgTxMAI7uFdY6aBWWv kxUQ== X-Received: by 10.66.255.42 with SMTP id an10mr40009394pad.107.1442275326789; Mon, 14 Sep 2015 17:02:06 -0700 (PDT) Received: from chrisp-dl.ws.atlnz.lc (2-163-36-202-static.alliedtelesis.co.nz. [202.36.163.2]) by smtp.gmail.com with ESMTPSA id un2sm18412151pac.28.2015.09.14.17.02.04 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 Sep 2015 17:02:06 -0700 (PDT) From: Chris Packham To: buildroot@buildroot.org Date: Tue, 15 Sep 2015 12:01:45 +1200 Message-Id: <1442275305-10690-1-git-send-email-judge.packham@gmail.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1442226102-15878-1-git-send-email-judge.packham@gmail.com> References: <1442226102-15878-1-git-send-email-judge.packham@gmail.com> Cc: thomas.petazzoni@free-electrons.com Subject: [Buildroot] [PATCHv2] micropython: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Micro Python is a lean and fast implementation of the Python 3 programming language that is optimised to run on a microcontroller. Signed-off-by: Chris Packham --- Hi Buildroot, Thought you might be interested in mircopython a minimal python 3 implementation. It's designed for micro controllers but is also well suited to other general purpose embedded CPUs. Cheers, Chris Changes since v1: - Add dependency on host-pkgconf. - Use $(TARGET_MAKE_ENV) in make invocation for micropython (micropython-lib doesn't need it because it doesn't use anything setup by it). - Override PREFIX to install to /usr/bin instead of /usr/local/bin - Update/add some comments. package/Config.in | 2 ++ package/micropython-lib/Config.in | 7 +++++++ package/micropython-lib/micropython-lib.mk | 15 +++++++++++++++ package/micropython/Config.in | 8 ++++++++ package/micropython/micropython.mk | 27 +++++++++++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 package/micropython-lib/Config.in create mode 100644 package/micropython-lib/micropython-lib.mk create mode 100644 package/micropython/Config.in create mode 100644 package/micropython/micropython.mk diff --git a/package/Config.in b/package/Config.in index fc35f12..986fe16 100644 --- a/package/Config.in +++ b/package/Config.in @@ -509,6 +509,8 @@ menu "Lua libraries/modules" endmenu endif source "package/lutok/Config.in" + source "package/micropython/Config.in" + source "package/micropython-lib/Config.in" source "package/moarvm/Config.in" source "package/mono/Config.in" if BR2_PACKAGE_MONO diff --git a/package/micropython-lib/Config.in b/package/micropython-lib/Config.in new file mode 100644 index 0000000..a7e017b --- /dev/null +++ b/package/micropython-lib/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_MICROPYTHON_LIB + bool "micropython-lib" + depends on BR2_PACKAGE_MICROPYTHON + help + Core Python libraries ported to MicroPython. + + http://micropython.org diff --git a/package/micropython-lib/micropython-lib.mk b/package/micropython-lib/micropython-lib.mk new file mode 100644 index 0000000..8eb3c1f --- /dev/null +++ b/package/micropython-lib/micropython-lib.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# micropython-lib +# +################################################################################ +MICROPYTHON_LIB_VERSION = v0.5 +MICROPYTHON_LIB_SITE = $(call github,micropython,micropython-lib,$(MICROPYTHON_LIB_VERSION)) +MICROPYTHON_LIB_LICENSE = various +MICROPYTHON_LIB_LICENSE_FILES = LICENSE + +define MICROPYTHON_LIB_INSTALL_TARGET_CMDS + $(MAKE) -C $(@D) PREFIX=$(TARGET_DIR)/usr/lib/micropython install +endef + +$(eval $(generic-package)) diff --git a/package/micropython/Config.in b/package/micropython/Config.in new file mode 100644 index 0000000..ec47463 --- /dev/null +++ b/package/micropython/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_MICROPYTHON + bool "micropython" + select BR2_PACKAGE_LIBFFI + help + Micro Python is a lean and fast implementation of the Python 3 + programming language that is optimised to run on a microcontroller. + + http://micropython.org diff --git a/package/micropython/micropython.mk b/package/micropython/micropython.mk new file mode 100644 index 0000000..16dc263 --- /dev/null +++ b/package/micropython/micropython.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# micropython +# +################################################################################ +MICROPYTHON_VERSION = v1.4.5 +MICROPYTHON_SITE = $(call github,micropython,micropython,$(MICROPYTHON_VERSION)) +MICROPYTHON_LICENSE = MIT +MICROPYTHON_LICENSE_FILES = LICENSE +MICROPYTHON_DEPENDENCIES = host-pkgconf libffi + +# Use fallback implementation for exception handling on architectures that +# don't have explicit support. +ifeq ($(BR2_powerpc),y) +MICROPYTHON_CFLAGS = -DMICROPY_GCREGS_SETJMP=1 +endif + +define MICROPYTHON_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/unix \ + CROSS_COMPILE=$(TARGET_CROSS) \ + DESTDIR=$(TARGET_DIR) \ + PREFIX=$(TARGET_DIR)/usr \ + CFLAGS_EXTRA=$(MICROPYTHON_CFLAGS) \ + install +endef + +$(eval $(generic-package))