-
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をコンパイル対象に含める