PyXPCOMを使ってみよう
posted by jun-g at Sun, 18 Mar 2007 03:02 JST
Lingrでaodag隊長とvoluntasさんと会話中にPyXPCOMの話題になり、最近のMozillaのソースには普通にPyXPCOMのソースが含まれている事を教えてもらったので早速ビルド/インストールしてみる事にした。…とはいえ自前でソース取ってきて一からビルドできる程の知識は持ってないので、ここを参考にしながらportsを改造する事に。FreeBSD万歳!!
って事で以下はwww/mozilla/Makefile.commonのパッチ。
--- Makefile.common.orig Sat Mar 17 01:35:11 2007 +++ Makefile.common Sat Mar 17 03:34:09 2007 @@ -119,7 +119,7 @@ LDFLAGS+= -L${X11BASE}/lib -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH} LIBS+= ${PTHREAD_LIBS} -L${LOCALBASE}/lib -liconv -_USE_GECKO_OPTIONS_ALL= java debug logging optimized_cflags +_USE_GECKO_OPTIONS_ALL= java python debug logging optimized_cflags .if !defined(USE_GECKO_OPTIONS) USE_GECKO_OPTIONS= debug logging optimized_cflags @@ -127,6 +127,7 @@ debug_OPTION= "Build a debugging image" off java_OPTION= "Enable JAVA xpcom" off +python_OPTION= "Enable PyXPCOM" off logging_OPTION= "Enable additional log messages" off optimized_cflags_OPTION= "Enable some additional optimizations" off @@ -214,6 +215,11 @@ JAVA_OS+= native CONFIGURE_ENV+= JAVA_HOME="${JAVA_HOME}" MOZ_OPTIONS+= --enable-javaxpcom +.endif + +.if defined(WITH_PYTHON) +USE_PYTHON= yes +MOZ_EXTENSIONS+=python/xpcom .endif .if defined(WITH_LOGGING)
PyXPCOMを有効にする対象はXULRunnerにしよう、という事で、次はwww/xulrunner/Makefileのパッチ。
--- Makefile.orig Sat Mar 17 01:38:02 2007 +++ Makefile Sat Mar 17 03:35:18 2007 @@ -29,7 +29,7 @@ --enable-system-cairo MOZ_EXTENSIONS= default,cookie,permissions OPTIONS= # Empty, used for generic gecko OPTIONS -USE_GECKO_OPTIONS= java debug logging optimized_cflags +USE_GECKO_OPTIONS= java python debug logging optimized_cflags .include.include "${PORTSDIR}/www/mozilla/Makefile.common"
この2つのパッチを適用したら、www/xulrunnerのオプションに「Python」ってのが出るようになる。
でもって早速make installして試してみた。
/home/jun-g% python Python 2.4.4 (#2, Feb 24 2007, 05:43:34) [GCC 3.4.6 [FreeBSD] 20060305] on freebsd6 Type "help", "copyright", "credits" or "license" for more information. >>> import xpcom >>>
出来た!!という訳で今回はここまで。次はここ見ながらもうちょっと試してみよう。