たなか です。
興味が出たのでやってみました。

(2013/03/28 15:23), KISHIMOTO, Makoto wrote:
> (Makefileの例)
(中略)
> foo : foo_src.txt
>       gen_foo foo_src.txt > foo
(中略)
> GNU make には、コマンドが異常終了した場合や、さらに .DELETE_ON_ERROR
> というターゲットがあれば、終了ステータスが 0 でなければ、中途半端に
> 作られた(であろう)ターゲットファイルを削除してくれる、という
> 機能があります。
> 
> FreeBSD の make( /usr/bin/make の make )では、^C で中断された場合
> には、ターゲットファイルを削除してくれるのですが、他の正常終了で
> ない場合に、削除させる方法は無いのでしょうか?

各アクションに書くことになりますが、コマンドが異常終了した場合に
rmが動作するようにすれば、それらしい動作になると思います。
元の例だと次のような感じでしょうか。

foo:    foo_src.txt
        gen_foo foo_src.txt > foo || (rm foo ; exit 1)

#最後に「exit 1」するのがコツ :-)

参考になれば幸いです。
では

-- 
たなかえいじ

メールによる返信