並列 make

Menu

make -j を実装してみよう。


分割コンパイル用のソースを作る

    fork してコマンドを実行する部分
    それを呼び出す main

最低、この二つの部分を分割したソースコードを用意せよ。


初心者コース

実行したいコマンド

    cc -O2 -c forkexec.c
    cc -O2 -c main.c
    cc -O2 forkexec.o main.o -o my_make

を可能な限り fork しながら実行する main 部分を記述する。

link の実行が、*.o の生成よりも後になることを wait を使って保証する。


チャレンジャーコース

*.o と my_make の生成時間を見て、必要なものだけを実行するようにする。

make と同様の rule を読んで、依存関係を調べ、実行する部分を作成する。

shell.y のソースを参考にしよう。


Shinji KONO / Wed Nov 28 14:44:03 2012