Heh I feel you ;) I'm part of a team busy building a new startup using node. Two of our dev's are on on OSX, one is on Linux. I am on Windows.
I downloaded and use GNU's "Make for Windows" and can now quite happily make our installation & test suites.
Also, I STRONGLY encourage you to use PowerShell - it has a bunch of commands aliased to UNIX-friendly commands (e.g. Get-ChildItem -> ls). This allows several of our scripts to work on UNIX or Windows without change.
So, to your issue:
Try replacing your makefile above with the following:
# Detect if we're running Windows
# If so, set the file & folder deletion commands:
FixPath = $(subst /,\,$1)
# Otherwise, assume we're running *N*X:
FixPath = $1
NODE_MODULES := ./node_modules/.bin/
$(call FixPath, NODE_MODULES)mocha -u tdd -R spec
Note: with Makefiles, tasks within targets must be indented with tab characters, not spaces! Go figure!!
I stole the FixPath routine from this post (thanks Paul :)). It replaces a string's / with \ if run on Windows.
One of the problems with make on Windows is that it shells out to NT's command shell (via CreateProcess) in order to execute each task. This means that any *N*X-isms that Powershell would otherwise handle (e.g. ls, cat, etc.) won't work when executing makefiles. Thus, its advisable to replace inline commands with overridable aliases that you can set to one command for NT and another for *N*X.
Perhaps I'll get around to forking Gnu Make and seeing if I can get it to shell out to Powershell when executing commands instead of the NT command line. That would also eliminate the need for FixPaths above ;)
Ping me if you get stuck ;)