aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Thompson2016-09-19 17:47:46 +0100
committerPaul Sokolovsky2016-10-10 02:47:32 +0300
commit5a699a701767ded915d39ef46a9b4024765175a3 (patch)
treed2edfabc136c802dacc3560e96378b71fd6e8d3e
parent244b02f74487e67751c2ffd34ebc0168436c75ad (diff)
zephyr: Use recently added "make outputexports" Zephyr target.
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>
-rw-r--r--zephyr/Makefile61
1 files changed, 29 insertions, 32 deletions
diff --git a/zephyr/Makefile b/zephyr/Makefile
index 3d0bc3607..d0dce488d 100644
--- a/zephyr/Makefile
+++ b/zephyr/Makefile
@@ -16,17 +16,9 @@ BOARD ?= qemu_x86
OUTDIR_PREFIX = $(BOARD)
# Zephyr (generated) config files - must be defined before include below
-Z_DOTCONFIG = outdir/$(OUTDIR_PREFIX)/.config
-Z_AUTOCONF_H = outdir/$(OUTDIR_PREFIX)/include/generated/autoconf.h
-DQUOTE = "
-# "
-include z_config_proxy.mk
-
-# 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_TARGET = $(cflags-y)
+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
@@ -34,9 +26,9 @@ 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))
+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 \
@@ -48,33 +40,38 @@ SRC_C = main.c \
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)
+CFLAGS = $(KBUILD_CFLAGS) $(NOSTDINC_FLAGS) $(ZEPHYRINCLUDE) \
+ -std=gnu99 -DNDEBUG $(INC)
include ../py/mkrules.mk
-$(Z_DOTCONFIG):
- $(MAKE) -f Makefile.zephyr BOARD=$(BOARD) initconfig
+$(Z_EXPORTS):
+ $(MAKE) -f Makefile.zephyr BOARD=$(BOARD) initconfig outputexports
GENERIC_TARGETS = all zephyr qemu qemugdb flash debug
-KCONFIG_TARGETS = config nconfig menuconfig xconfig gconfig
-
-$(GENERIC_TARGETS) $(KCONFIG_TARGETS): $(LIBMICROPYTHON)
+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_AUTOCONF_H)
-build/genhdr/qstr.i.last: $(Z_AUTOCONF_H)
+$(LIBMICROPYTHON): $(Z_SYSGEN_H)
+build/genhdr/qstr.i.last: $(Z_SYSGEN_H)
-$(Z_AUTOCONF_H):
+$(Z_SYSGEN_H):
rm -f $(LIBMICROPYTHON)
-$(MAKE) -f Makefile.zephyr BOARD=$(BOARD)
-zephyr_arch.mk: $(Z_DOTCONFIG)
- echo "include $(ZEPHYR_BASE)/arch/$(ARCH)/Makefile" >$@
-
-z_config_proxy.mk:
- $(MAKE) -f Makefile.zephyr BOARD=$(BOARD) initconfig
- echo "include z_config.mk" >$@
-
# Clean Zephyr things too
-CLEAN_EXTRA = outdir z_config_proxy.mk
+clean: z_clean
+
+z_clean:
+ $(MAKE) -f Makefile.zephyr BOARD=$(BOARD) clean