Browse Source

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 8 years ago committed by David Gibson
parent
commit
89a5062ab2
  1. 3
      pylibfdt/Makefile.pylibfdt
  2. 16
      pylibfdt/setup.py

3
pylibfdt/Makefile.pylibfdt

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


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


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

16
pylibfdt/setup.py

@ -2,6 +2,9 @@


""" """
setup.py file for SWIG libfdt 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 from distutils.core import setup, Extension
@ -9,22 +12,15 @@ import os
import sys import sys


progname = sys.argv[0] progname = sys.argv[0]
cflags = sys.argv[1] files = os.environ['SOURCES'].split()
files = sys.argv[2:] cflags = os.environ['CPPFLAGS'].split()

if cflags:
cflags = [flag for flag in cflags.split(' ') if flag]
else:
cflags = None


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


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

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

Loading…
Cancel
Save