mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
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>
This commit is contained in:
parent
555ba4889c
commit
ee95d10ba9
1 changed files with 31 additions and 0 deletions
|
@ -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,23 @@ 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
|
||||
|
||||
# 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
|
||||
# Use 'sudo apt-get install swig libpython-dev' to enable this
|
||||
hostprogs-y += \
|
||||
|
@ -219,6 +246,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
|
||||
|
|
Loading…
Reference in a new issue