Makefileの「*」の展開の仕方が違う?

以前、TeX用に作ったMakefileに以下のような項目があります。

clean:
    -rm *~ *.{log,aux,dvi}

これをDebian上で使ったら、ファイルが展開できずエラーになってしまいました。
シェルはBashです。以前は展開できていたのですが、いつ頃から変わってしまったのでしょうか。

ちなみに、Mac OS X 10.9上のターミナルで実行したところ、これまで通り展開されて無事削除できました。

Debianのbashに何かの設定があるのかな?

ls *.{log,aux,dvi}

とすると問題なく展開できるのでbashが原因じゃなさそうです。makeに違いがあるんんだろうか。DebianもMac OS Xも

make --version

とすると、どちらも「3.81」と表示されて同じバージョンです。何が原因なのか分かりません。

ちょっと書き換えて

    -rm *~ *.log *.aux *.dvi

とすると問題なく実行されます。ということは { } の中を展開しないのが原因らしい。

でもなぜ展開されないのか、今のところ分からないままです。

コメント