pylibfdt: Allow setup.py to operate stand-alone

At present we require that setup.py is executed from the Makefile, which
sets up various important things like the list of files to build and the
version number.

However many installation systems expect to be able to change to the
directory containing setup.py and run it. This allows them to support (for
example) building/installing for multiple Python versions, varying
installation paths, particular C flags, etc.

The problem in implementing this is that we don't want to duplicate the
information in the Makefile. A common solution (so I am told) is to parse
the Makefile to obtain the required information.

Update the setup.py script to read a few Makefiles when it does not see
the required information in its environment. This allows installation
using:

   ./pylibfdt/setup.py install

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-04-07 15:51:32 -06:00 committed by David Gibson
parent e20d9658cd
commit 90db6d9989
5 changed files with 112 additions and 16 deletions

14
README
View file

@ -50,12 +50,18 @@ If you add new features, please check code coverage:
# Open 'htmlcov/index.html' in your browser
To install the library use:
To install the library via the normal setup.py method, use:
make install_pylibfdt SETUP_PREFIX=/path/to/install_dir
./pylibfdt/setup.py [--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.
If --prefix is not provided, the default prefix is used, typically '/usr'
or '/usr/local'. See Python's distutils documentation for details. You can
also install via the Makefile if you like, but the above is more common.
To install both libfdt and pylibfdt you can use:
make install [SETUP_PREFIX=/path/to/install_dir] \
[PREFIX=/path/to/install_dir]
To disable building the python library, even if swig and Python are available,
use: