ダブルコロンルール(Double-Colon Rules)は依存ファイルが複数ある場合、更新された依存ファイルによってターゲットファイルの更新の仕方を変えるために使います。
例
c.txt:: a.txt
touch c.txt
@echo 'a.txt'
c.txt:: b.txt
touch c.txt
@echo 'b.txt'
動作確認
$ touch a.txt
$ touch b.txt
$ make c.txt
touch c.txt
a.txt
touch c.txt
b.txt
$ touch a.txt
$ make c.txt
touch c.txt
a.txt
$ touch b.txt
$ make c.txt
touch c.txt
b.txt