710426024a
No functionality change is intended with this commit, it just consolidates the separate implementations of GC helper code to the lib/utils/ directory as a general set of helper functions useful for any port. This reduces duplication of code, and makes it easier for future ports or embedders to get the GC implementation correct. Ports should now link against gchelper_native.c and either gchelper_m0.s or gchelper_m3.s (currently only Cortex-M is supported but other architectures can follow), or use the fallback gchelper_generic.c which will work on x86/x64/ARM. The gc_helper_get_sp function from gchelper_m3.s is not really GC related and was only used by cc3200, so it has been moved to that port and renamed to cortex_m3_get_sp.
63 lines
1.5 KiB
Makefile
63 lines
1.5 KiB
Makefile
include ../py/mkenv.mk
|
|
|
|
# define main target
|
|
PROG = mpy-cross
|
|
|
|
# qstr definitions (must come before including py.mk)
|
|
QSTR_DEFS = qstrdefsport.h
|
|
|
|
# OS name, for simple autoconfig
|
|
UNAME_S := $(shell uname -s)
|
|
|
|
# include py core make definitions
|
|
include $(TOP)/py/py.mk
|
|
|
|
INC += -I.
|
|
INC += -I$(BUILD)
|
|
INC += -I$(TOP)
|
|
|
|
# compiler settings
|
|
CWARN = -Wall -Werror
|
|
CWARN += -Wpointer-arith -Wuninitialized
|
|
CFLAGS = $(INC) $(CWARN) -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
|
|
CFLAGS += -fdata-sections -ffunction-sections -fno-asynchronous-unwind-tables
|
|
|
|
# Debugging/Optimization
|
|
ifdef DEBUG
|
|
CFLAGS += -g
|
|
COPT = -O0
|
|
else
|
|
COPT = -Os #-DNDEBUG
|
|
endif
|
|
|
|
# On OSX, 'gcc' is a symlink to clang unless a real gcc is installed.
|
|
# The unix port of MicroPython on OSX must be compiled with clang,
|
|
# while cross-compile ports require gcc, so we test here for OSX and
|
|
# if necessary override the value of 'CC' set in py/mkenv.mk
|
|
ifeq ($(UNAME_S),Darwin)
|
|
CC = clang
|
|
# Use clang syntax for map file
|
|
LDFLAGS_ARCH = -Wl,-map,$@.map -Wl,-dead_strip
|
|
else
|
|
# Use gcc syntax for map file
|
|
LDFLAGS_ARCH = -Wl,-Map=$@.map,--cref -Wl,--gc-sections
|
|
endif
|
|
LDFLAGS = $(LDFLAGS_MOD) $(LDFLAGS_ARCH) -lm $(LDFLAGS_EXTRA)
|
|
|
|
# source files
|
|
SRC_C = \
|
|
main.c \
|
|
gccollect.c \
|
|
lib/utils/gchelper_generic.c \
|
|
|
|
# Add fmode when compiling with mingw gcc
|
|
COMPILER_TARGET := $(shell $(CC) -dumpmachine)
|
|
ifneq (,$(findstring mingw,$(COMPILER_TARGET)))
|
|
SRC_C += ports/windows/fmode.c
|
|
endif
|
|
|
|
OBJ = $(PY_CORE_O)
|
|
OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
|
|
|
|
include $(TOP)/py/mkrules.mk
|