2 ******************************
14 1.4 `casl2' `comet2' `dumpword'のビルド
29 Xなど、UNIX系のOS上で動作します。現在動作を確認しているのは、Ubuntu
30 LinuxとVine Linux、Mac OS Xです。
33 `make'が必要です。Linuxでは多くの場合、標準でインストールされています。Mac
34 OS Xの場合、Xcodeの「Command Line Tools」に含まれます。
36 1.1 YACASL2ファイルのダウンロード
37 ============================================
40 (http://www.j8takagi.net/yacasl2/)から、`tar.gz'または`tar.xz'ファイルと、対応する検証用ファイルをダウンロードします。githubのダウンロードページ
41 (http://github.com/j8takagi/YACASL2/downloads/)から`tar.gz'などのファイルをダウンロードすることもできます。
44 ================================
46 ダウンロードが完了したら、圧縮ファイルが改竄されていないか検証します。検証にはGnuPG分離署名か、MD5ハッシュ値を使います。
49 -----------------------------------
51 GnuPGの`gpg'で圧縮ファイルを検証します。この検証を行うには、GnuPGがインストールされ、自分の秘密鍵と公開鍵のペアが作成されている必要があります。
53 $ gpg --verify yacasl2.tar.xz.asc
54 gpg: Signature made Sat Oct 27 02:17:16 2012 JST using RSA key ID 25B62DD1
55 gpg: Can't check signature: public key not found
56 $ gpg --recv-keys 25B62DD1
57 gpg: requesting key 25B62DD1 from hkp server keys.gnupg.net
58 gpg: key 25B62DD1: public key "j8takagi <j8takagi@nifty.com>" imported
59 gpg: Total number processed: 1
60 gpg: imported: 1 (RSA: 1)
62 $ gpg --lsign-key 25B62DD1
64 pub 2048R/25B62DD1 created: 2012-09-29 expires: never usage: SC
65 trust: unknown validity: full
66 sub 2048R/92E25C29 created: 2012-09-29 expires: never usage: E
67 [ full ] (1). j8takagi <j8takagi@nifty.com>
70 pub 2048R/25B62DD1 created: 2012-09-29 expires: never usage: SC
71 trust: unknown validity: full
72 Primary key fingerprint: ...
76 Are you sure that you want to sign this key with your
79 The signature will be marked as non-exportable.
83 You need a passphrase to unlock the secret key for
85 2048-bit RSA key, ID ........, created 20..-..-..
87 <input password> password
89 $ gpg --verify yacasl2.tar.xz.asc
90 gpg: Signature made Sat Oct 27 02:17:16 2012 JST using RSA key ID 25B62DD1
91 gpg: checking the trustdb
92 gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
93 gpg: depth: 0 valid: 1 signed: 4 trust: 0-, 0q, 0n, 0m, 0f, 1u
94 gpg: depth: 1 valid: 4 signed: 0 trust: 4-, 0q, 0n, 0m, 0f, 0u
95 gpg: Good signature from "j8takagi <j8takagi@nifty.com>"
98 ------------------------------------
100 `openssl'と`diff'で圧縮ファイルを検証します。
102 $ openssl md5 yacasl2.tar.gz | diff -s yacasl2.tar.gz.md5sum -
103 Files yacasl2.tar.gz.md5sum and - are identical
106 ================================
108 YACASL2ファイルをダウンロードしたら、`tar'コマンドで展開します。
110 $ tar xvzf yacasl2.tar.gz
112 1.4 `casl2' `comet2' `dumpword'のビルド
113 ===========================================
115 展開したら、`make'コマンドで`casl2' `comet2' `dumpword'をビルドします。
120 make[1]: Entering directory ‘/home/kazubito/yacasl2/src’
121 gcc -c -g -Wall -I ../include casl2.c
122 gcc -c -g -Wall -I ../include word.c
123 gcc -c -g -Wall -I ../include hash.c
124 gcc -c -g -Wall -I ../include cerr.c
125 gcc -c -g -Wall -I ../include struct.c
126 gcc -c -g -Wall -I ../include cmd.c
127 gcc -c -g -Wall -I ../include assemble.c
128 gcc -c -g -Wall -I ../include token.c
129 gcc -c -g -Wall -I ../include label.c
130 gcc -c -g -Wall -I ../include macro.c
131 gcc -c -g -Wall -I ../include exec.c
132 gcc -c -g -Wall -I ../include dump.c
133 gcc -g -Wall -I ../include -o ../casl2 casl2.o word.o hash.o cerr.o st
134 ruct.o cmd.o assemble.o token.o label.o macro.o exec.o dump.o
135 gcc -c -g -Wall -I ../include comet2.c
136 gcc -g -Wall -I ../include -o ../comet2 comet2.o word.o hash.o cerr.o
137 struct.o cmd.o exec.o dump.o
138 gcc -c -g -Wall -I ../include dumpword.c
139 gcc -g -Wall -I ../include -o ../dumpword dumpword.o word.o cerr.o
140 make[1]: Leaving directory ‘/home/kazubito/yacasl2/src’
143 =============================
145 ビルドしたら、次のコマンドが正常に実行できるかを確認します。
146 正常に実行された場合は、「Hello, World!」と表示されます。
148 $ ./casl2 as/hello.casl
152 ======================
155 check'コマンドを実行すると、正常にビルドできているかどうかを詳細にテストできます。
159 195 / 195 tests passed. Details in /home/username/yacasl2/test/integra
161 All tests are succeded.
162 149 / 149 tests passed. Details in /home/username/yacasl2/test/integra
164 All tests are succeded.
165 4 / 4 tests passed. Details in /home/username/yacasl2/test/integration
167 All tests are succeded.
170 ======================
173 install'コマンドで必要なファイルをインストールできます。
174 初期設定では、ホームディレクトリー以下にYACASL2のファイルがインストールされます。
178 コマンド実行時にオプションを指定することで、インストール先のディレクトリーを変更できます。
179 例えば、`/usr/local'以下にファイルをインストールするには、
182 $ sudo make install prefix=/usr/local
187 ---------------------------------------------------------------------------
188 PREFIX インストール時のルートファイル `~'
189 BINDIR 実行ファイルのインストール先 `$prefix/bin'
190 INFODIR infoファイルのインストール先 `$prefix/info'
191 CASL2LIBDIR CASL II `$prefix/lib/yacasl2'
195 =========================
197 環境変数`PATH'や`CASL2LIB'を設定することで、YACASL2が使いやすくなります。環境変数は、使っているシェルを確認してから設定します。
202 環境変数の設定方法は使っているシェルによって異なります。シェルは、次のコマンドで確認できます。
207 現在もっとも多く使われているシェルは、BASHでしょう。以下、BASHでの設定方法を説明します。
210 ---------------------
212 `PATH'にYACASL2の実行ファイルのインストール先を追加すると、ディレクトリーの指定を省略して`casl2'
214 `dumpword'を実行できます。例えば、初期設定のまま実行ファイルを`~/bin'にインストールしたときは、次のコマンドで設定できます。
216 $ PATH=$PATH:~/bin && export PATH
218 環境変数の設定は、シェルの初期設定ファイルに追加することでログインしたあと自動的に反映されるようになります。BASHでは`~/.bashrc'が初期設定ファイルです。次のコマンドで追加できます。
220 $ echo ’PATH=$PATH:~/bin && export PATH’ >>~/.bashrc
223 -------------------------
225 `INFOPATH'にYACASL2のInfoファイルをインストールしたディレクトリーを追加すると、ディレクトリーの指定を省略して`casl2'
227 `dumpword'を実行できます。例えば、初期設定のままInfoファイルを`~/share/info'にインストールしたときは、次のコマンドで設定できます。
229 $ INFOPATH=$INFOPATH:~/share && export INFOPATH
231 `~/.bashrc'には次のコマンドで追加できます。
233 $ echo 'INFOPATH=$INFOPATH:~/share/info && export INFOPATH' >>~/.bashrc
236 -------------------------
238 環境変数`CASL2LIB'を設定しておけば、CASL
239 IIプログラム作成時に共通ライブラリを呼び出す手間が小さくなります。例えば、CASL2LIBを`~/yacasl2/casl2lib'にインストールしたときは、次のコマンドで設定できます。
241 $ CASL2LIB=~/yacasl2/casl2lib && export CASL2LIB
243 `~/.bashrc'には次のコマンドで追加できます。
245 $ echo 'CASL2LIB=~/yacasl2/casl2lib && export CASL2LIB' >>~/.bashrc