In a large Makefile managed project, I recently added some PHP generated targets and bash completion stopped working: pressing [tab] does not trigger completion, but inserts a tab character.
I isolated the issue to this minimal 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 $@
If I use the bash-echo, python or ruby version of the TARGETS macro, bash completion works as expected, but if I use the php version bash completion becomes useless.
I can reproduce this issue on:
- Mac OS 10.7.5 with default /usr/bin/php (5.3.15), default /bin/bash (3.2.48(1)-release), bash_completion 1.3_4 (installed with macports)
- Ubuntu 10.04 with default /usr/bin/php (5.3.5-1ubuntu4ppa1), default /bin/bash (4.1.5(1)-release), default bash-completion 1:1.1-3ubuntu2
does anybody knows what is going wrong and what can be done about it?