Makefile に出てくる アットマーク(@)とハイフン(-)の意味について。

cmd1:
	echo 'hello world'

※ インデントは Tab を使うこと

$ make cmd1
echo 'hello world'
hello world

@ アットマーク

@ はコマンド自身を標準出力しないという意味。

cmd2:
	@echo 'hello world'
$ make cmd2
hello world

- ハイフン

- はエラーを無視するという意味。

cmd3:
	invalid_command
	echo 'invalid?'
cmd4:
	-invalid_command
	echo 'invalid?'

不正なコマンドが入ってときにエラーで終了する。

$ make cmd3
invalid_command
make: invalid_command: No such file or directory
make: *** [cmd3] Error 1

-を付けると不正なコマンドであっても無視することができる。

$ make cmd4
invalid_command
make: invalid_command: No such file or directory
make: [cmd4] Error 1 (ignored)
echo 'invalid?'
invalid?

参考

Makefile の “-@” (ハイフン、アット) ってなんですか? - quwaharaの日記