8 2.4 'casl2' 'comet2' 'dumpword'のビルド
20 YACASL2は、LinuxやMac OS Xなど、UNIX系のOS上で動作します。現在動作を確
21 認しているのは、Ubuntu LinuxとVine Linux、Mac OS Xです。
23 インストール時に、'tar' 'gcc' 'make'が必要です。Linuxでは多くの場合、標
24 準でインストールされています。Mac OS Xの場合、Xcodeの「Command Line
30 2.1 YACASL2ファイルのダウンロード
31 =================================
33 YACASL2のサイト (http://www.j8takagi.net/yacasl2/)から、'tar.gz'または
34 'tar.xz'ファイルと、対応する検証用ファイルをダウンロードします。githubの
35 ダウンロードページ (http://github.com/j8takagi/YACASL2/downloads/)から
36 'tar.gz'などのファイルをダウンロードすることもできます。
39 =========================
41 ダウンロードが完了したら、圧縮ファイルが改竄されていないか検証します。
42 検証にはGnuPG分離署名か、MD5ハッシュ値を使います。
45 ---------------------------
47 GnuPGの'gpg'で圧縮ファイルを検証します。この検証を行うには、GnuPGがイン
48 ストールされ、自分の秘密鍵と公開鍵のペアが作成されている必要があります。
50 $ gpg --verify yacasl2.tar.xz.asc
51 gpg: Signature made Sat Oct 27 02:17:16 2012 JST using RSA key ID 25B62DD1
52 gpg: Can't check signature: public key not found
53 $ gpg --recv-keys 25B62DD1
54 gpg: requesting key 25B62DD1 from hkp server keys.gnupg.net
55 gpg: key 25B62DD1: public key "j8takagi <j8takagi@nifty.com>" imported
56 gpg: Total number processed: 1
57 gpg: imported: 1 (RSA: 1)
59 $ gpg --lsign-key 25B62DD1
61 pub 2048R/25B62DD1 created: 2012-09-29 expires: never usage: SC
62 trust: unknown validity: full
63 sub 2048R/92E25C29 created: 2012-09-29 expires: never usage: E
64 [ full ] (1). j8takagi <j8takagi@nifty.com>
67 pub 2048R/25B62DD1 created: 2012-09-29 expires: never usage: SC
68 trust: unknown validity: full
69 Primary key fingerprint: ...
73 Are you sure that you want to sign this key with your
76 The signature will be marked as non-exportable.
80 You need a passphrase to unlock the secret key for
82 2048-bit RSA key, ID ........, created 20..-..-..
84 <input password> password
86 $ gpg --verify yacasl2.tar.xz.asc
87 gpg: Signature made Sat Oct 27 02:17:16 2012 JST using RSA key ID 25B62DD1
88 gpg: checking the trustdb
89 gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
90 gpg: depth: 0 valid: 1 signed: 4 trust: 0-, 0q, 0n, 0m, 0f, 1u
91 gpg: depth: 1 valid: 4 signed: 0 trust: 4-, 0q, 0n, 0m, 0f, 0u
92 gpg: Good signature from "j8takagi <j8takagi@nifty.com>"
95 ---------------------------
97 'openssl'と'diff'で圧縮ファイルを検証します。
99 $ openssl md5 yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum -
100 Files yacasl2.tar.gz.md5sum and - are identical
103 =========================
105 YACASL2ファイルをダウンロードしたら、'tar'コマンドで展開します。
107 $ tar xvzf yacasl2.tar.gz
109 2.4 'casl2' 'comet2' 'dumpword'のビルド
110 =======================================
112 展開したら、'make'コマンドで'casl2' 'comet2' 'dumpword'をビルドします。
117 make[1]: Entering directory ‘/home/kazubito/yacasl2/src’
118 gcc -c -g -Wall -I ../include casl2.c
119 gcc -c -g -Wall -I ../include word.c
120 gcc -c -g -Wall -I ../include hash.c
121 gcc -c -g -Wall -I ../include cerr.c
122 gcc -c -g -Wall -I ../include struct.c
123 gcc -c -g -Wall -I ../include cmd.c
124 gcc -c -g -Wall -I ../include assemble.c
125 gcc -c -g -Wall -I ../include token.c
126 gcc -c -g -Wall -I ../include label.c
127 gcc -c -g -Wall -I ../include macro.c
128 gcc -c -g -Wall -I ../include exec.c
129 gcc -c -g -Wall -I ../include dump.c
130 gcc -g -Wall -I ../include -o ../casl2 casl2.o word.o hash.o cerr.o st
131 ruct.o cmd.o assemble.o token.o label.o macro.o exec.o dump.o
132 gcc -c -g -Wall -I ../include comet2.c
133 gcc -g -Wall -I ../include -o ../comet2 comet2.o word.o hash.o cerr.o
134 struct.o cmd.o exec.o dump.o
135 gcc -c -g -Wall -I ../include dumpword.c
136 gcc -g -Wall -I ../include -o ../dumpword dumpword.o word.o cerr.o
137 make[1]: Leaving directory ‘/home/kazubito/yacasl2/src’
140 =======================
142 ビルドしたら、次のコマンドが正常に実行できるかを確認します。 正常に実行
143 された場合は、「Hello, World!」と表示されます。
145 $ ./casl2 as/hello.casl
151 'make check'コマンドを実行すると、正常にビルドできているかどうかを詳細
152 にテストできます。 テストには、しばらく時間がかかります。
155 195 / 195 tests passed. Details in /home/username/yacasl2/test/integra
157 All tests are succeded.
158 149 / 149 tests passed. Details in /home/username/yacasl2/test/integra
160 All tests are succeded.
161 4 / 4 tests passed. Details in /home/username/yacasl2/test/integration
163 All tests are succeded.
168 ビルドが成功したら、'make install'コマンドで必要なファイルをインストー
169 ルできます。 初期設定では、ホームディレクトリー以下にYACASL2のファイルが
174 コマンド実行時にオプションを指定することで、インストール先のディレクト
175 リーを変更できます。 例えば、'/usr/local'以下にファイルをインストールす
176 るには、 次のようにコマンドを実行します。
178 $ sudo make install prefix=/usr/local
183 ---------------------------------------------------------------------------
184 PREFIX インストール時のルートファイル '~'
185 BINDIR 実行ファイルのインストール先 '$prefix/bin'
186 INFODIR infoファイルのインストール先 '$prefix/info'
187 CASL2LIBDIR CASL II ライブラリファイルのインス '$prefix/lib/yacasl2'
193 環境変数'PATH'や'CASL2LIB'を設定することで、YACASL2が使いやすくなります
194 。環境変数は、使っているシェルを確認してから設定します。
199 環境変数の設定方法は使っているシェルによって異なります。シェルは、次の
205 現在もっとも多く使われているシェルは、Bashでしょう。以下、Bashでの設定
211 'PATH'にYACASL2の実行ファイルのインストール先を追加すると、ディレクトリ
212 ーの指定を省略して'casl2' 'comet2' 'dumpword'を実行できます。例えば、初
213 期設定のまま実行ファイルを'~/bin'にインストールしたときは、次のコマンド
216 $ PATH=$PATH:~/bin && export PATH
218 環境変数の設定は、シェルの初期設定ファイルに追加することでログインした
219 あと自動的に反映されるようになります。Bashでは'~/.bashrc'が初期設定ファ
222 $ echo ’PATH=$PATH:~/bin && export PATH’ >>~/.bashrc
225 ----------------------
227 'INFOPATH'にYACASL2のInfoファイルをインストールしたディレクトリーを追加
228 すると、ディレクトリーの指定を省略して'casl2' 'comet2' 'dumpword'を実行
229 できます。例えば、初期設定のままInfoファイルを'~/share/info'にインストー
230 ルしたときは、次のコマンドで設定できます。
232 $ INFOPATH=$INFOPATH:~/share && export INFOPATH
234 '~/.bashrc'には次のコマンドで追加できます。
236 $ echo 'INFOPATH=$INFOPATH:~/share/info && export INFOPATH' >>~/.bashrc
239 ----------------------
241 環境変数'CASL2LIB'を設定しておけば、CASL IIプログラム作成時に共通ライブ
242 ラリを呼び出す手間が小さくなります。例えば、CASL2LIBを
243 '~/yacasl2/casl2lib'にインストールしたときは、次のコマンドで設定できます
246 $ CASL2LIB=~/yacasl2/casl2lib && export CASL2LIB
248 '~/.bashrc'には次のコマンドで追加できます。
250 $ echo 'CASL2LIB=~/yacasl2/casl2lib && export CASL2LIB' >>~/.bashrc