summaryrefslogtreecommitdiff
path: root/py/py.mk
diff options
context:
space:
mode:
Diffstat (limited to 'py/py.mk')
-rw-r--r--py/py.mk108
1 files changed, 50 insertions, 58 deletions
diff --git a/py/py.mk b/py/py.mk
index e934c3a83..cad8b53ec 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -13,6 +13,9 @@ ifneq ($(QSTR_AUTOGEN_DISABLE),1)
QSTR_DEFS_COLLECTED = $(HEADER_BUILD)/qstrdefs.collected.h
endif
+# Any files listed by this variable will cause a full regeneration of qstrs
+QSTR_GLOBAL_DEPENDENCIES += $(PY_SRC)/mpconfig.h mpconfigport.h
+
# some code is performance bottleneck and compiled with other optimization options
CSUPEROPT = -O3
@@ -101,8 +104,9 @@ $(BUILD)/extmod/modbtree.o: CFLAGS += $(BTREE_DEFS)
endif
# py object files
-PY_O_BASENAME = \
+PY_CORE_O_BASENAME = $(addprefix py/,\
mpstate.o \
+ nlr.o \
nlrx86.o \
nlrx64.o \
nlrthumb.o \
@@ -111,6 +115,7 @@ PY_O_BASENAME = \
malloc.o \
gc.o \
gc_long_lived.o \
+ pystack.o \
qstr.o \
vstr.o \
mpprint.o \
@@ -157,6 +162,7 @@ PY_O_BASENAME = \
objcell.o \
objclosure.o \
objcomplex.o \
+ objdeque.o \
objdict.o \
objenumerate.o \
objexcept.o \
@@ -213,41 +219,49 @@ PY_O_BASENAME = \
repl.o \
smallint.o \
frozenmod.o \
- ../extmod/moductypes.o \
- ../extmod/modujson.o \
- ../extmod/modure.o \
- ../extmod/moduzlib.o \
- ../extmod/moduheapq.o \
- ../extmod/modutimeq.o \
- ../extmod/moduhashlib.o \
- ../extmod/modubinascii.o \
- ../extmod/virtpin.o \
- ../extmod/machine_mem.o \
- ../extmod/machine_pinbase.o \
- ../extmod/machine_signal.o \
- ../extmod/machine_pulse.o \
- ../extmod/machine_i2c.o \
- ../extmod/machine_spi.o \
- ../extmod/modussl_axtls.o \
- ../extmod/modussl_mbedtls.o \
- ../extmod/modurandom.o \
- ../extmod/moduselect.o \
- ../extmod/modwebsocket.o \
- ../extmod/modwebrepl.o \
- ../extmod/modframebuf.o \
- ../extmod/vfs.o \
- ../extmod/vfs_reader.o \
- ../extmod/vfs_fat.o \
- ../extmod/vfs_fat_diskio.o \
- ../extmod/vfs_fat_file.o \
- ../extmod/vfs_fat_misc.o \
- ../extmod/utime_mphal.o \
- ../extmod/uos_dupterm.o \
- ../lib/embed/abort_.o \
- ../lib/utils/printf.o \
+ )
+
+PY_EXTMOD_O_BASENAME = \
+ extmod/moductypes.o \
+ extmod/modujson.o \
+ extmod/modure.o \
+ extmod/moduzlib.o \
+ extmod/moduheapq.o \
+ extmod/modutimeq.o \
+ extmod/moduhashlib.o \
+ extmod/modubinascii.o \
+ extmod/virtpin.o \
+ extmod/machine_mem.o \
+ extmod/machine_pinbase.o \
+ extmod/machine_signal.o \
+ extmod/machine_pulse.o \
+ extmod/machine_i2c.o \
+ extmod/machine_spi.o \
+ extmod/modussl_axtls.o \
+ extmod/modussl_mbedtls.o \
+ extmod/modurandom.o \
+ extmod/moduselect.o \
+ extmod/modwebsocket.o \
+ extmod/modwebrepl.o \
+ extmod/modframebuf.o \
+ extmod/vfs.o \
+ extmod/vfs_reader.o \
+ extmod/vfs_posix.o \
+ extmod/vfs_posix_file.o \
+ extmod/vfs_fat.o \
+ extmod/vfs_fat_diskio.o \
+ extmod/vfs_fat_file.o \
+ extmod/utime_mphal.o \
+ extmod/uos_dupterm.o \
+ lib/embed/abort_.o \
+ lib/utils/printf.o \
# prepend the build destination prefix to the py object files
-PY_O = $(addprefix $(PY_BUILD)/, $(PY_O_BASENAME))
+PY_CORE_O = $(addprefix $(BUILD)/, $(PY_CORE_O_BASENAME))
+PY_EXTMOD_O = $(addprefix $(BUILD)/, $(PY_EXTMOD_O_BASENAME))
+
+# this is a convenience variable for ports that want core, extmod and frozen code
+PY_O = $(PY_CORE_O) $(PY_EXTMOD_O)
# object file for frozen files
ifneq ($(FROZEN_DIR),)
@@ -263,8 +277,8 @@ PY_O += $(BUILD)/frozen_mpy.o
endif
# Sources that may contain qstrings
-SRC_QSTR_IGNORE = nlr% emitnx86% emitnx64% emitnthumb% emitnarm% emitnxtensa%
-SRC_QSTR = $(SRC_MOD) $(addprefix py/,$(filter-out $(SRC_QSTR_IGNORE),$(PY_O_BASENAME:.o=.c)) emitnative.c)
+SRC_QSTR_IGNORE = py/nlr%
+SRC_QSTR = $(SRC_MOD) $(filter-out $(SRC_QSTR_IGNORE),$(PY_CORE_O_BASENAME:.o=.c)) $(PY_EXTMOD_O_BASENAME:.o=.c)
# Anything that depends on FORCE will be considered out-of-date
FORCE:
@@ -291,28 +305,6 @@ $(HEADER_BUILD)/qstrdefs.generated.h: $(PY_QSTR_DEFS) $(QSTR_DEFS) $(QSTR_DEFS_C
# that the function preludes are of a minimal and predictable form.
$(PY_BUILD)/nlr%.o: CFLAGS += -Os
-# emitters
-
-$(PY_BUILD)/emitnx64.o: CFLAGS += -DN_X64
-$(PY_BUILD)/emitnx64.o: py/emitnative.c
- $(call compile_c)
-
-$(PY_BUILD)/emitnx86.o: CFLAGS += -DN_X86
-$(PY_BUILD)/emitnx86.o: py/emitnative.c
- $(call compile_c)
-
-$(PY_BUILD)/emitnthumb.o: CFLAGS += -DN_THUMB
-$(PY_BUILD)/emitnthumb.o: py/emitnative.c
- $(call compile_c)
-
-$(PY_BUILD)/emitnarm.o: CFLAGS += -DN_ARM
-$(PY_BUILD)/emitnarm.o: py/emitnative.c
- $(call compile_c)
-
-$(PY_BUILD)/emitnxtensa.o: CFLAGS += -DN_XTENSA
-$(PY_BUILD)/emitnxtensa.o: py/emitnative.c
- $(call compile_c)
-
# optimising gc for speed; 5ms down to 4ms on pybv2
$(PY_BUILD)/gc.o: CFLAGS += $(CSUPEROPT)