mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-17 07:28:51 +09:00
![Simon Glass](/assets/img/avatar_default.png)
If the pylibfdt shared-object file is detected, then Python assumes that the libfdt.py file exists also. Sometimes when an incremental build aborts, the shared-object file is built but the libfdt.py is not. The only way out at this point is to use 'make mkproper', or similar. Fix this by removing the .so file before it is built. This seems to make Python rebuild everything. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
35 lines
1.3 KiB
Makefile
35 lines
1.3 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
|
|
|
|
$(obj)/_libfdt.so: $(src)/setup.py $(PYLIBFDT_srcs) FORCE
|
|
@# 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)
|
|
|
|
always += _libfdt.so
|
|
|
|
clean-files += libfdt.i _libfdt.so libfdt.py libfdt_wrap.c
|