diff --git a/setup.py b/setup.py
index bcce3521a0be580312a53a55336007f8aea4f798..9098a3fed908b6cc47142a7db6ca2a5d8d15a84a 100644
--- a/setup.py
+++ b/setup.py
@@ -56,6 +56,18 @@ def main():
 
     import sys
 
+    if 'darwin' in sys.platform:
+        # Build for i386 & x86_64 since OpenCL doesn't run on PPC
+        if "-arch" not in conf["CXXFLAGS"]:
+            conf["CXXFLAGS"].extend(['-arch', 'i386'])
+            conf["CXXFLAGS"].extend(['-arch', 'x86_64'])
+        if "-arch" not in conf["LDFLAGS"]:
+            conf["LDFLAGS"].extend(['-arch', 'i386'])
+            conf["LDFLAGS"].extend(['-arch', 'x86_64'])
+        # Compile against 10.6 SDK, first to support OpenCL
+        conf["CXXFLAGS"].extend(['-isysroot', '/Developer/SDKs/MacOSX10.6.sdk'])
+        conf["LDFLAGS"].extend(['-isysroot', '/Developer/SDKs/MacOSX10.6.sdk'])
+
     ext_kwargs = dict()
 
     ver_dic = {}