Running $(shell "ls -l $(CURDIR)" )
is like typing "ls -l /home/me/BitHoist/source"
to the shell prompt (including quotes).
Try that and you'll see you'll get the same error you get from the makefile. Make passes those quotes along to the shell verbatim, so the shell is trying to run a program literally named ls -l /home/me/BitHoist/source
, which is obviously not a real program name. Hence the error.