カリッとサクッと。
最近、自前project用に
Sconsをおためし中。Makefileを書くよりは楽かなー。なんせ、単純に hello.cを compileするだけだと、設定ファイルSconstruct(Makefileのかわりね)に
Program('hello.c')
とか書くだけ。めっちゃsimple。
antもいいんだけどね。でも手書きは面倒なので Sconsを try。
% cat SConstruct
env = Environment( CC='gcc-4.2', CCFLAGS='-O2', CXX='g++-4.2' )
env['BUILDERS']['Squirrel'] = Builder( action='sq -o $TARGET -c $SOURCE', suffix='.cnut', src_suffix='.nut' )
cpp_files = [ 'test.cpp' ]
lib_files = [ 'sqstdlib', 'squirrel' ]
env.Squirrel('test.nut')
env.Program('mytest', cpp_files, LIBS=lib_files )
という感じで書ける。これを実行すると、
% scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
g++-4.2 -o test.o -c -O2 test.cpp
g++-4.2 -o mytest test.o -lsqstdlib -lsquirrel
sq -o test.cnut -c test.nut
scons: done building targets.
判りやすい設定ファイルになるのと、ややこしい ruleを書くときに普通に Pythonで書けてしまうのが魅力かな。普通に単一環境とか on unixで書くにはあまり魅力はないんだけど、特殊なターゲットやらツールやら外部アクセスやらを全部一発でさせようと思うと悪くないかなと。
そろそろ iPhone2.0の$99版も公開されるしね〜。備えておきたいのさ(笑)