mirror of
https://github.com/dgibson/dtc.git
synced 2026-04-11 16:37:42 -04:00
meson: port python bindings to build natively via meson and meson-python
We get full build parallelism and fewer confusing ancient distutils paths. The python wheels build fully standalone, including linking libfdt as a static library. For convenience, when running pip install a meson option is passed that prevents building tools or installing headers/pkgconfig files. meson-python would otherwise include them in the wheel itself, in case they are needed, but this is essentially a bit useless so don't bother. The old setuptools-based build is now redundant and goes away. Signed-off-by: Eli Schwartz <eschwartz@gentoo.org> Message-ID: <20250430152601.43554-3-eschwartz@gentoo.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
7ebfcac852
commit
ecb21febfd
9 changed files with 73 additions and 213 deletions
49
Makefile
49
Makefile
|
|
@ -31,7 +31,6 @@ BISON = bison
|
|||
LEX = flex
|
||||
SWIG = swig
|
||||
PKG_CONFIG ?= pkg-config
|
||||
PYTHON ?= python3
|
||||
|
||||
INSTALL = install
|
||||
INSTALL_PROGRAM = $(INSTALL)
|
||||
|
|
@ -47,8 +46,6 @@ INCLUDEDIR = $(PREFIX)/include
|
|||
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
|
||||
sed -e 's/\(cygwin\|msys\).*/\1/')
|
||||
|
||||
NO_PYTHON ?= 0
|
||||
|
||||
NO_VALGRIND := $(shell $(PKG_CONFIG) --exists valgrind; echo $$?)
|
||||
ifeq ($(NO_VALGRIND),1)
|
||||
CPPFLAGS += -DNO_VALGRIND
|
||||
|
|
@ -158,29 +155,6 @@ SCRIPTS = dtdiff
|
|||
|
||||
all: $(BIN) libfdt
|
||||
|
||||
# We need both Python and swig to build/install pylibfdt.
|
||||
# This builds the given make ${target} if those deps are found.
|
||||
check_python_deps = \
|
||||
if $(PKG_CONFIG) --cflags $(PYTHON) >/dev/null 2>&1; then \
|
||||
if which swig >/dev/null 2>&1; then \
|
||||
can_build=yes; \
|
||||
fi; \
|
||||
fi; \
|
||||
if [ "$${can_build}" = "yes" ]; then \
|
||||
$(MAKE) $${target}; \
|
||||
else \
|
||||
echo "\#\# Skipping pylibfdt (install python dev and swig to build)"; \
|
||||
fi ;
|
||||
|
||||
.PHONY: maybe_pylibfdt
|
||||
maybe_pylibfdt: FORCE
|
||||
target=pylibfdt; $(check_python_deps)
|
||||
|
||||
ifeq ($(NO_PYTHON),0)
|
||||
all: maybe_pylibfdt
|
||||
endif
|
||||
|
||||
|
||||
ifneq ($(DEPTARGETS),)
|
||||
ifneq ($(MAKECMDGOALS),libfdt)
|
||||
-include $(DTC_OBJS:%.o=%.d)
|
||||
|
|
@ -254,14 +228,6 @@ install-includes:
|
|||
|
||||
install: install-bin install-lib install-includes
|
||||
|
||||
.PHONY: maybe_install_pylibfdt
|
||||
maybe_install_pylibfdt: FORCE
|
||||
target=install_pylibfdt; $(check_python_deps)
|
||||
|
||||
ifeq ($(NO_PYTHON),0)
|
||||
install: maybe_install_pylibfdt
|
||||
endif
|
||||
|
||||
$(VERSION_FILE): Makefile FORCE
|
||||
$(call filechk,version)
|
||||
|
||||
|
|
@ -287,16 +253,6 @@ dist:
|
|||
gzip -9 > ../dtc-$(dtc_version).tar.gz
|
||||
|
||||
|
||||
#
|
||||
# Rules for pylibfdt
|
||||
#
|
||||
PYLIBFDT_dir = pylibfdt
|
||||
|
||||
include $(PYLIBFDT_dir)/Makefile.pylibfdt
|
||||
|
||||
.PHONY: pylibfdt
|
||||
pylibfdt: $(PYLIBFDT_dir)/_libfdt.so
|
||||
|
||||
#
|
||||
# Release signing and uploading
|
||||
# This is for maintainer convenience, don't try this at home.
|
||||
|
|
@ -330,9 +286,6 @@ TESTS_BIN += fdtput
|
|||
TESTS_BIN += fdtget
|
||||
TESTS_BIN += fdtdump
|
||||
TESTS_BIN += fdtoverlay
|
||||
ifeq ($(NO_PYTHON),0)
|
||||
TESTS_PYLIBFDT += maybe_pylibfdt
|
||||
endif
|
||||
|
||||
ifneq ($(MAKECMDGOALS),libfdt)
|
||||
include tests/Makefile.tests
|
||||
|
|
@ -344,7 +297,7 @@ endif
|
|||
STD_CLEANFILES = *~ *.o *.$(SHAREDLIB_EXT) *.d *.a *.i *.s core a.out vgcore.* \
|
||||
*.tab.[ch] *.lex.c *.output
|
||||
|
||||
clean: libfdt_clean pylibfdt_clean tests_clean
|
||||
clean: libfdt_clean tests_clean
|
||||
@$(VECHO) CLEAN
|
||||
rm -f $(STD_CLEANFILES)
|
||||
rm -f $(VERSION_FILE)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue