mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-12 22:33:18 +00:00
91f414b3a8
At present the build rule for pylibfdt depends on _libfdt.so but modern Python versions add a different suffix to the output file, resulting in something like _libfdt.cpython-38-x86_64-linux-gnu.so The result is that pylibfdt is rebuilt every time. Rename the file the standard name so that the rule works correctly. Also add libfdt.py to the dependencies, so that file is always created if missing. Signed-off-by: Simon Glass <sjg@chromium.org>
40 lines
1.5 KiB
Makefile
40 lines
1.5 KiB
Makefile
# 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_srcdir = $(abspath $(srctree)/$(src)/../libfdt)
|
|
|
|
include $(LIBFDT_srcdir)/Makefile.libfdt
|
|
|
|
# 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 "ship" .i file into the objtree.
|
|
PYLIBFDT_srcs = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_SRCS)) \
|
|
$(obj)/libfdt.i
|
|
|
|
quiet_cmd_pymod = PYMOD $@
|
|
cmd_pymod = unset CROSS_COMPILE; unset CFLAGS; \
|
|
CC="$(HOSTCC)" LDSHARED="$(HOSTCC) -shared " \
|
|
LDFLAGS="$(HOSTLDFLAGS)" \
|
|
VERSION="u-boot-$(UBOOTVERSION)" \
|
|
CPPFLAGS="$(HOSTCFLAGS) -I$(LIBFDT_srcdir)" OBJDIR=$(obj) \
|
|
SOURCES="$(PYLIBFDT_srcs)" \
|
|
SWIG_OPTS="-I$(LIBFDT_srcdir) -I$(LIBFDT_srcdir)/.." \
|
|
$(PYTHON3) $< --quiet build_ext --inplace
|
|
|
|
rebuild: $(src)/setup.py $(PYLIBFDT_srcs)
|
|
@# Remove the library since otherwise Python doesn't seem to regenerate
|
|
@# the libfdt.py file if it is missing.
|
|
@rm -f $(obj)/_libfdt*.so
|
|
$(call if_changed,pymod)
|
|
@# Rename the file to _libfdt.so so this Makefile doesn't run every time
|
|
@if [ ! -e $(obj)/_libfdt.so ]; then \
|
|
mv $(obj)/_libfdt*.so $(obj)/_libfdt.so; \
|
|
fi
|
|
|
|
$(obj)/_libfdt.so $(obj)/libfdt.py &: rebuild
|
|
|
|
always += _libfdt.so libfdt.py
|
|
|
|
clean-files += libfdt.i _libfdt.so libfdt.py libfdt_wrap.c
|