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.gzhttp://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.gz92http://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/rubyiconv.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.bundlePackage/dest/Library/PRIME/lib/rubyにコピーする。
118
119==== sary-ruby
120
121sary-ruby-?.?.?.tar.gzhttp://sary.sourceforge.net/からダウンロードし、
122展開して、以下のようにビルドする。
123
124 % cd sary-ruby-1.2.0
125 % ../build-sary-ruby
126
127これによって、sary.bundlePackage/dest/Library/PRIME/lib/rubyにコピー
128される。
129
130==== ruby-progressbar
131
132ruby-progressbar-0.9.tar.gz133http://namazu.org/~satoru/ruby-progressbar/からダウンロードし、展開し
134て、中に含まれるprogressbar.rbPackage/dest/Library/PRIME/lib/ruby135コピーする。
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.gzhttp://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/FrameworksUIM.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.menuMacUIM/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/MozcMozcConverter.appMozcTool.app332Package/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.app381/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