Usando esta resposta no StackOverflow para usar o make
para calcular todos os alvos disponíveis e mesclar isso no Debian exemplo de script, como mostrado na outra resposta aqui e, em seguida, adicionando um pouco mais, isso gera:
alias complete_make_target_filter 'awk -F: '"'"'/^[a-zA-Z0-9][^\$#\/\t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}'"'"
complete make \
'n/--assume-old/f/' \
'n/--assume-new/f/' \
'n/--directory/d/' \
'n/--file/f/' \
'n/--include-dir/d/' \
'n/--makefile/f/' \
'n/--new-file/f/' \
'n/--old-file/f/' \
'n/--what-if/f/' \
'n/-d/d/' \
'n/-f/f/' \
'c/*=/f/' \
'n@*@'make -qp |& grep -v Stop |complete_make_target_filter|xargs echo --always-make --directory -d --debug -e --environment-overrides --file --makefile -i --ignore-errors -I --include-dir -j --jobs -k --keep-going -l --load-average --max-load -L --check-symlink-times -n --just-print --dry-run --recon -o --old-file --assume-old -p --print-database -q --question -r --no-builtin-rules -R --no-builtin-variables -s --silent --quiet -S --no-keep-going --stop -t --touch -v --version -w --print-directory --no-print-directory -W --what-if --new-file --assume-new --warn-undefined-variables'@'
Coloque isso junto com outros scripts de conclusão bacanas em um diretório ~/.complete/
e, em seguida, digite todos eles no seu ~/.cshrc
e está tudo pronto.