I\'ve used rake a bit (a Ruby make program), and it has an option to get a list of all the available targets, eg
> rake --tasks rake db:charset # ret
Here's a very simple way to do this in bash -- based on the comment by @cibercitizen1 above:
bash
grep : Makefile | awk -F: '/^[^.]/ {print $1;}'
See also the more authoritative answer by @Marc.2377, too, which says how the Bash completion module for make does it.
make