SCons 最初の一歩

  • Makefile ファイルにあたるのは SConstruct ファイル.中身は python のプログラム.

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 = ['.'])