1 # Unfortunately setup.py below cannot handle srctree being ".." which it often 2 # is. It fails with an error like: 3 # Fatal error: can't create build/temp.linux-x86_64-2.7/../lib/libfdt/fdt.o: 4 # No such file or directory 5 # To fix this, use an absolute path. 6 LIBFDT_srcdir = $(abspath $(srctree)/$(src)/../libfdt) 7 8 include $(LIBFDT_srcdir)/Makefile.libfdt 9 10 # Unfortunately setup.py (or actually the Python distutil implementation) puts 11 # files into the same directory as the .i file. We cannot touch the source 12 # directory, so we "ship" .i file into the objtree. 13 PYLIBFDT_srcs = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_SRCS)) \ 14 $(obj)/libfdt.i 15 16 quiet_cmd_pymod = PYMOD $@ 17 cmd_pymod = unset CROSS_COMPILE; unset CFLAGS; \ 18 CC="$(HOSTCC)" LDSHARED="$(HOSTCC) -shared " \ 19 LDFLAGS="$(HOSTLDFLAGS)" \ 20 VERSION="u-boot-$(UBOOTVERSION)" \ 21 CPPFLAGS="$(HOSTCFLAGS) -I$(LIBFDT_srcdir)" OBJDIR=$(obj) \ 22 SOURCES="$(PYLIBFDT_srcs)" \ 23 SWIG_OPTS="-I$(LIBFDT_srcdir) -I$(LIBFDT_srcdir)/.." \ 24 $(PYTHON) $< --quiet build_ext --inplace 25 26 $(obj)/_libfdt.so: $(src)/setup.py $(PYLIBFDT_srcs) FORCE 27 $(call if_changed,pymod) 28 29 always += _libfdt.so 30 31 clean-files += libfdt.i _libfdt.so libfdt.py libfdt_wrap.c 32