5a699a7017
The outputexpors target, which exports Zephyr environment variables, was recently added to Zephyr. By exploiting this feature we can hugely simplify the build system, improving robustness at the same time. Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
78 lines
2.2 KiB
Makefile
78 lines
2.2 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.
|
|
#
|
|
|
|
BOARD ?= qemu_x86
|
|
# Zephyr 1.5.0
|
|
#OUTDIR_PREFIX =
|
|
# Zephyr 1.6.0
|
|
OUTDIR_PREFIX = $(BOARD)
|
|
|
|
# Zephyr (generated) config files - must be defined before include below
|
|
Z_SYSGEN_H = outdir/$(OUTDIR_PREFIX)/misc/generated/sysgen/sysgen.h
|
|
Z_EXPORTS = outdir/$(OUTDIR_PREFIX)/Makefile.export
|
|
include $(Z_EXPORTS)
|
|
|
|
include ../py/mkenv.mk
|
|
include ../py/py.mk
|
|
|
|
INC += -I.
|
|
INC += -I..
|
|
INC += -I$(BUILD)
|
|
INC += -I$(ZEPHYR_BASE)/net/ip
|
|
INC += -I$(ZEPHYR_BASE)/net/ip/contiki
|
|
INC += -I$(ZEPHYR_BASE)/net/ip/contiki/os
|
|
|
|
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))
|
|
|
|
CFLAGS = $(KBUILD_CFLAGS) $(NOSTDINC_FLAGS) $(ZEPHYRINCLUDE) \
|
|
-std=gnu99 -DNDEBUG $(INC)
|
|
|
|
include ../py/mkrules.mk
|
|
|
|
$(Z_EXPORTS):
|
|
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) initconfig outputexports
|
|
|
|
GENERIC_TARGETS = all zephyr qemu qemugdb flash debug
|
|
KCONFIG_TARGETS = \
|
|
initconfig config nconfig menuconfig xconfig gconfig \
|
|
oldconfig silentoldconfig defconfig savedefconfig \
|
|
allnoconfig allyesconfig alldefconfig randconfig \
|
|
listnewconfig olddefconfig
|
|
CLEAN_TARGETS = pristine mrproper
|
|
|
|
$(GENERIC_TARGETS): $(LIBMICROPYTHON)
|
|
$(CLEAN_TARGETS): clean
|
|
|
|
$(GENERIC_TARGETS) $(KCONFIG_TARGETS) $(CLEAN_TARGETS):
|
|
$(RM) -f outdir/$(OUTDIR_PREFIX)/zephyr.lnk
|
|
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) $@
|
|
|
|
$(LIBMICROPYTHON): $(Z_SYSGEN_H)
|
|
build/genhdr/qstr.i.last: $(Z_SYSGEN_H)
|
|
|
|
$(Z_SYSGEN_H):
|
|
rm -f $(LIBMICROPYTHON)
|
|
-$(MAKE) -f Makefile.zephyr BOARD=$(BOARD)
|
|
|
|
# Clean Zephyr things too
|
|
clean: z_clean
|
|
|
|
z_clean:
|
|
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) clean
|