pylibfdt: Enable installation of Python module

Adjust the setup script to support installation, and call it from the
Makefile if enabled. It will be disabled if we were unable to build the
module (e.g. due to swig being missing), or the NO_PYTHON environment
variable is set.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Simon Glass 2017-03-26 13:06:21 -06:00 committed by David Gibson
parent 8a892fd85d
commit e91c652af2
3 changed files with 22 additions and 1 deletions

View file

@ -195,7 +195,7 @@ install-includes:
$(INSTALL) -d $(DESTDIR)$(INCLUDEDIR)
$(INSTALL) -m 644 $(LIBFDT_include) $(DESTDIR)$(INCLUDEDIR)
install: install-bin install-lib install-includes
install: install-bin install-lib install-includes maybe_install_pylibfdt
$(VERSION_FILE): Makefile FORCE
$(call filechk,version)

7
README
View file

@ -50,6 +50,13 @@ If you add new features, please check code coverage:
# Open 'htmlcov/index.html' in your browser
To install the library use:
make install_pylibfdt SETUP_PREFIX=/path/to/install_dir
If SETUP_PREFIX is not provided, the default prefix is used, typically '/usr'
or '/usr/local'. See Python's distutils documentation for details.
To disable building the python library, even if swig and Python are available,
use:

View file

@ -14,4 +14,18 @@ $(WRAP): $(PYLIBFDT_srcdir)/libfdt.swig
@$(VECHO) SWIG $@
$(SWIG) -python -o $@ $<
install_pylibfdt: $(WRAP) $(PYMODULE)
$(VECHO) INSTALL-PYLIB; \
SOURCES="$(PYLIBFDT_srcs) $(WRAP)" CPPFLAGS="$(CPPFLAGS)" \
OBJDIR="$(PYLIBFDT_objdir)" \
python $(PYLIBFDT_objdir)/setup.py --quiet install \
$(if $(SETUP_PREFIX),--prefix=$(SETUP_PREFIX))
maybe_install_pylibfdt:
if [ -e $(PYMODULE) ]; then \
if [ -z "$(NO_PYTHON)" ]; then \
$(MAKE) install_pylibfdt; \
fi; \
fi
PYLIBFDT_cleanfiles = libfdt_wrap.c libfdt.py libfdt.pyc _libfdt.so