diff options
Diffstat (limited to 'roms/u-boot/scripts/dtc/pylibfdt/Makefile')
-rw-r--r-- | roms/u-boot/scripts/dtc/pylibfdt/Makefile | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/roms/u-boot/scripts/dtc/pylibfdt/Makefile b/roms/u-boot/scripts/dtc/pylibfdt/Makefile new file mode 100644 index 000000000..493995e30 --- /dev/null +++ b/roms/u-boot/scripts/dtc/pylibfdt/Makefile @@ -0,0 +1,41 @@ +# 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 |