Skip to content
Snippets Groups Projects
Commit ee95d10b authored by Simon Glass's avatar Simon Glass
Browse files

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: default avatarSimon Glass <sjg@chromium.org>
parent 555ba488
No related branches found
No related tags found
No related merge requests found
...@@ -63,6 +63,16 @@ FIT_SIG_OBJS-$(CONFIG_FIT_SIGNATURE) := common/image-sig.o ...@@ -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 \ 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_empty_tree.c fdt_addresses.c fdt_overlay.c \
fdt_region.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))) LIBFDT_OBJS := $(addprefix lib/libfdt/, $(patsubst %.c, %.o, $(LIBFDT_CSRCS)))
RSA_OBJS-$(CONFIG_FIT_SIGNATURE) := $(addprefix lib/rsa/, \ RSA_OBJS-$(CONFIG_FIT_SIGNATURE) := $(addprefix lib/rsa/, \
...@@ -114,6 +124,23 @@ mkimage-objs := $(dumpimage-mkimage-objs) mkimage.o ...@@ -114,6 +124,23 @@ mkimage-objs := $(dumpimage-mkimage-objs) mkimage.o
fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o
fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o
# Unfortunately setup.py (or actually the Python distutil implementation)
# puts files into the same directory as the .i file. We cannot touch the source
# directory, so we copy the .i file into the tools/ build subdirectory before
# calling setup. This directory is safe to write to. This ensures that we get
# all three files in $(obj)/tools: _libfdt.so, libfdt.py and libfdt_wrap.c
# The latter is a temporary file which we could actually remove.
tools/_libfdt.so: $(LIBFDT_SRCS) $(LIBFDT_SWIG)
cp $(LIBFDT_SWIG) tools/.
unset CC; \
unset CROSS_COMPILE; \
LDFLAGS="$(HOSTLDFLAGS)" CFLAGS= VERSION="u-boot-$(UBOOTVERSION)" \
CPPFLAGS="$(_hostc_flags)" OBJDIR=tools \
SOURCES="$(LIBFDT_SRCS) tools/libfdt.i" \
SWIG_OPTS="-I$(srctree)/lib/libfdt -I$(srctree)/lib" \
$(libfdt_tree)/pylibfdt/setup.py --quiet build_ext \
--build-lib tools
# Build a libfdt Python module if swig is available # Build a libfdt Python module if swig is available
# Use 'sudo apt-get install swig libpython-dev' to enable this # Use 'sudo apt-get install swig libpython-dev' to enable this
hostprogs-y += \ hostprogs-y += \
...@@ -219,6 +246,10 @@ clean-dirs := lib common ...@@ -219,6 +246,10 @@ clean-dirs := lib common
always := $(hostprogs-y) 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 # Generated LCD/video logo
LOGO_H = $(objtree)/include/bmp_logo.h LOGO_H = $(objtree)/include/bmp_logo.h
LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment