7cd46a12ae
The idea is that it should be possible to pass any additional params for experimentation without need to patch sources (and without need to deviate from or repeat baseline options).
100 lines
2.0 KiB
Makefile
100 lines
2.0 KiB
Makefile
include ../py/mkenv.mk
|
|
-include mpconfigport.mk
|
|
|
|
# define main target
|
|
PROG = micropython
|
|
|
|
# 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 ../py/py.mk
|
|
|
|
INC = -I.
|
|
INC += -I$(PY_SRC)
|
|
INC += -I$(BUILD)
|
|
|
|
# compiler settings
|
|
CWARN = -Wall -Werror
|
|
CFLAGS = $(INC) $(CWARN) -ansi -std=gnu99 -DUNIX $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
|
|
|
|
# Debugging/Optimization
|
|
ifdef DEBUG
|
|
CFLAGS += -g
|
|
COPT = -O0
|
|
else
|
|
COPT = -Os #-DNDEBUG
|
|
endif
|
|
|
|
LDFLAGS = $(LDFLAGS_MOD) -lm -Wl,-Map=$@.map,--cref $(LDFLAGS_EXTRA)
|
|
|
|
ifeq ($(MICROPY_FORCE_32BIT),1)
|
|
CFLAGS += -m32
|
|
LDFLAGS += -m32
|
|
ifeq ($(MICROPY_PY_FFI),1)
|
|
ifeq ($(UNAME_S),Linux)
|
|
CFLAGS_MOD += -I/usr/include/i686-linux-gnu
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(MICROPY_USE_READLINE),1)
|
|
CFLAGS_MOD += -DMICROPY_USE_READLINE=1
|
|
LDFLAGS_MOD += -lreadline
|
|
# the following is needed for BSD
|
|
#LDFLAGS_MOD += -ltermcap
|
|
endif
|
|
ifeq ($(MICROPY_PY_TIME),1)
|
|
CFLAGS_MOD += -DMICROPY_PY_TIME=1
|
|
SRC_MOD += modtime.c
|
|
endif
|
|
ifeq ($(MICROPY_PY_FFI),1)
|
|
LIBFFI_LDFLAGS_MOD := $(shell pkg-config --libs libffi)
|
|
LIBFFI_CFLAGS_MOD := $(shell pkg-config --cflags libffi)
|
|
CFLAGS_MOD += $(LIBFFI_CFLAGS_MOD) -DMICROPY_PY_FFI=1
|
|
ifeq ($(UNAME_S),Linux)
|
|
LDFLAGS_MOD += -ldl
|
|
endif
|
|
LDFLAGS_MOD += $(LIBFFI_LDFLAGS_MOD)
|
|
SRC_MOD += modffi.c
|
|
endif
|
|
|
|
|
|
# source files
|
|
SRC_C = \
|
|
main.c \
|
|
gccollect.c \
|
|
input.c \
|
|
file.c \
|
|
modsocket.c \
|
|
modos.c \
|
|
$(SRC_MOD)
|
|
|
|
ifeq ($(UNAME_S),Darwin)
|
|
|
|
LDFLAGS+ = -Wl,-order_file,$(BUILD)/order.def
|
|
|
|
# Must be the last file in list of sources
|
|
SRC_C += seg_helpers.c
|
|
|
|
# making seg_helpers.c rely on order.def will force order.def to be created
|
|
seg_helpers.c: $(BUILD)/order.def
|
|
|
|
# create order.def in build directory
|
|
$(BUILD)/order.def:
|
|
$(Q)echo "seg_helpers.o: ___bss_start" > $@
|
|
endif
|
|
|
|
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
|
|
|
|
include ../py/mkrules.mk
|
|
|
|
.PHONY: test
|
|
|
|
test: $(PROG) ../tests/run-tests
|
|
$(eval DIRNAME=$(notdir $(CURDIR)))
|
|
cd ../tests && MICROPY_MICROPYTHON=../$(DIRNAME)/$(PROG) ./run-tests
|