SCons 最初の一歩
hello world
SConstruct:
Program('hello', 'hello.c')
そして,
$ scons
とすると,Linux では hello ができ,Windows では hello.exe ができる.
make clean するには,
$ scons -c
とする.
複数ファイル
SConstruct:
Program('hello', ['hello.c', 'foo.c', 'bar.c'])
ライブラリ
SConstruct:
Library('foobar', ['foo.c', 'bar.c'])
ダイナミックライブラリの場合:
SharedLibrary('foobar', ['foo.c', 'bar.c'])
ライブラリを利用
SConstruct:
Program('hello', ['hello.c'], LIBS = ['foobar'], LIBPATH = ['libs/are/here'])
中間ファイルの抽象化(ノード)
オブジェクトファイルを作りリンクするには,
Object('foo.c', CCFLAGS = '-DFOO') Object('bar.c', CCFLAGS = '-DBAR') Program('hello', ['hello.c', 'foo.o', 'bar.o'])
とすればできるが,これでは Windows 上では動作しない.次のようにする:
foo_nodes = Object('foo.c', CCFLAGS = '-DFOO') bar_nodes = Object('bar.c', CCFLAGS = '-DBAR') Program('hello', ['hello.c'] + foo_nodes + bar_nodes)
インクルードディレクトリの指定
Program('hello', ['hello.c'], CPPPATH = ['.'])