## ターゲット

### ターゲットID

ビルドターゲットを識別するため、「プロジェクトID//ターゲット名」という形式の文字列を用いる。

ターゲットID | 意味
--- | ---
/boost | boostプロジェクト(サブプロジェクトを含まない)のターゲット全て
hello | 現在のプロジェクトのhelloターゲット
/boost/filesystem//boost_filesystem | boost/filesystemプロジェクトのboost_filesystemターゲット

### 共通構文

通常、ビルドターゲットを宣言するルールは次の共通構文の形式を取る。

    rule ルール名 (
        main-target-name :
        sources + :
        requirements * :
        default-build * :
        usage-requirements * )

引数の意味は次の通り。

引数 | 意味
--- | ---
main-target-name | ターゲット名
sources | ソースファイル名、ソースターゲット名
requirements | ビルドに必要なプロパティ
default-build | コマンドラインや依存するターゲットのdefault-buildでの指定がない場合のみ使用されるプロパティ
usage-requirements | このターゲットに依存するターゲットのビルドに必要なプロパティ

### exe

標準ルールexeは、実行ファイルターゲットを宣言するルールであり、共通構文の形式を取る。

    # hello.cppから実行ファイルhelloを生成させる
    exe hello : hello.cpp ;

    # my_ls.cppとBoost.FileSystemのライブラリから実行ファイルmy_lsを生成させる
    exe my_ls : my_ls.cpp /boost/filesystem//boost_filesystem ;

### lib

標準ルールlibは、ライブラリターゲットを宣言するルールであり、共通構文の形式を取る。

    # hello.cppからライブラリhelloを生成させる
    lib hello : hello.cpp ;

    # 既定のライブラリパスから探索されるzという名前のライブラリを参照する
    lib z : : <name>z ;

    # /usr/local/libから探索されるbzipという名前のライブラリを参照する
    lib bzip : : <name>bzip <search>/usr/local/lib ;

    # /usr/local/lib/foo.aをライブラリとして参照する
    lib foo : : <file>/usr/local/lib/foo.a ;

### alias

標準ルールaliasは、ターゲットの別名を宣言するルールであり、共通構文の形式を取る。

    # ターゲットaとbを参照するターゲットa&bを宣言する
    alias a&b : a b ;

    # ヘッダのみのライブラリheadersを宣言する
    alias headers : : : : <include>$(BOOST_ROOT) ;