70 lines
2.0 KiB
Makefile
70 lines
2.0 KiB
Makefile
|
#
|
||
|
# This is main Makefile, which uses MicroPython build system, but
|
||
|
# Zephyr arch-specific toolchain (setup by Zephyr's Makefile.toolchain.*).
|
||
|
# Unfortunately, it's currently not possible to get target (as in: specific
|
||
|
# board to run on) specific compile-time options from Zephyr, so these must
|
||
|
# be set (duplicated) in this Makefile. Currently, these configured for
|
||
|
# ARM Cortex-M3. This Makefile builds MicroPython as a library, and then
|
||
|
# calls recursively Makefile.zephyr to build complete application using
|
||
|
# Zephyr build system.
|
||
|
#
|
||
|
|
||
|
ARCH ?= x86
|
||
|
BOARD ?= qemu_x86
|
||
|
# Zephyr 1.5.0
|
||
|
#OUTDIR_PREFIX =
|
||
|
# Zephyr 1.6.0
|
||
|
OUTDIR_PREFIX = $(BOARD)
|
||
|
|
||
|
# Zephyr toolchain config is 2-pass, so included twice
|
||
|
include $(ZEPHYR_BASE)/scripts/Makefile.toolchain.$(ZEPHYR_GCC_VARIANT)
|
||
|
include $(ZEPHYR_BASE)/scripts/Makefile.toolchain.$(ZEPHYR_GCC_VARIANT)
|
||
|
|
||
|
CFLAGS_arm = -mthumb -mcpu=cortex-m3 -mabi=aapcs
|
||
|
CFLAGS_x86 = -fno-asynchronous-unwind-tables -ffreestanding -fno-stack-protector \
|
||
|
-fno-omit-frame-pointer -mpreferred-stack-boundary=2 -mno-sse -march=pentium
|
||
|
CFLAGS_TARGET = $(CFLAGS_$(ARCH))
|
||
|
|
||
|
include ../py/mkenv.mk
|
||
|
include ../py/py.mk
|
||
|
|
||
|
INC += -I.
|
||
|
INC += -I..
|
||
|
INC += -I$(BUILD)
|
||
|
INC += -I$(ZEPHYR_BASE)/include -I$(ZEPHYR_BASE) \
|
||
|
-Ioutdir/$(OUTDIR_PREFIX)/misc/generated/sysgen \
|
||
|
-I$(dir $(Z_AUTOCONF_H))
|
||
|
|
||
|
SRC_C = main.c \
|
||
|
uart_core.c \
|
||
|
lib/utils/stdout_helpers.c \
|
||
|
lib/utils/printf.c \
|
||
|
lib/utils/pyexec.c \
|
||
|
lib/mp-readline/readline.c \
|
||
|
$(SRC_MOD)
|
||
|
|
||
|
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
|
||
|
|
||
|
COPT = -Os -DNDEBUG -fdata-sections -ffunction-sections
|
||
|
CFLAGS = -std=gnu99 $(TOOLCHAIN_CFLAGS) $(INC) $(CFLAGS_MOD) $(COPT) $(CFLAGS_TARGET)
|
||
|
|
||
|
include ../py/mkrules.mk
|
||
|
|
||
|
all: $(LIBMICROPYTHON)
|
||
|
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD)
|
||
|
|
||
|
qemu: all
|
||
|
$(MAKE) -f Makefile.zephyr qemu BOARD=$(BOARD)
|
||
|
|
||
|
Z_AUTOCONF_H = outdir/$(OUTDIR_PREFIX)/include/generated/autoconf.h
|
||
|
|
||
|
$(LIBMICROPYTHON): $(Z_AUTOCONF_H)
|
||
|
build/genhdr/qstr.i.last: $(Z_AUTOCONF_H)
|
||
|
|
||
|
$(Z_AUTOCONF_H):
|
||
|
rm -f $(LIBMICROPYTHON)
|
||
|
-$(MAKE) -f Makefile.zephyr BOARD=$(BOARD)
|
||
|
|
||
|
# Clean Zephyr things too
|
||
|
CLEAN_EXTRA = outdir
|