mirror of
https://github.com/licsber/micropython.git
synced 2024-09-20 09:00:23 +08:00
2099b6897f
Some people want to enable even more warnings. Let them do it without putting burden on everyone. Some people vice versa think that current settings should be relaxed. In this regard, -Werror is the most problematic, it disallows to use #warning directive, and disallows to pass configuration settings on make command lines. Again, until decided how to deal with these globally, allow to work around these problems locally.
99 lines
2.0 KiB
Makefile
99 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
|
|
|
|
# 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)
|
|
|
|
UNAME_S := $(shell uname -s)
|
|
ifeq ($(UNAME_S),Darwin)
|
|
LDFLAGS = $(LDFLAGS_MOD) -lm -Wl,-map,$@.map,-order_file,$(BUILD)/order.def
|
|
else
|
|
LDFLAGS = $(LDFLAGS_MOD) -lm -Wl,-Map=$@.map,--cref
|
|
endif
|
|
|
|
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
|
|
|
|
|
|
# Debugging/Optimization
|
|
ifdef DEBUG
|
|
CFLAGS += -g
|
|
COPT = -O0
|
|
else
|
|
COPT = -Os #-DNDEBUG
|
|
endif
|
|
|
|
# source files
|
|
SRC_C = \
|
|
main.c \
|
|
gccollect.c \
|
|
input.c \
|
|
file.c \
|
|
modsocket.c \
|
|
modos.c \
|
|
$(SRC_MOD)
|
|
|
|
ifeq ($(UNAME_S),Darwin)
|
|
# 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
|