mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
fdt: Makefile: Build python libfdt library if needed
This is needed by binman and dtoc, so if those are being used, check that the library is present and complain if not. Make sure that any error appears on stderr so that buildman notices it. This means that the fallback library (which uses fdtget) will not be used anymore and swig will need to be installed to use binman / dtoc. This affects any board which uses binman (currently sunxi and x86) or dtoc (anything that uses CONFIG_SPL_OF_PLATDATA, currently some rockchip boards). Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
b4360206a4
commit
e38ffc4267
2 changed files with 28 additions and 6 deletions
17
Makefile
17
Makefile
|
@ -1116,7 +1116,7 @@ cmd_ldr = $(LD) $(LDFLAGS_$(@F)) \
|
|||
|
||||
u-boot.rom: u-boot-x86-16bit.bin u-boot.bin \
|
||||
$(if $(CONFIG_SPL_X86_16BIT_INIT),spl/u-boot-spl.bin) \
|
||||
$(if $(CONFIG_HAVE_REFCODE),refcode.bin) FORCE
|
||||
$(if $(CONFIG_HAVE_REFCODE),refcode.bin) checkbinman FORCE
|
||||
$(call if_changed,binman)
|
||||
|
||||
OBJCOPYFLAGS_u-boot-x86-16bit.bin := -O binary -j .start16 -j .resetvec
|
||||
|
@ -1125,7 +1125,8 @@ u-boot-x86-16bit.bin: u-boot FORCE
|
|||
endif
|
||||
|
||||
ifneq ($(CONFIG_ARCH_SUNXI),)
|
||||
u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img u-boot.dtb FORCE
|
||||
u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img u-boot.dtb \
|
||||
checkbinman FORCE
|
||||
$(call if_changed,binman)
|
||||
endif
|
||||
|
||||
|
@ -1354,6 +1355,18 @@ $(version_h): include/config/uboot.release FORCE
|
|||
$(timestamp_h): $(srctree)/Makefile FORCE
|
||||
$(call filechk,timestamp.h)
|
||||
|
||||
checkbinman: tools
|
||||
@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
|
||||
echo >&2; \
|
||||
echo >&2 '*** binman needs the Python libfdt library.'; \
|
||||
echo >&2 '*** Either install it on your system, or try:'; \
|
||||
echo >&2 '***'; \
|
||||
echo >&2 '*** sudo apt-get install swig libpython-dev'; \
|
||||
echo >&2 '***'; \
|
||||
echo >&2 '*** to have U-Boot build its own version.'; \
|
||||
false; \
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
quiet_cmd_cpp_lds = LDS $@
|
||||
cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) $(LDPPFLAGS) \
|
||||
|
|
|
@ -257,14 +257,12 @@ PHONY += dts_dir
|
|||
dts_dir:
|
||||
$(shell [ -d $(obj)/dts ] || mkdir -p $(obj)/dts)
|
||||
|
||||
include/generated/dt-structs.h: $(obj)/$(SPL_BIN).dtb dts_dir dtoc
|
||||
include/generated/dt-structs.h: $(obj)/$(SPL_BIN).dtb dts_dir checkdtoc
|
||||
$(call if_changed,dtoch)
|
||||
|
||||
$(obj)/dts/dt-platdata.c: $(obj)/$(SPL_BIN).dtb dts_dir dtoc
|
||||
$(obj)/dts/dt-platdata.c: $(obj)/$(SPL_BIN).dtb dts_dir checkdtoc
|
||||
$(call if_changed,dtocc)
|
||||
|
||||
dtoc: #$(objtree)/tools/_libfdt.so
|
||||
|
||||
ifdef CONFIG_SAMSUNG
|
||||
ifdef CONFIG_VAR_SIZE_SPL
|
||||
VAR_SIZE_PARAM = --vs
|
||||
|
@ -357,6 +355,17 @@ ifneq ($(cmd_files),)
|
|||
include $(cmd_files)
|
||||
endif
|
||||
|
||||
checkdtoc: tools
|
||||
@if ! ( echo 'import libfdt' | ( PYTHONPATH=tools python )); then \
|
||||
echo '*** dtoc needs the Python libfdt library. Either '; \
|
||||
echo '*** install it on your system, or try:'; \
|
||||
echo '***'; \
|
||||
echo '*** sudo apt-get install swig libpython-dev'; \
|
||||
echo '***'; \
|
||||
echo '*** to have U-Boot build its own version.'; \
|
||||
false; \
|
||||
fi
|
||||
|
||||
PHONY += FORCE
|
||||
FORCE:
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue