通常、ターゲットhello_worldをmakeするときには、

make hello_world

とします。
同じ要領で、ターゲットhello=worldをmakeしようとして、

make hello=world

とすると、意図した結果にはなりません(変数helloの値をworldに設定して、デフォルトターゲットがmakeされます)。

これをhello=worldのmakeであると認識させるにはどうすればよいでしょうか?

一般論としてmakeのターゲット名に'='を使うべきでないことは理解していますが、やむをえない事情によりwork-aroundを探しています。


状況を再現する最小構成
GNU Make 4.2.1 on cygwin x86_64

Makefileの内容(スペースはタブに変更してください)

HELLO:=hello=world
all:       # "all world"
    @echo all $(hello)
$(HELLO):  # "hello=world"
    @echo hello=world $(hello)

普通に実行

$ make hello=world
all world

シングルクォートして実行

$ make 'hello=world'
all world

ダブルクォートして実行

$ make "hello=world"
all world

エスケープして実行

$ make hello\=world
all world

シングルクォート+エスケープして実行

$ make 'hello\=world'
all

ダブルクォート+エスケープして実行

$ make "hello\=world"
all