Ошибка автозаполнения Makefile bash с заданными PHP-целями

В крупном проекте, управляемом Makefile, я недавно добавил некоторые PHP-цели, и завершение bash перестало работать: нажатие [tab] не вызывает завершение, но вставляет символ табуляции.

Я выделил проблему для этого минимального файла Makefile:

# TARGETS = $(echo target1 target2) TARGETS = $(php -r 'echo "target1 target2";') # TARGETS = $(python -c 'print "target1 target2"') # TARGETS = $(ruby -e 'puts "target1 target2"') $(TARGETS): echo $@ 

Если я использую bash-echo, python или рубиновую версию макроса TARGETS, то завершение bash работает так, как ожидалось, но если я использую завершение php версии bash, становится бесполезным.

Я могу воспроизвести эту проблему:

  • Mac OS 10.7.5 с по умолчанию / usr / bin / php (5.3.15), по умолчанию / bin / bash (3.2.48 (1) -release), bash_completion 1.3_4 (установлен с macports)
  • Ubuntu 10.04 с по умолчанию / usr / bin / php (5.3.5-1ubuntu4ppa1), по умолчанию / bin / bash (4.1.5 (1) -release), по умолчанию bash-completion 1: 1.1-3ubuntu2

кто-нибудь знает, что идет не так, и что можно сделать по этому поводу?