-
Notifications
You must be signed in to change notification settings - Fork 0
Amalgamation
snipsnipsnip edited this page Jan 15, 2015
·
2 revisions
Branchesのとおり、masterにはyalibnkf_amalgamated.cという自動生成されたファイルを置いています。
これは、clibというC言語用のパッケージマネージャでの扱いを単純にするためです(mattn さんの紹介記事)。
clibはフラットにファイルを取り込んでしまうため、#include "nkf/nkf.c"
のようなディレクトリを使った構成ができません。かといってこのためだけにユーザにビルド手順を複雑化させてもらいたくありません。
そのため、amalgamatorという部分的に#include
だけを実行するプリプロセッサもどきを作りました。あらかじめこれを実行しておけば、Cファイルは1つだけですみます。
アマルガメーション(amalgamation, 合金化)の語はSQLiteの配布形態の用語を借りました。
これによって、yalibnkfは以下の3つの手順だけで利用できるようになっています。
-
yalibnkf.h
とyalibnkf_amalgamated.c
をソースツリーに取り込む -
yalibnkf.h
にINCLUDE
パスを通す -
yalibnkf_amalgamated.c
をコンパイル対象に含める