Here is a reduced version of my Makefile:
.PHONY: all all: src/server.coffee mkdir -p bin ./node_modules/.bin/coffee -c -o bin src/server.coffee
There needs to be some target file to compare against the modification time of server.coffee file. Since you don't have a concrete target make cannot know if the output is newer then the dependency or not, so it will always build all.
make
all