[pypy-commit] cffi default: setup.py: use pkg-config for libffi include dir
scottt
noreply at buildbot.pypy.org
Mon Jun 18 20:53:05 CEST 2012
Author: Scott Tsai <scottt.tw at gmail.com>
Branch:
Changeset: r466:198f114397db
Date: 2012-06-19 01:45 +0800
http://bitbucket.org/cffi/cffi/changeset/198f114397db/
Log: setup.py: use pkg-config for libffi include dir
Some Linux distros don't install ffi.h in the default header search
path. This patch tries to use pkg-config(1) to find the correct
include dir and does nothing if either pkg-config or libffi.pc isn't
available. Distros that need this include Fedora, Red Hat and
apparently Archlinux. Should fix cffi bitbucket issue#2.
Tested on Fedora 17, Ubuntu 10.04 and Ubuntu 12.04.
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,6 @@
import sys, os
+import subprocess
+import errno
sources = ['c/_ffi_backend.c']
@@ -21,6 +23,18 @@
sources.extend(os.path.join(COMPILE_LIBFFI, filename)
for filename in os.listdir(COMPILE_LIBFFI)
if filename.lower().endswith('.c'))
+else:
+ try:
+ p = subprocess.Popen(['pkg-config', '--cflags-only-I', 'libffi'],
+ stdout=subprocess.PIPE, stderr=open('/dev/null', 'w'))
+ except OSError, e:
+ if e.errno != errno.ENOENT:
+ raise
+ else:
+ t = p.stdout.read().strip()
+ if p.wait() == 0 and t:
+ # '-I/usr/...' -> '/usr/...'
+ include_dirs.append(t[2:])
if __name__ == '__main__':
More information about the pypy-commit
mailing list