hc
2024-03-22 619f0f87159c5dbd2755b1b0a0eb35784be84e7a
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
################################################################################
#
# micropython
#
################################################################################
 
MICROPYTHON_VERSION = 1.17
MICROPYTHON_SITE = $(call github,micropython,micropython,v$(MICROPYTHON_VERSION))
# Micropython has a lot of code copied from other projects, and also a number
# of submodules for various libs. However, we don't even clone the submodules,
# and most of the copied code is not used in the unix build.
MICROPYTHON_LICENSE = MIT, BSD-1-Clause, BSD-3-Clause, Zlib
MICROPYTHON_LICENSE_FILES = LICENSE
MICROPYTHON_DEPENDENCIES = host-pkgconf libffi host-python3
 
# Set GIT_DIR so package won't use buildroot's version number
MICROPYTHON_MAKE_ENV = \
   $(TARGET_MAKE_ENV) \
   GIT_DIR=.
 
# Use fallback implementation for exception handling on architectures that don't
# have explicit support.
ifeq ($(BR2_i386)$(BR2_x86_64)$(BR2_arm)$(BR2_armeb),)
MICROPYTHON_CFLAGS = -DMICROPY_GCREGS_SETJMP=1
endif
 
# xtensa has problems with nlr_push, use setjmp based implementation instead
ifeq ($(BR2_xtensa),y)
MICROPYTHON_CFLAGS = -DMICROPY_NLR_SETJMP=1
endif
 
# When building from a tarball we don't have some of the dependencies that are in
# the git repository as submodules
MICROPYTHON_MAKE_OPTS += \
   MICROPY_PY_BTREE=0 \
   MICROPY_PY_USSL=0 \
   CROSS_COMPILE=$(TARGET_CROSS) \
   CFLAGS_EXTRA=$(MICROPYTHON_CFLAGS) \
   CWARN=
 
define MICROPYTHON_BUILD_CMDS
   $(MICROPYTHON_MAKE_ENV) $(MAKE) -C $(@D)/mpy-cross
   $(MICROPYTHON_MAKE_ENV) $(MAKE) -C $(@D)/ports/unix \
       $(MICROPYTHON_MAKE_OPTS)
endef
 
define MICROPYTHON_INSTALL_TARGET_CMDS
   $(MICROPYTHON_MAKE_ENV) $(MAKE) -C $(@D)/ports/unix \
       $(MICROPYTHON_MAKE_OPTS) \
       DESTDIR=$(TARGET_DIR) \
       PREFIX=/usr \
       install
endef
 
$(eval $(generic-package))