aboutsummaryrefslogtreecommitdiff
path: root/lang/python/micropython-lib/Makefile
blob: d6b86642936834ece9374274ef068bb0fd2d4fc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#
# Copyright (C) 2008-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=micropython-lib
PKG_RELEASE:=1

PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/micropython/micropython-lib.git
PKG_SOURCE_VERSION:=d8e163bb5f3ef45e71e145c27bc4f207beaad70f
PKG_SOURCE_DATE:=20231031
PKG_MIRROR_HASH:=6abb0a1460984c6fde99986971517121ac0207dabeb43cfb1855f6d7d1fd9ae5

PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_LICENSE:=MIT Python-2.0.1
PKG_LICENSE_FILES:=LICENSE

PKG_BUILD_DEPENDS:=python3/host
PKG_BUILD_PARALLEL:=1

# keep in sync with micropython (MPY_VERSION in py/persistentcode.h)
MICROPYTHON_MPY_VERSION:=6

include $(INCLUDE_DIR)/package.mk

define Package/micropython-lib/Default
  SUBMENU:=Python
  SECTION:=lang
  CATEGORY:=Languages
  TITLE:=MicroPython package repository
  URL:=https://github.com/micropython/micropython-lib
endef

define Package/micropython-lib
$(call Package/micropython-lib/Default)
  DEPENDS:=+micropython
endef

define Package/micropython-lib-src
$(call Package/micropython-lib/Default)
  TITLE+= (sources)
endef

define Package/micropython-lib-unix
$(call Package/micropython-lib/Default)
  TITLE+= - Unix port packages
  DEPENDS:=+micropython +libpcre2 +librt +libsqlite3
endef

define Package/micropython-lib-unix-src
$(call Package/micropython-lib/Default)
  TITLE+= - Unix port packages (sources)
endef

define Package/micropython-lib/Default/description
This is a repository of packages designed to be useful for writing
MicroPython applications.
endef

define Package/micropython-lib/description
$(call Package/micropython-lib/Default/description)

This contains packages common to all MicroPython ports.
endef

define Package/micropython-lib-src/description
$(call Package/micropython-lib/Default/description)

This contains source files for packages common to all MicroPython ports.
endef

define Package/micropython-lib-unix/description
$(call Package/micropython-lib/Default/description)

This contains packages specific to the MicroPython Unix port.
endef

define Package/micropython-lib-unix-src/description
$(call Package/micropython-lib/Default/description)

This contains source files for packages specific to the MicroPython Unix
port.
endef

MP_INSTALLDEV_PATH:=$(STAGING_DIR)/host/lib/micropython

define MicroPythonLib/Compile
	cd "$(PKG_BUILD_DIR)" && python3 tools/build.py \
		--hash-prefix 64 \
		--micropython "$(MP_INSTALLDEV_PATH)" \
		--mpy-cross "$(MP_INSTALLDEV_PATH)/mpy-cross/build/mpy-cross" \
		--output "$(PKG_BUILD_DIR)/$(strip $(1))" \
		$(2)
endef

define MicroPythonLib/Install
	python3 install.py \
		--input "$(PKG_BUILD_DIR)/$(strip $(1))" \
		--output "$(strip $(3))" \
		--version "$(strip $(2))"
endef

define Build/Compile
	$(call MicroPythonLib/Compile)
	$(call MicroPythonLib/Compile,unix-ffi-index,--unix-ffi)
endef

define Package/micropython-lib/install
	$(call MicroPythonLib/Install,,$(MICROPYTHON_MPY_VERSION),$(1)/usr/lib/micropython)
endef

define Package/micropython-lib-src/install
	$(call MicroPythonLib/Install,,py,$(1)/usr/lib/micropython)
endef

define Package/micropython-lib-unix/install
	$(call MicroPythonLib/Install,unix-ffi-index,$(MICROPYTHON_MPY_VERSION),$(1)/usr/lib/micropython/unix)

	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) ./files/micropython-unix $(1)/usr/bin/
endef

define Package/micropython-lib-unix-src/install
	$(call MicroPythonLib/Install,unix-ffi-index,py,$(1)/usr/lib/micropython/unix)
endef

$(eval $(call BuildPackage,micropython-lib))
$(eval $(call BuildPackage,micropython-lib-src))
$(eval $(call BuildPackage,micropython-lib-unix))
$(eval $(call BuildPackage,micropython-lib-unix-src))