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