5.8 ソースからビルドする場合
その他のシステムではソースからビルドしてください. ソースからのビルドには,以下の開発ツールとライブラリが事前に インストールされている必要があります.
-
1.
プログラム開発用のツール群GNU binutils(GNU Binary Utilities).
-
2.
CおよびC++コンパイラ(gccまたはclang)
-
3.
make(GNU makeを推奨)
-
4.
GMPライブラリ本体とヘッダーファイル
-
5.
LLVMのライブラリ,ヘッダーファイル,およびコマンド (バージョン7.1.0から19.1まで)
-
6.
MassiveThreadsライブラリ本体とヘッダーファイル
これらのソフトウェアがインストール済みならば,SML#は 標準的な3ステップ ./configure && make && make install で インストールすることができます.
特にこだわりがなければ,これらのソフトウェアは OS標準のパッケージシステムでインストールしてください. これらのソフトウェアがOSのパッケージシステムによって提供されていない 場合,これらもソースからビルドする必要があります. これらのコンパイルの詳細は,各ソフトウェアの公式ドキュメントなどを 参照してください.
本文書の執筆時点でのMassiveThreadsおよびLLVM 7.1.0の大まかな インストール手順は以下の通りです.
MassiveThreads
MassiveThreadsのWebページ https://github.com/massivethreads/massivethreadsなどからMassiveThreads 1.02のソースコード massivethreads-1.02.tar.gzを入手,展開し, 標準的な3ステップ ./configure && make && make install で インストールしてください.
LLVM 7.1.0
LLVMのWebページ http://llvm.org/ などからLLVMのソースコード llvm-7.1.0.src.tar.xzを入手,展開し,以下の5ステップでビルドします.
mkdir build
cd build
cmake -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=/// \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_BUILD_LLVM_DYLIB=On \
-DLLVM_ENABLE_BINDINGS=Off
make
make install
上記例でcmakeに指定しているオプションは必須ではありませんが, 指定することをおすすめします. -DCMAKE_INSTALL_PREFIXは他のLLVMのインストールと衝突を 避けるために指定することをおすすめします. -DCMAKE_BUILD_TYPE=ReleaseはLLVM自体を最適化します. -DLLVM_BUILD_LLVM_DYLIB=Onオプションは共有ライブラリを ビルドします. -DLLVM_ENABLE_BINDINGS=OffはSML#に不要なモジュールの ビルドを防ぎます.
以上の環境の下で,以下の手順でSML#をソースからビルドします.
-
1.
ソースパッケージ (https://github.com/smlsharp/smlsharp/releases/download/v4.1.0/smlsharp-4.1.0.tar.gz) をダウンロードします. 最新のソースパッケージは https://smlsharp.github.io/ja/downloads/からも取得できます.
-
2.
適当なSML#ソースディレクトリを決め,そこにソースパッケージを 展開します. ただし,絶対パスに日本語が含まれるディレクトリは避けてください. SML#をビルドできません.
-
3.
適当なSML#のインストール先ディレクトリを決めます. 以下,そのディレクトリをとします.
-
4.
SML#ソースディレクトリにてconfigureスクリプトを実行します. このとき,--prefixオプションにを, --with-llvmにLLVMをインストールしたディレクトリを指定します.
$ ./configure --prefix= --with-llvm=///
--prefixオプションを省略した場合は /usr/localに インストールされます. --with-llvmオプションを省略した場合は,LLVMのライブラリ とコマンドを標準的な場所(/usr/binなど)から探します.
-
5.
makeコマンドを実行しビルドを行います.
$ make
なお,ビルド終了後,以下のコマンドでSML#コンパイラをインストール する前に起動することができます.
$ src/compiler/smlsharp -Bsrc
-
6.
(オプション) 以下のコマンドで, ビルドしたSML#コンパイラで SML#コンパイラをビルドし直すことができます.
$ make stage
$ make -
7.
make installコマンドでインストールします.
$ make install
システム管理の都合上,インストールされるファイルを とは異なるディレクトリに出力させたい場合は, make installコマンドにDESTDIR=オプションを 指定してください.
以上により,以下のファイルがインストールされます.
-
1.
smlsharpコマンド:/bin/smlsharp
-
2.
smlformatコマンド:/bin/smlformat
-
3.
smllexコマンド:/bin/smllex
-
4.
smlyaccコマンド:/bin/smlyacc
-
5.
ライブラリファイル:/lib/smlsharp/ディレクトリ以下のファイル
以下のコマンドでSML#コンパイラが起動できるはずです.
$ /bin/smlsharp
補足とヒント:
-
•
マルチコアCPUをお使いの方は,GNU makeならばmakeコマンドを実行 するとき-jnスイッチを指定すると,並列にコンパイルされ, 実行時間が短縮される場合があります.nは並列度です.コアの数程度 に指定すると良い結果が得られると思います.
-
•
SML#コンパイラ自体を開発するためには, SML#コンパイラを動かすためのLLVMに加え,ブートストラップのために LLVM 7.1.0が必要です. 開発目的でSML#コンパイラをビルドする場合は, ./configure実行時に--with-llvm7オプションを加えて, LLVM 7.1.0がインストールされている場所を指定してください.