OpenGL連携を有効にしつつpipからPyCUDA/PyOpenCLをインストールする

PyCUDA / PyOpenCLをソースからインストールする場合には、setup.pyを実行する前にconfigure.pyを実行します。configure.pyが何をしているかというと、以下のようなオプション情報を記述したsiteconf.pyというファイルを生成します。

BOOST_INC_DIR = []
BOOST_LIB_DIR = []
BOOST_COMPILER = 'gcc43'
BOOST_PYTHON_LIBNAME = ['boost_python']
USE_SHIPPED_BOOST = True
CL_TRACE = False
CL_ENABLE_GL = False
CL_ENABLE_DEVICE_FISSION = True
CL_INC_DIR = []
CL_LIB_DIR = []
CL_LIBNAME = []
CXXFLAGS = ['-arch', 'i386', '-arch', 'x86_64', '-isysroot', '/Developer/SDKs/MacOSX10.7.sdk']
LDFLAGS = ['-arch', 'i386', '-arch', 'x86_64', '-isysroot', '/Developer/SDKs/MacOSX10.7.sdk', '-Wl', '-framework', 'OpenCL']

私はよく、PyCUDA / PyOpenCLをインストールする際にはpipを使うことを勧めているのですが、OpenGL連携を有効にしたりCUDA / OpenCLのインストール場所が通常とは異なる場合にはconfigure.pyでそれらを指定する必要があり、pipコマンドを実行するだけではそれらを反映させることが出来ません。今回はその場合の対処方法を紹介します。

ホームディレクトリに.aksetup-defaults.pyというファイルを作成し、上述のsiteconf.pyと同じフォーマットで必要なオプションを記述します。

CL_ENABLE_GL = True

これでpipによるPyCUDA / PyOpenCLのインストールをカスタマイズすることができます。これらはPyCUDA / PyOpenCLのsetup.pyの動作なので、pipだけではなくeasy_installでも同様に動くはずです。