差分
Ccache
,'''ccache'''(しーきゃっしゅ)とは、各種[[コンパイラー]]が出力する[[オブジェクトファイル]]を[[キャッシュ]]し、無駄な[[コンパイル]]を省くことで再コンパイルを高速化するシステムである。
ccacheによる[[キャッシュ]]の判断は、[[ソースコード]]でも[[オブジェクトコード]]でもなく、[[プリプロセッサー]]の出力結果を用いているようである。
ccacheの原作者は[[samba]]の原作者としても有名な[[アンドリュー・トリジェル]]である。
== 対応するコンパイラー ==
2012年7月18日現在、ccacheがサポートしている[[プログラミング言語]]は以下のとおり。
* [[C言語]]
* [[C++]]
* [[Objective-C]]
* [[Objective-C++]]
公式サイトを見るといつの間にか[[Objective-C]]と[[Objective-C++]]が増えているという。
[[UNIX]]系[[OS]]で古くから使われる「ccコマンド」と「c++コマンド」への対応が基本となる。[[gcc]]もこれらのコマンドに対するエイリアスが用意されているので特に考える必要はないと思う。
ccacheの[[ソースコード]]を見ると、[[MinGW]]や[[Visual C++]]などの[[Windows]]環境への対応が試みられた形跡はあるが、2012年7月18日現在では完全体ではなく対応していないと思われる。
== ライセンス ==
ccacheの[[ライセンス]]は[[GPL v3]]である。
== 使い方 ==
=== [[FreeBSD]] ===
<ref>http://linux-bsd-sharing.blogspot.jp/2009/01/howto-using-ccache-on-freebsd.html</ref>
==== portsからインストール ====
[[FreeBSD]]ではportsが用意されている。
* devel/ccache
portsから直接インストールする場合は以下のようにする。
<source lang="bash">
# cd /usr/ports/devel/ccache
# make install clean
</source>
portupgradeを使っている場合は以下のようにする。
個人的にはこちらを使っており、同時に「-p」オプションを付けることでパッケージも作っておく。
<source lang="bash">
# portinstall -p devel/ccache
</source>
==== /etc/make.confの設定 ====
「/etc/make.conf」を編集し、make実行時にccacheが自動発動する条件を指定しておく。
<source lang="text">
.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) && !defined(NOCCACHE)
CC=/usr/local/libexec/ccache/world-cc
CXX=/usr/local/libexec/ccache/world-c++
.endif
</source>
==== 環境変数の設定:cshの場合 ====
シェルにcshまたはtcshを使っている場合は「/root/.cshrc」を編集しccache関連の環境変数を設定しておく。キャッシュやログの保存場所や適宜設定すること。
<source lang="text">
setenv PATH /usr/local/libexec/ccache:$PATH
setenv CCACHE_PATH /usr/bin:/usr/local/bin
setenv CCACHE_DIR /var/tmp/ccache
setenv CCACHE_LOGFILE /var/log/ccache.log
</source>
上記の設定が完了したのち、sourceコマンドで環境変数を更新する。
<source lang="bash">
# source /root/.cshrc
</source>
==== 環境変数の設定:zshの場合 ====
シェルにzshを使っている場合は「/root/.zshrc」を編集しccache関連の環境変数を設定しておく。キャッシュやログの保存場所や適宜設定すること。
<source lang="text">
export PATH=/usr/local/libexec/ccache:$PATH
export CCACHE_PATH=/usr/bin:/usr/local/bin
export CCACHE_DIR=/var/tmp/ccache
export CCACHE_LOGFILE=/var/log/ccache.log
</source>
上記の設定が完了したのち、sourceコマンドで環境変数を更新する。
<source lang="bash">
# source /root/.zshrc
</source>
=== 共通 ===
==== 統計情報を見る ====
以下のコマンドでキャッシュのヒット率などを閲覧することができる。
<source lang="bash">
# ccache -s
</source>
==== 統計情報をリセットする ====
以下のコマンドで統計情報をリセットすることができる。なお統計情報が消えるのであってキャッシュ自体が消えるわけではない。
<source lang="bash">
# ccache -z
</source>
== 関連項目 ==
* [[コンパイラー]]
== 参考文献 ==
<references/>
== 外部リンク ==
* http://ccache.samba.org/
{{stub}}
ccacheによる[[キャッシュ]]の判断は、[[ソースコード]]でも[[オブジェクトコード]]でもなく、[[プリプロセッサー]]の出力結果を用いているようである。
ccacheの原作者は[[samba]]の原作者としても有名な[[アンドリュー・トリジェル]]である。
== 対応するコンパイラー ==
2012年7月18日現在、ccacheがサポートしている[[プログラミング言語]]は以下のとおり。
* [[C言語]]
* [[C++]]
* [[Objective-C]]
* [[Objective-C++]]
公式サイトを見るといつの間にか[[Objective-C]]と[[Objective-C++]]が増えているという。
[[UNIX]]系[[OS]]で古くから使われる「ccコマンド」と「c++コマンド」への対応が基本となる。[[gcc]]もこれらのコマンドに対するエイリアスが用意されているので特に考える必要はないと思う。
ccacheの[[ソースコード]]を見ると、[[MinGW]]や[[Visual C++]]などの[[Windows]]環境への対応が試みられた形跡はあるが、2012年7月18日現在では完全体ではなく対応していないと思われる。
== ライセンス ==
ccacheの[[ライセンス]]は[[GPL v3]]である。
== 使い方 ==
=== [[FreeBSD]] ===
<ref>http://linux-bsd-sharing.blogspot.jp/2009/01/howto-using-ccache-on-freebsd.html</ref>
==== portsからインストール ====
[[FreeBSD]]ではportsが用意されている。
* devel/ccache
portsから直接インストールする場合は以下のようにする。
<source lang="bash">
# cd /usr/ports/devel/ccache
# make install clean
</source>
portupgradeを使っている場合は以下のようにする。
個人的にはこちらを使っており、同時に「-p」オプションを付けることでパッケージも作っておく。
<source lang="bash">
# portinstall -p devel/ccache
</source>
==== /etc/make.confの設定 ====
「/etc/make.conf」を編集し、make実行時にccacheが自動発動する条件を指定しておく。
<source lang="text">
.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) && !defined(NOCCACHE)
CC=/usr/local/libexec/ccache/world-cc
CXX=/usr/local/libexec/ccache/world-c++
.endif
</source>
==== 環境変数の設定:cshの場合 ====
シェルにcshまたはtcshを使っている場合は「/root/.cshrc」を編集しccache関連の環境変数を設定しておく。キャッシュやログの保存場所や適宜設定すること。
<source lang="text">
setenv PATH /usr/local/libexec/ccache:$PATH
setenv CCACHE_PATH /usr/bin:/usr/local/bin
setenv CCACHE_DIR /var/tmp/ccache
setenv CCACHE_LOGFILE /var/log/ccache.log
</source>
上記の設定が完了したのち、sourceコマンドで環境変数を更新する。
<source lang="bash">
# source /root/.cshrc
</source>
==== 環境変数の設定:zshの場合 ====
シェルにzshを使っている場合は「/root/.zshrc」を編集しccache関連の環境変数を設定しておく。キャッシュやログの保存場所や適宜設定すること。
<source lang="text">
export PATH=/usr/local/libexec/ccache:$PATH
export CCACHE_PATH=/usr/bin:/usr/local/bin
export CCACHE_DIR=/var/tmp/ccache
export CCACHE_LOGFILE=/var/log/ccache.log
</source>
上記の設定が完了したのち、sourceコマンドで環境変数を更新する。
<source lang="bash">
# source /root/.zshrc
</source>
=== 共通 ===
==== 統計情報を見る ====
以下のコマンドでキャッシュのヒット率などを閲覧することができる。
<source lang="bash">
# ccache -s
</source>
==== 統計情報をリセットする ====
以下のコマンドで統計情報をリセットすることができる。なお統計情報が消えるのであってキャッシュ自体が消えるわけではない。
<source lang="bash">
# ccache -z
</source>
== 関連項目 ==
* [[コンパイラー]]
== 参考文献 ==
<references/>
== 外部リンク ==
* http://ccache.samba.org/
{{stub}}