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.
6LIBFDT_srcdir = $(abspath $(srctree)/$(src)/../libfdt)
7
8include $(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.
13PYLIBFDT_srcs = $(addprefix $(LIBFDT_srcdir)/,$(LIBFDT_SRCS)) \
14		$(obj)/libfdt.i
15
16quiet_cmd_pymod = PYMOD   $@
17      cmd_pymod = unset CROSS_COMPILE; unset CFLAGS; \
18		CC="$(HOSTCC) -I/opengrok/src/dports/sysutils/u-boot-clearfog/u-boot-2021.07/scripts/dtc/libfdt" LDSHARED="$(HOSTCC) -I/opengrok/src/dports/sysutils/u-boot-clearfog/u-boot-2021.07/scripts/dtc/libfdt -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		$(PYTHON3) $<  build_ext --inplace
25
26rebuild: $(src)/setup.py $(PYLIBFDT_srcs)
27	@# Remove the library since otherwise Python doesn't seem to regenerate
28	@# the libfdt.py file if it is missing.
29	@rm -f $(obj)/_libfdt*.so
30	$(call if_changed,pymod)
31	@# Rename the file to _libfdt.so so this Makefile doesn't run every time
32	@if [ ! -e $(obj)/_libfdt.so ]; then \
33		mv $(obj)/_libfdt*.so $(obj)/_libfdt.so; \
34	fi
35
36$(obj)/_libfdt.so $(obj)/libfdt.py &: rebuild
37	@:
38
39always += _libfdt.so libfdt.py
40
41clean-files += libfdt.i _libfdt.so libfdt.py libfdt_wrap.c
42