From 3cc3548c15b6d8f4870b656f62d84e374c8eaf97 Mon Sep 17 00:00:00 2001 From: "R. Andrew Ohana" Date: Wed, 11 Dec 2013 00:56:40 -0800 Subject: [PATCH 1/4] setup.py: remove redundant /usr/local path line --- setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 5f3d22e56..c0f028d25 100644 --- a/setup.py +++ b/setup.py @@ -187,7 +187,7 @@ class pil_build_ext(build_ext): _add_directory(include_dirs, os.path.join(prefix, 'include')) except: pass # homebrew not installed - + elif sys.platform.startswith("linux"): for platform_ in (plat.processor(), plat.architecture()[0]): @@ -215,7 +215,6 @@ class pil_build_ext(build_ext): _add_directory(library_dirs, "/usr/pkg/lib") _add_directory(include_dirs, "/usr/pkg/include") - _add_directory(library_dirs, "/usr/local/lib") # FIXME: check /opt/stuff directories here? # respect CFLAGS/LDFLAGS From 3d89ce20781e61a0461fda35e15a4cda04799f9f Mon Sep 17 00:00:00 2001 From: "R. Andrew Ohana" Date: Wed, 11 Dec 2013 00:58:22 -0800 Subject: [PATCH 2/4] setup.py: CPATH is an alternative for C_INCLUDE_PATH --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c0f028d25..4d3dfa270 100644 --- a/setup.py +++ b/setup.py @@ -226,7 +226,7 @@ class pil_build_ext(build_ext): _add_directory(library_dirs, match.group(1)) # include, rpath, if set as environment variables: - for k in ('C_INCLUDE_PATH', 'INCLUDE'): + for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE'): if k in os.environ: for d in os.environ[k].split(os.path.pathsep): _add_directory(include_dirs, d) From 3f3a7b1b06ed57b705ee8836fb4ad1d882648db8 Mon Sep 17 00:00:00 2001 From: "R. Andrew Ohana" Date: Wed, 11 Dec 2013 01:04:24 -0800 Subject: [PATCH 3/4] setup.py: user specified paths and prefix should come before platform --- setup.py | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/setup.py b/setup.py index 4d3dfa270..ac7910a9a 100644 --- a/setup.py +++ b/setup.py @@ -156,6 +156,30 @@ class pil_build_ext(build_ext): _add_directory(library_dirs, lib_root) _add_directory(include_dirs, include_root) + # respect CFLAGS/LDFLAGS + for k in ('CFLAGS', 'LDFLAGS'): + if k in os.environ: + for match in re.finditer(r'-I([^\s]+)', os.environ[k]): + _add_directory(include_dirs, match.group(1)) + for match in re.finditer(r'-L([^\s]+)', os.environ[k]): + _add_directory(library_dirs, match.group(1)) + + # include, rpath, if set as environment variables: + for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE'): + if k in os.environ: + for d in os.environ[k].split(os.path.pathsep): + _add_directory(include_dirs, d) + + for k in ('LD_RUN_PATH', 'LIBRARY_PATH', 'LIB'): + if k in os.environ: + for d in os.environ[k].split(os.path.pathsep): + _add_directory(library_dirs, d) + + prefix = sysconfig.get_config_var("prefix") + if prefix: + _add_directory(library_dirs, os.path.join(prefix, "lib")) + _add_directory(include_dirs, os.path.join(prefix, "include")) + # # add platform directories @@ -217,30 +241,6 @@ class pil_build_ext(build_ext): # FIXME: check /opt/stuff directories here? - # respect CFLAGS/LDFLAGS - for k in ('CFLAGS', 'LDFLAGS'): - if k in os.environ: - for match in re.finditer(r'-I([^\s]+)', os.environ[k]): - _add_directory(include_dirs, match.group(1)) - for match in re.finditer(r'-L([^\s]+)', os.environ[k]): - _add_directory(library_dirs, match.group(1)) - - # include, rpath, if set as environment variables: - for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE'): - if k in os.environ: - for d in os.environ[k].split(os.path.pathsep): - _add_directory(include_dirs, d) - - for k in ('LD_RUN_PATH', 'LIBRARY_PATH', 'LIB'): - if k in os.environ: - for d in os.environ[k].split(os.path.pathsep): - _add_directory(library_dirs, d) - - prefix = sysconfig.get_config_var("prefix") - if prefix: - _add_directory(library_dirs, os.path.join(prefix, "lib")) - _add_directory(include_dirs, os.path.join(prefix, "include")) - # # locate tkinter libraries From d999a8b170ed6c26ffc3786ea7286fdf5591ae5b Mon Sep 17 00:00:00 2001 From: "R. Andrew Ohana" Date: Wed, 11 Dec 2013 01:13:06 -0800 Subject: [PATCH 4/4] setup.py: only use real paths --- setup.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ac7910a9a..814f85375 100644 --- a/setup.py +++ b/setup.py @@ -37,7 +37,10 @@ _LIB_IMAGING = ( def _add_directory(path, dir, where=None): - if dir and os.path.isdir(dir) and dir not in path: + if dir is None: + return + dir = os.path.realpath(dir) + if os.path.isdir(dir) and dir not in path: if where is None: path.append(dir) else: