1-*- mode: rd -*- 2 3= MacUIM 4 5== MacUIMビルド環境の構築 6 7かなり複雑です。健闘を祈る! 8 9MacUIM本体だけビルドしたい場合は「/opt/macuimのgettext」と「MenuCracker」 10から実行すればOK。 11 12以下を実行する前に/Library/Frameworks/UIM.framework, /opt/macuimを削除 13しておく。 14 15=== /opt/macuimの準備 16 17gettext, pkgconfig, glib, saryをビルドし、/opt/macuimにインストールする。 18これらはsary-rubyとprimeのビルド用で、ユーザーの環境にインストールする 19必要はない。 20 21 % sudo mkdir /opt/macuim 22 23==== gettext 24 25PRIMEディレクトリにgettex-0.14.5.tar.gzを展開する。 26gettext-0.14.5ディレクトリでパッチを当ててから、build-gettextを実行する。 27 28 % cd PRIME 29 % tar zxvf gettext-0.14.5.tar.gz 30 % cd gettext-0.14.5 31 % patch -p1 < ../gettext-0.14.5-mac.patch 32 % ../build-gettext 33 34make installで/opt/macuimにインストールする。 35 36 % sudo make install 37 38==== pkgconfig 39 40PRIMEディレクトリにpkgconfig-0.15.0.tar.gzを展開し、build-pkgconfigでビルド 41する。 42 43 % tar zxvf pkgconfig-0.15.0.tar.gz 44 % cd pkgconfig-0.15.0 45 % ../build-pkgconfig 46 47make installで/opt/macuimにインストールする。 48 49 % sudo make install 50 51==== glib 52 53PRIMEディレクトリにglib-2.12.0.tar.bz2を展開し、パッチを当ててから 54build-glibでビルドする。 55 56 % tar jxvf glib-2.12.0.tar.bz2 57 % cd glib-2.12.0 58 % patch -p1 < glib-2.12.0-mac.patch 59 % ../build-glib 60 61make installで/opt/macuimにインストールする。 62 63 % sudo make install 64 65==== sary 66 67sary-?.?.?.tar.gzをhttp://sary.sourceforge.net/からダウンロードし、展 68開して、以下のようにビルドする。 69 70 % cd sary-1.2.0 71 % ../build-sary 72 73make installで/opt/macuimにインストールする。 74 75 % sudo make install 76 77=== PRIMEのビルド 78 79==== rubyモジュールのビルド 80 81(Mac OS 10.3以前のみ) 82 83PRIME 0.9以降をRuby 1.6で使用するには、libiconv-rubyが必要である。 84PRIMEをUNIXドメインソケット・モードで実行するためには、コンパイルし直 85したsocketモジュールが必要である。 86 87===== libiconv-ruby 88 89(Mac OS 10.3以前のみ) 90 91libiconv-ruby_0.4.5.orig.tar.gzを 92http://higgs.djpig.de/ubuntu/www/hoary/source/libiconv-ruby 93からダウンロードする。 94 95libiconv-ruby_0.4.5.orig.tar.gzをPRIMEディレクトリに展開し、以下のよう 96にインストールする。 97 98 % cd iconv-0.4.5 99 % ../build-iconv 100 101これによって、Package/dest/Library/PRIME/lib/rubyにiconv.rbがコピーさ 102れる。 103 104===== socket 105 106(Mac OS 10.3以前のみ) 107 108Mac OS XのRuby 1.6.8に含まれるsocketモジュール(socket.bundle)はUNIXド 109メインソケットが無効になっているため、コンパイルし直して使用する。 110ruby-1.6.8のソースを適当な所からダウンロードし、展開してから、以下のよ 111うにビルドする。 112 113 % cd ruby-1.6.8/ext/socket 114 % ruby extconf.rb 115 % make 116 117できたsocket.bundleをPackage/dest/Library/PRIME/lib/rubyにコピーする。 118 119==== sary-ruby 120 121sary-ruby-?.?.?.tar.gzをhttp://sary.sourceforge.net/からダウンロードし、 122展開して、以下のようにビルドする。 123 124 % cd sary-ruby-1.2.0 125 % ../build-sary-ruby 126 127これによって、sary.bundleがPackage/dest/Library/PRIME/lib/rubyにコピー 128される。 129 130==== ruby-progressbar 131 132ruby-progressbar-0.9.tar.gzを 133http://namazu.org/~satoru/ruby-progressbar/からダウンロードし、展開し 134て、中に含まれるprogressbar.rbをPackage/dest/Library/PRIME/lib/rubyに 135コピーする。 136 137 % cd ruby-progressbar-0.9 138 % cp progressbar.rb ../../Package/dest/Library/PRIME/lib/ruby 139 140==== suikyo 141 142suikyo-2.1.0.tar.gzをhttp://prime.sourceforge.jp/src/からダウンロー 143ドし、展開して、以下のようにビルドする。 144 145 % cd suikyo-2.1.0 146 % ../build-suikyo 147 148これによって、suikyoがPackage/dest/Library/PRIME/lib/rubyにインストー 149ルされる。 150 151==== prime 152 153prime-x.x.x.tar.gzを展開して、以下のようにビルドする。 154 155 % cd prime-x.x.x 156 % patch -p1 < ../prime-1.0.0.1-crash.patch 157 % ../build-prime 158 159これによって、primeがPackage/dest/Library/PRIMEにインストールされる。 160 161==== prime-dict 162 163prime-dict-x.x.x.tar.gzを展開して、以下のようにビルドする。 164 165 % cd prime-dict-x.x.x 166 % ../build-prime-dict 167 168これによって、prime-dictがPackage/dest/Library/PRIMEにインストールされ 169る。 170 171==== uimに必要なライブラリの準備 172 173==== インストール 174 175Package/dest/LibraryにあるPRIMEディレクトリを/Libraryにコピーする。 176 177=== anthyのビルド 178 179anthy-xxxxをダウンロードする(xxxxはバージョン番号)。 180 181Anthyディレクトリにanthy-xxxxを展開する。 182 183 MacUIM/ 184 Anthy/ 185 anthy-xxxx/ 186 187Anthy/anthy-xxxxディレクトリで以下を実行する。 188 189 % ../build 190 191Package/dest/Library/Anthyディレクトリが作成される。 192このAnthyディレクトリを/Libraryにコピーする。 193 194=== m17nlibのビルド 195 196==== 準備 197 198m17nlibのビルドにはX11が必要である。Mac OS Xにプリインストールされてい 199ない場合、AppleからX11.appをダウンロードして入れるか、Finkを使ってイン 200ストールする。 201 202/Library/Frameworks/UIM.frameworkをゴミ箱に移動する。 203Package/dest/Library/Frameworks/UIM.frameworkが存在する場合、それもゴ 204ミ箱に移動する。 205 206 % mv /Library/Frameworks/UIM.framework ~/.Trash 207 % mv Package/dest/Library/Frameworks/UIM.framework ~/.Trash 208 209mvの代わりにrmする場合、あらかじめMacUIMでない別の入力プログラム(こと 210えりなど)に変更しておかないと、アプリが異常終了するので注意する。 211 212==== ispell 213 214M17NLibディレクトリにispell-x.x.x.tar.gzを展開し、パッチを当てる。 215 216 % cd ispell-3.2.06 217 % patch -p1 < ../ispell-3.2.06-mac.patch 218 219以下のようにビルドし、インストールする。 220 221 % ../build-ispell 222 223/Library/M17NLibディレクトリとPackage/dest/Library/M17NLibディレクトリの両方 224にインストールされる。 225 226==== m17n-db 227 228M17NLibディレクトリにm17n-db-x.x.x.tar.gzを展開する。 229 230m17n-db-x.x.xディレクトリにglibc-x.x.x.tar.gzを展開する。 231glibcは適当なFTPサイトからダウンロードする。 232 233m17n-db-x.x.xディレクトリで以下を実行する。 234 235 % ../build-db <glibc_version> 236 237例) 238 % ../build-db 2.3.3 239 240/Library/M17NLibディレクトリとPackage/dest/Library/M17NLibディレクトリの両方 241にインストールされる。 242 243==== m17n-lib 244 245M17NLibディレクトリにm17n-lib-x.x.x.tar.gzを展開する。 246 247m17n-libディレクトリでパッチを当ててビルドする。 248 249 % for i in ../*.patch; do patch -p1 < $i; done 250 % ../build-lib 251 252/Library/M17NLibディレクトリとPackage/dest/Library/M17NLibディレクトリの両方 253にインストールされる。 254 255=== pixman 256=== libpng 257=== atk 258=== cairo 259=== pango 260=== gtk+2 261 262=== uimのビルド 263 264FinkなどでperlのXML::Parseモジュールをインストールしておく。 265 266UIMディレクトリにuim-x.x.x.tar.gzを展開する。 267 268 MacUIM/ 269 UIM/ 270 uim-x.x.x/ 271 272MacUIM用のパッチを当てる。 273uim-x.x.xディレクトリで以下を実行する。 274 275 % for i in ../uim*.patch; do patch -p1 < $i; done 276 277 278続いて、以下のようにビルドする。 279 280 % ../fwbuild <version> <build> 281 282<version>のフォーマットは<major>.<minor>.<tiny>とし、uimのバージョン番 283号に従う(例: 0.2.5)。 284ただし、uimのバージョンがtiny以下を含む場合、tinyまでとする。 285例えば、uim-0.2.5.2の場合、0.2.5とする。 286 287<build>はuimのバージョンが上がるごとに1からカウントし直す(例: 1)。 288 289これによって、Package/dest/Library/FrameworksにUIM.frameworkができる。 290これを/Library/Frameworksにコピーする。 291 292=== MenuCracker 293 294Mac OS X 10.3は通常、MenuExtraの使用を許可していない。そのため、ヘルパー 295アプレットを動作させるために、MenuCrackerを使用する必要がある。 296 297以下のURLからMenuCrackerのソースをダウンロードし、ユニバーサルバイナリとしてビルドする。 298http://menucracker.cvs.sourceforge.net/ 299 300 % cvs -d:pserver:anonymous@menucracker.cvs.sourceforge.net:/cvsroot/menucracker login 301 % cvs -z3 -d:pserver:anonymous@menucracker.cvs.sourceforge.net:/cvsroot/menucracker co -P 302 303MenuCracker.menuをMacUIM/Sources/MenuCrackerに置く。 304以下のようなディレクトリ構成になる。 305 306 MacUIM/ 307 Sources/ 308 MenuCracker/ 309 MenuCracker.menu 310 311=== Growl 312 313Growlでメッセージを通知するために使用。 314http://growl.info/files/source/Growl-1.2.2-src.tbzをダウンロードし、パッチを当てGrowl.frameworkを作成。 315 316 % cd Growl-1.2.2-src 317 % patch -p0 < ../growl.diff 318 % ../build-growl 319 320以下のようなディレクトリ構成になる。 321 322 MacUIM/ 323 Sources/ 324 Growl/ 325 Growl.framework 326 327=== Mozc のビルド 328 329Mozcディレクトリで 330 % ./build --clear-patch && ./build --apply-patch && ./build 331すると、Package/dest/Library/MozcにMozcConverter.appとMozcTool.app、 332Package/dest/Library/LaunchAgents/org.mozc.inputmethod.Japanaes.Converter.plistが配置される。また、UIM.framework内にlibuim-mozc.so、mozc*.scmがコピーされる。 333 334MozcTool.appの作成には、Qt4 (Carbon i386) framework が必要である。 335 336== MacUIMのビルド 337 338配布するバージョンをビルドする場合はdeployを実行する。 339これによってMacUIMがPackage_contentsディレクトリに置かれる。 340 341Input Methods/MacUIM.app - MacUIM本体 342PreferencePanes/MacUIM.prefPane - 環境設定 343 344=== リリース用 345 346トップディレクトリのdeployを実行すると、Releaseビルドスタイルでビル 347ドされ、Package/Package_contentsディレクトリにMacUIMができる。 348 349deployで作成したMacUIMはデバッグオプションが無効になっている。 350 351=== デバッグ用 352 353deployコマンドでなく、Xcodeで普通にビルドする。 354buildディレクトリにMacUIMができる。 355 356=== インストール 357 358MacUIM.appを/Library/Input Methodsに、 359MacUIM.prefPaneを/Library/PreferencePanesにコピーする。 360 361== SKK辞書 362 363get_skkdicを実行。 364これによって Package/dest/Library/Dictionaries/SKK ディレクトリに 365SKK-JISYO.[LMS]がダウンロードされる。 366 367インストールする場合はSKKディレクトリを/Library/Dictionariesにコピーする。 368 369== パッケージ作成 370 371上記すべてを実行したら、PackageMakerでPackage/MacUIM.pmdocを開き、パッケージを 372作成する(control + b)。 373このとき、ファイル名はMacUIM-<source_version>-<release_version>.pkgとする。 374 375パッケージファイル(.pkg)から.dmgファイルを作成し、リリースする。 376 377 378== パッケージにせず、ローカルでテストする場合 379 380UIM.frameworkを /Library/Frameworks に、MacUIM.appを 381/Library/Input Methods にコピーし、ログインし直す。 382 383 384== ログインし直すのが面倒な場合 385 386killloginをPATHが通っている場所にインストールし、コマンドラインから 387killloginとすることで、loginwindowがkillされ、自動的に再ログインされる。 388 389Script Menuを使うこともできる。 390Script Menuは /Applications/AppleScript/Install Script Menu.app を実行 391しインストールする。 392killloginを ~/Library/Scripts にコピーすることで、メニューバーからこれ 393を実行することが可能になる。 394