The makefile lets me be very expressive about task dependencies and encode some developer conveniences. Ie make can know `make bootstrap` should invoke bootstap_windows.sh on Windows and bootstrap_osx.sh on Mac. Then the work happens inside the appropriate script.
They’re two tools that solve different problems but they work together quite well.
Also I'm not sure Windows can run Makefiles out-of-the-box.
I'm pretty sure git-bash provides `Make` on Windows. I believe thats how I tested it for this project: https://github.com/J-Swift/cod-stats
Imagine a simple two-step process. The first takes a long time. The second one fails on occasion. You don't want to run the first one again. With Make, if the first one succeeds, it won't run again unless you `clean`
Easy, but now imagine many, many steps
if [[ -f myfile ]]; then
But it's trivial to run shell scripts in parallel as well, just add ` &` at the end.