並列 make
Menumake -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 のソースを参考にしよう。