[U-Boot] [PATCH v2 09/20] fdt: Build the new python libfdt module

Build the upstream python libfdt module. At present the legacy module is still built and is the one that it used. Future work will switch this over.
Signed-off-by: Simon Glass sjg@chromium.org ---
Changes in v2: - Fix building when srcpath is ".."
tools/Makefile | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/tools/Makefile b/tools/Makefile index cd08d3b33b..9f2d698818 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -63,6 +63,16 @@ FIT_SIG_OBJS-$(CONFIG_FIT_SIGNATURE) := common/image-sig.o LIBFDT_CSRCS := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c \ fdt_empty_tree.c fdt_addresses.c fdt_overlay.c \ fdt_region.c + +# Unfortunately setup.py below cannot handle srctree being ".." which it often +# is. It fails with an error like: +# Fatal error: can't create build/temp.linux-x86_64-2.7/../lib/libfdt/fdt.o: +# No such file or directory +# To fix this, use an absolute path. +libfdt_tree := $(shell readlink -f $(srctree)/lib/libfdt) + +LIBFDT_SRCS := $(addprefix $(libfdt_tree)/, $(LIBFDT_CSRCS)) +LIBFDT_SWIG := $(addprefix $(libfdt_tree)/, pylibfdt/libfdt.i) LIBFDT_OBJS := $(addprefix lib/libfdt/, $(patsubst %.c, %.o, $(LIBFDT_CSRCS)))
RSA_OBJS-$(CONFIG_FIT_SIGNATURE) := $(addprefix lib/rsa/, \ @@ -114,6 +124,15 @@ mkimage-objs := $(dumpimage-mkimage-objs) mkimage.o fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o
+tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG) + LDFLAGS="$(HOSTLDFLAGS)" CFLAGS= VERSION=u-boot-$(UBOOTVERSION) \ + CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \ + SOURCES="$(LIBFDT_SRCS) $(LIBFDT_SWIG)" \ + SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \ + $(libfdt_tree)/pylibfdt/setup.py --quiet build_ext --inplace + mv $(libfdt_tree)/pylibfdt/libfdt.py tools/. + rm $(libfdt_tree)/pylibfdt/libfdt_wrap.c + # Build a libfdt Python module if swig is available # Use 'sudo apt-get install swig libpython-dev' to enable this hostprogs-y += \ @@ -219,6 +238,10 @@ clean-dirs := lib common
always := $(hostprogs-y)
+# Build a libfdt Python module if swig is available +# Use 'sudo apt-get install swig libpython-dev' to enable this +always += $(if $(shell which swig 2> /dev/null),_libfdt.so) + # Generated LCD/video logo LOGO_H = $(objtree)/include/bmp_logo.h LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
participants (1)
-
Simon Glass