]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
libfdt: Tidy up pylibfdt build rule
authorSimon Glass <sjg@chromium.org>
Wed, 24 Mar 2021 17:40:48 +0000 (06:40 +1300)
committerSimon Glass <sjg@chromium.org>
Fri, 26 Mar 2021 04:03:04 +0000 (17:03 +1300)
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>
scripts/dtc/pylibfdt/Makefile

index 80b6ad2ae71c118d4356006b3b706d8f6d7d8afd..4782dd45c6dc6693d2f6e497dacea46b86e7479d 100644 (file)
@@ -23,12 +23,18 @@ quiet_cmd_pymod = PYMOD   $@
                SWIG_OPTS="-I$(LIBFDT_srcdir) -I$(LIBFDT_srcdir)/.." \
                $(PYTHON3) $< --quiet build_ext --inplace
 
-$(obj)/_libfdt.so: $(src)/setup.py $(PYLIBFDT_srcs) FORCE
+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
+       @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
 
-always += _libfdt.so
+$(obj)/_libfdt.so $(obj)/libfdt.py &: rebuild
+
+always += _libfdt.so libfdt.py
 
 clean-files += libfdt.i _libfdt.so libfdt.py libfdt_wrap.c