make -> scons
dtlはヘッダファイルのみから構成されるライブラリなので、単にdtlを使用するユーザはdtl自体を特にビルドする必要はないんだけど、サンプルプログラムとテストプログラムはmakeかsconsを使ってビルドする必要がある。
元々はMakefileだけ用意していたんだけど、今年の春ぐらいにSConstruct*1を使ってビルドできるようにした。というのもここから先、makeの延長上でさらに自動化しようとするとautotoolsが真っ先に挙がるけど、サンプルとテストのプログラムのためだけに用意するのも億劫なので、別手段を考えていたというのがある。もっとも最初の理由はMakefileの頭に「CPP =g++」と環境べったりな書き方をしていてどうにかしたかったからなのだが。
あと、やっぱり自分で依存関係書き出すのがめんどくさい。あ〜、いや、どうせGCCの-MMオプション使うから書くのは面倒でもなんでもないんだけど、更新は自分の手でやんないといけない。こんな風にdependターゲットを定義して。
CPP = g++ ・ ・ ・ DEPENDENCY_FILE = Makefile.depend ・ ・ ・ depend: @echo "generating dependency file" @$(CPP) -MM *.cpp > $(DEPENDENCY_FILE) include $(DEPENDENCY_FILE)
SConsだとファイル間の依存関係は自動で解析してくれる上に実行環境の違いも全部面倒を見てくれる。*2
まとめると、