cffi / setup.py

Diff from to
 import sys, os
+import subprocess
+import errno
 
 
 sources = ['c/_ffi_backend.c']
     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__':
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.