Uciekanie dwukropków w nazwach plików w pliku Makefile

Czy istnieje sposób, aby GNU make działał poprawnie z nazwami plików zawierającymi dwukropki?

Specyficzny problem, z którym się spotykam, obejmuje regułę wzorca. Oto uproszczona wersja, która nie zależy od wycinania i wklejania znaków tabulacji:

% make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
% cat Makefile
COLON := \:
all: ; true
%.bar: ; cp 
% make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
% cat Makefile
COLON := \:
all: ; true
%.bar: ; cp $< $@
x.bar: x.foo
%.foo: ; touch $@
a$(COLON)b.bar: a$(COLON)b.foo
all: x.bar a$(COLON)b.bar
clean: ; rm -f *.foo *.bar
% make clean
rm -f *.foo *.bar
% make
touch x.foo
cp x.foo x.bar
cp  a\:b.bar
cp: missing destination file operand after `a:b.bar'
Try `cp --help' for more information.
make: *** [a\:b.bar] Error 1
lt; $@ x.bar: x.foo %.foo: ; touch $@ a$(COLON)b.bar: a$(COLON)b.foo all: x.bar a$(COLON)b.bar clean: ; rm -f *.foo *.bar % make clean rm -f *.foo *.bar % make touch x.foo cp x.foo x.bar cp a\:b.bar cp: missing destination file operand after `a:b.bar' Try `cp --help' for more information. make: *** [a\:b.bar] Error 1

Zastąpienie $ (COLON) literałem: daje dokładnie taki sam wynik. Bez odwrotnego ukośnika robi to:

Makefile:6: *** target pattern contains no `%'.  Stop.

questionAnswers(4)

yourAnswerToTheQuestion