Skip to content

Commit 5a699a7

Browse files
Daniel Thompsonpfalcon
Daniel Thompson
authored andcommitted
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>
1 parent 244b02f commit 5a699a7

File tree

1 file changed

+29
-32
lines changed

1 file changed

+29
-32
lines changed

zephyr/Makefile

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,19 @@ BOARD ?= qemu_x86
1616
OUTDIR_PREFIX = $(BOARD)
1717

1818
# Zephyr (generated) config files - must be defined before include below
19-
Z_DOTCONFIG = outdir/$(OUTDIR_PREFIX)/.config
20-
Z_AUTOCONF_H = outdir/$(OUTDIR_PREFIX)/include/generated/autoconf.h
21-
DQUOTE = "
22-
# "
23-
include z_config_proxy.mk
24-
25-
# Zephyr toolchain config is 2-pass, so included twice
26-
include $(ZEPHYR_BASE)/scripts/Makefile.toolchain.$(ZEPHYR_GCC_VARIANT)
27-
include $(ZEPHYR_BASE)/scripts/Makefile.toolchain.$(ZEPHYR_GCC_VARIANT)
28-
29-
CFLAGS_TARGET = $(cflags-y)
19+
Z_SYSGEN_H = outdir/$(OUTDIR_PREFIX)/misc/generated/sysgen/sysgen.h
20+
Z_EXPORTS = outdir/$(OUTDIR_PREFIX)/Makefile.export
21+
include $(Z_EXPORTS)
3022

3123
include ../py/mkenv.mk
3224
include ../py/py.mk
3325

3426
INC += -I.
3527
INC += -I..
3628
INC += -I$(BUILD)
37-
INC += -I$(ZEPHYR_BASE)/include -I$(ZEPHYR_BASE) \
38-
-Ioutdir/$(OUTDIR_PREFIX)/misc/generated/sysgen \
39-
-I$(dir $(Z_AUTOCONF_H))
29+
INC += -I$(ZEPHYR_BASE)/net/ip
30+
INC += -I$(ZEPHYR_BASE)/net/ip/contiki
31+
INC += -I$(ZEPHYR_BASE)/net/ip/contiki/os
4032

4133
SRC_C = main.c \
4234
uart_core.c \
@@ -48,33 +40,38 @@ SRC_C = main.c \
4840

4941
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
5042

51-
COPT = -Os -DNDEBUG -fdata-sections -ffunction-sections
52-
CFLAGS = -std=gnu99 $(TOOLCHAIN_CFLAGS) $(INC) $(CFLAGS_MOD) $(COPT) $(CFLAGS_TARGET)
43+
CFLAGS = $(KBUILD_CFLAGS) $(NOSTDINC_FLAGS) $(ZEPHYRINCLUDE) \
44+
-std=gnu99 -DNDEBUG $(INC)
5345

5446
include ../py/mkrules.mk
5547

56-
$(Z_DOTCONFIG):
57-
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) initconfig
48+
$(Z_EXPORTS):
49+
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) initconfig outputexports
5850

5951
GENERIC_TARGETS = all zephyr qemu qemugdb flash debug
60-
KCONFIG_TARGETS = config nconfig menuconfig xconfig gconfig
61-
62-
$(GENERIC_TARGETS) $(KCONFIG_TARGETS): $(LIBMICROPYTHON)
52+
KCONFIG_TARGETS = \
53+
initconfig config nconfig menuconfig xconfig gconfig \
54+
oldconfig silentoldconfig defconfig savedefconfig \
55+
allnoconfig allyesconfig alldefconfig randconfig \
56+
listnewconfig olddefconfig
57+
CLEAN_TARGETS = pristine mrproper
58+
59+
$(GENERIC_TARGETS): $(LIBMICROPYTHON)
60+
$(CLEAN_TARGETS): clean
61+
62+
$(GENERIC_TARGETS) $(KCONFIG_TARGETS) $(CLEAN_TARGETS):
63+
$(RM) -f outdir/$(OUTDIR_PREFIX)/zephyr.lnk
6364
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) $@
6465

65-
$(LIBMICROPYTHON): $(Z_AUTOCONF_H)
66-
build/genhdr/qstr.i.last: $(Z_AUTOCONF_H)
66+
$(LIBMICROPYTHON): $(Z_SYSGEN_H)
67+
build/genhdr/qstr.i.last: $(Z_SYSGEN_H)
6768

68-
$(Z_AUTOCONF_H):
69+
$(Z_SYSGEN_H):
6970
rm -f $(LIBMICROPYTHON)
7071
-$(MAKE) -f Makefile.zephyr BOARD=$(BOARD)
7172

72-
zephyr_arch.mk: $(Z_DOTCONFIG)
73-
echo "include $(ZEPHYR_BASE)/arch/$(ARCH)/Makefile" >$@
74-
75-
z_config_proxy.mk:
76-
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) initconfig
77-
echo "include z_config.mk" >$@
78-
7973
# Clean Zephyr things too
80-
CLEAN_EXTRA = outdir z_config_proxy.mk
74+
clean: z_clean
75+
76+
z_clean:
77+
$(MAKE) -f Makefile.zephyr BOARD=$(BOARD) clean

0 commit comments

Comments
 (0)