change compilation verbosity options; fix mpy-cross
This commit is contained in:
parent
8a89a3d425
commit
1b19ed4c39
@ -38,14 +38,15 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MICROPY_EMIT_X64 (1)
|
//CIRCUITPY: native emitters not supported
|
||||||
#define MICROPY_EMIT_X86 (1)
|
#define MICROPY_EMIT_X64 (!CIRCUITPY)
|
||||||
#define MICROPY_EMIT_THUMB (1)
|
#define MICROPY_EMIT_X86 (!CIRCUITPY)
|
||||||
#define MICROPY_EMIT_INLINE_THUMB (1)
|
#define MICROPY_EMIT_THUMB (!CIRCUITPY)
|
||||||
#define MICROPY_EMIT_ARM (1)
|
#define MICROPY_EMIT_INLINE_THUMB (!CIRCUITPY)
|
||||||
#define MICROPY_EMIT_XTENSA (1)
|
#define MICROPY_EMIT_ARM (!CIRCUITPY)
|
||||||
#define MICROPY_EMIT_INLINE_XTENSA (1)
|
#define MICROPY_EMIT_XTENSA (!CIRCUITPY)
|
||||||
#define MICROPY_EMIT_XTENSAWIN (1)
|
#define MICROPY_EMIT_INLINE_XTENSA (!CIRCUITPY)
|
||||||
|
#define MICROPY_EMIT_XTENSAWIN (!CIRCUITPY)
|
||||||
|
|
||||||
#define MICROPY_DYNAMIC_COMPILER (1)
|
#define MICROPY_DYNAMIC_COMPILER (1)
|
||||||
#define MICROPY_COMP_CONST_FOLDING (1)
|
#define MICROPY_COMP_CONST_FOLDING (1)
|
||||||
|
@ -60,6 +60,8 @@ ifdef STATIC_BUILD
|
|||||||
LDFLAGS += -static -static-libgcc -static-libstdc++
|
LDFLAGS += -static -static-libgcc -static-libstdc++
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
CFLAGS += -DCIRCUITPY=1
|
||||||
|
|
||||||
# source files
|
# source files
|
||||||
SRC_C += \
|
SRC_C += \
|
||||||
main.c \
|
main.c \
|
||||||
|
@ -74,7 +74,7 @@ static inline bool emit_inline_thumb_allow_float(emit_inline_asm_t *emit) {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
STATIC void emit_inline_thumb_error_msg(emit_inline_asm_t *emit, mp_rom_error_text_t msg) {
|
STATIC void emit_inline_thumb_error_msg(emit_inline_asm_t *emit, const compressed_string_t *msg) {
|
||||||
*emit->error_slot = mp_obj_new_exception_msg(&mp_type_SyntaxError, msg);
|
*emit->error_slot = mp_obj_new_exception_msg(&mp_type_SyntaxError, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
34
py/mkenv.mk
34
py/mkenv.mk
@ -13,29 +13,31 @@ THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
|||||||
TOP := $(patsubst %/py/mkenv.mk,%,$(THIS_MAKEFILE))
|
TOP := $(patsubst %/py/mkenv.mk,%,$(THIS_MAKEFILE))
|
||||||
|
|
||||||
# Turn on increased build verbosity by defining BUILD_VERBOSE in your main
|
# Turn on increased build verbosity by defining BUILD_VERBOSE in your main
|
||||||
# Makefile or in your environment. You can also use V=1 on the make command
|
# Makefile or in your environment. You can also use V="steps commands rules" or any combination thereof
|
||||||
# line.
|
# on the make command line.
|
||||||
|
|
||||||
ifeq ("$(origin V)", "command line")
|
ifeq ("$(origin V)", "command line")
|
||||||
BUILD_VERBOSE=$(V)
|
BUILD_VERBOSE=$(V)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef BUILD_VERBOSE
|
ifndef BUILD_VERBOSE
|
||||||
$(info Use make V={1,2,3} or set BUILD_VERBOSE similarly in your environment to increase build verbosity.)
|
$(info - Verbosity options: any combination of "steps commands rules", as `make V=...` or env var BUILD_VERBOSE)
|
||||||
BUILD_VERBOSE = 0
|
BUILD_VERBOSE = ""
|
||||||
endif
|
|
||||||
ifeq ($(BUILD_VERBOSE),0)
|
|
||||||
Q = @
|
|
||||||
STEPECHO = @:
|
|
||||||
else ifeq ($(BUILD_VERBOSE),1)
|
|
||||||
Q = @
|
|
||||||
STEPECHO = @echo
|
|
||||||
else
|
|
||||||
# BUILD_VERBOSE not 0 or 1
|
|
||||||
Q =
|
|
||||||
STEPECHO = @echo
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_VERBOSE),3)
|
ifneq ($(filter steps,$(BUILD_VERBOSE)),)
|
||||||
|
STEPECHO = @echo
|
||||||
|
else
|
||||||
|
STEPECHO = @:
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(filter commands,$(BUILD_VERBOSE)),)
|
||||||
|
Q =
|
||||||
|
else
|
||||||
|
Q = @
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(filter rules,$(BUILD_VERBOSE)),)
|
||||||
# This clever shell redefinition will print out the makefile line that is causing an action.
|
# This clever shell redefinition will print out the makefile line that is causing an action.
|
||||||
# Note that -j can cause the order to be confusing.
|
# Note that -j can cause the order to be confusing.
|
||||||
# https://www.cmcrossroads.com/article/tracing-rule-execution-gnu-make
|
# https://www.cmcrossroads.com/article/tracing-rule-execution-gnu-make
|
||||||
|
@ -75,7 +75,8 @@ $(Q)$(CXX) $(CXXFLAGS) -c -MD -o $@ $<
|
|||||||
$(RM) -f $(@:.o=.d)
|
$(RM) -f $(@:.o=.d)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
vpath %.c . $(TOP) $(USER_C_MODULES) $(DEVICES_MODULES)
|
# frozen.c and frozen_mpy.c are created in $(BUILD), so add it to the vpath as well.
|
||||||
|
vpath %.c . $(TOP) $(USER_C_MODULES) $(DEVICES_MODULES) $(BUILD)
|
||||||
$(BUILD)/%.o: %.c
|
$(BUILD)/%.o: %.c
|
||||||
$(call compile_c)
|
$(call compile_c)
|
||||||
|
|
||||||
@ -84,7 +85,7 @@ $(BUILD)/%.o: %.cpp
|
|||||||
$(call compile_cxx)
|
$(call compile_cxx)
|
||||||
|
|
||||||
$(BUILD)/%.pp: %.c
|
$(BUILD)/%.pp: %.c
|
||||||
$(ECHO) "PreProcess $<"
|
$(STEPECHO) "PreProcess $<"
|
||||||
$(Q)$(CPP) $(CFLAGS) -Wp,-C,-dD,-dI -o $@ $<
|
$(Q)$(CPP) $(CFLAGS) -Wp,-C,-dD,-dI -o $@ $<
|
||||||
|
|
||||||
# The following rule uses | to create an order only prerequisite. Order only
|
# The following rule uses | to create an order only prerequisite. Order only
|
||||||
@ -108,12 +109,12 @@ $(HEADER_BUILD)/qstr.i.last: $(SRC_QSTR) $(QSTR_GLOBAL_DEPENDENCIES) | $(QSTR_GL
|
|||||||
$(Q)$(PYTHON) $(PY_SRC)/makeqstrdefs.py pp $(CPP) output $(HEADER_BUILD)/qstr.i.last cflags $(QSTR_GEN_CFLAGS) cxxflags $(QSTR_GEN_CXXFLAGS) sources $^ dependencies $(QSTR_GLOBAL_DEPENDENCIES) changed_sources $?
|
$(Q)$(PYTHON) $(PY_SRC)/makeqstrdefs.py pp $(CPP) output $(HEADER_BUILD)/qstr.i.last cflags $(QSTR_GEN_CFLAGS) cxxflags $(QSTR_GEN_CXXFLAGS) sources $^ dependencies $(QSTR_GLOBAL_DEPENDENCIES) changed_sources $?
|
||||||
|
|
||||||
$(HEADER_BUILD)/qstr.split: $(HEADER_BUILD)/qstr.i.last
|
$(HEADER_BUILD)/qstr.split: $(HEADER_BUILD)/qstr.i.last
|
||||||
$(ECHO) "GEN $@"
|
$(STEPECHO) "GEN $@"
|
||||||
$(Q)$(PYTHON) $(PY_SRC)/makeqstrdefs.py split qstr $< $(HEADER_BUILD)/qstr _
|
$(Q)$(PYTHON) $(PY_SRC)/makeqstrdefs.py split qstr $< $(HEADER_BUILD)/qstr _
|
||||||
$(Q)$(TOUCH) $@
|
$(Q)$(TOUCH) $@
|
||||||
|
|
||||||
$(QSTR_DEFS_COLLECTED): $(HEADER_BUILD)/qstr.split
|
$(QSTR_DEFS_COLLECTED): $(HEADER_BUILD)/qstr.split
|
||||||
$(ECHO) "GEN $@"
|
$(STEPECHO) "GEN $@"
|
||||||
$(Q)$(PYTHON) $(PY_SRC)/makeqstrdefs.py cat qstr _ $(HEADER_BUILD)/qstr $@
|
$(Q)$(PYTHON) $(PY_SRC)/makeqstrdefs.py cat qstr _ $(HEADER_BUILD)/qstr $@
|
||||||
|
|
||||||
# Module definitions via MP_REGISTER_MODULE.
|
# Module definitions via MP_REGISTER_MODULE.
|
||||||
|
@ -55,8 +55,8 @@ typedef struct _mp_obj_gen_instance_t {
|
|||||||
// mp_const_none: Not-running, no exception.
|
// mp_const_none: Not-running, no exception.
|
||||||
// MP_OBJ_NULL: Running, no exception.
|
// MP_OBJ_NULL: Running, no exception.
|
||||||
// other: Not running, pending exception.
|
// other: Not running, pending exception.
|
||||||
mp_obj_t pend_exc;
|
|
||||||
bool coroutine_generator;
|
bool coroutine_generator;
|
||||||
|
mp_obj_t pend_exc;
|
||||||
mp_code_state_t code_state;
|
mp_code_state_t code_state;
|
||||||
} mp_obj_gen_instance_t;
|
} mp_obj_gen_instance_t;
|
||||||
|
|
||||||
@ -126,7 +126,6 @@ STATIC mp_obj_t native_gen_wrap_call(mp_obj_t self_in, size_t n_args, size_t n_k
|
|||||||
mp_obj_gen_instance_native_t *o = mp_obj_malloc_var(mp_obj_gen_instance_native_t, byte, n_state * sizeof(mp_obj_t), &mp_type_gen_instance);
|
mp_obj_gen_instance_native_t *o = mp_obj_malloc_var(mp_obj_gen_instance_native_t, byte, n_state * sizeof(mp_obj_t), &mp_type_gen_instance);
|
||||||
|
|
||||||
// Parse the input arguments and set up the code state
|
// Parse the input arguments and set up the code state
|
||||||
o->coroutine_generator = self->coroutine_generator;
|
|
||||||
o->pend_exc = mp_const_none;
|
o->pend_exc = mp_const_none;
|
||||||
o->code_state.fun_bc = self_fun;
|
o->code_state.fun_bc = self_fun;
|
||||||
o->code_state.ip = prelude_ptr;
|
o->code_state.ip = prelude_ptr;
|
||||||
|
4
py/py.mk
4
py/py.mk
@ -259,6 +259,8 @@ $(HEADER_BUILD)/$(TRANSLATION).mo: $(TOP)/locale/$(TRANSLATION).po | $(HEADER_BU
|
|||||||
# translations-*.c is generated as a side-effect of building compressed_translations.generated.h
|
# translations-*.c is generated as a side-effect of building compressed_translations.generated.h
|
||||||
# Specifying both in a single rule actually causes the rule to be run twice!
|
# Specifying both in a single rule actually causes the rule to be run twice!
|
||||||
# This alternative makes it run just once.
|
# This alternative makes it run just once.
|
||||||
|
# Another alternative is "grouped targets" (`a b &: c`), available in GNU make 4.3 and later.
|
||||||
|
# TODO: use grouped targets when we expect GNU make >= 4.3 is pervasive.
|
||||||
$(PY_BUILD)/translations-$(TRANSLATION).c: $(HEADER_BUILD)/compressed_translations.generated.h
|
$(PY_BUILD)/translations-$(TRANSLATION).c: $(HEADER_BUILD)/compressed_translations.generated.h
|
||||||
@true
|
@true
|
||||||
|
|
||||||
@ -271,7 +273,7 @@ PY_CORE_O += $(PY_BUILD)/translations-$(TRANSLATION).o
|
|||||||
|
|
||||||
# build a list of registered modules for py/objmodule.c.
|
# build a list of registered modules for py/objmodule.c.
|
||||||
$(HEADER_BUILD)/moduledefs.h: $(HEADER_BUILD)/moduledefs.collected
|
$(HEADER_BUILD)/moduledefs.h: $(HEADER_BUILD)/moduledefs.collected
|
||||||
@$(ECHO) "GEN $@"
|
@$(STEPECHO) "GEN $@"
|
||||||
$(Q)$(PYTHON) $(PY_SRC)/makemoduledefs.py $< > $@
|
$(Q)$(PYTHON) $(PY_SRC)/makemoduledefs.py $< > $@
|
||||||
|
|
||||||
# Standard C functions like memset need to be compiled with special flags so
|
# Standard C functions like memset need to be compiled with special flags so
|
||||||
|
Loading…
Reference in New Issue
Block a user