pylibfdt: Use environment to pass C flags and files

At present setup.py adjusts its command line when running, so that the
C flags and file list can be passed as arguments. Pass them in environment
variables instead, so we can avoid this messiness. It also allows us to
support the 'install' command.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
Simon Glass 2017-03-26 13:06:19 -06:00 committed by David Gibson
parent 4e0e0d0497
commit 89a5062ab2
2 changed files with 8 additions and 11 deletions

View File

@ -7,7 +7,8 @@ PYMODULE = $(PYLIBFDT_objdir)/_libfdt.so

$(PYMODULE): $(PYLIBFDT_srcs) $(WRAP)
@$(VECHO) PYMOD $@
python $(PYLIBFDT_objdir)/setup.py "$(CPPFLAGS)" $^
SOURCES="$^" CPPFLAGS="$(CPPFLAGS)" \
python $(PYLIBFDT_objdir)/setup.py --quiet build_ext --inplace
mv _libfdt.so $(PYMODULE)

$(WRAP): $(PYLIBFDT_srcdir)/libfdt.swig

View File

@ -2,6 +2,9 @@

"""
setup.py file for SWIG libfdt

Files to be built into the extension are provided in SOURCES
C flags to use are provided in CPPFLAGS
"""

from distutils.core import setup, Extension
@ -9,22 +12,15 @@ import os
import sys

progname = sys.argv[0]
cflags = sys.argv[1]
files = sys.argv[2:]

if cflags:
cflags = [flag for flag in cflags.split(' ') if flag]
else:
cflags = None
files = os.environ['SOURCES'].split()
cflags = os.environ['CPPFLAGS'].split()

libfdt_module = Extension(
'_libfdt',
sources = files,
extra_compile_args = cflags
extra_compile_args = cflags
)

sys.argv = [progname, '--quiet', 'build_ext', '--inplace']

setup (name = 'libfdt',
version = '0.1',
author = "Simon Glass <sjg@chromium.org>",