My projects tend to have a Makefile in the root folder. Although most people seem to shy away from Makefiles due to their complexity, you should look at one of my files. To me, they're a simple way of scripting and running aliases to commands you want to do and don't feel like remembering.

There is the old joke that nobody actually creates a new Makefile, but that you just copy an old one and edit it to you needs. Yes, I've seen complicated Makefiles, and it seems like because of this complexity, people have moved on to newer build systems, but we're not talking about the old styles.

I'm talking about something like this:

  rsync -av --exclude=.git .

This is in a file called Makefile (capital 'M'). To run this, you type 'make all', and it will sync the contents of that folder with my web host, where I already have the SSH keys setup.

Not mind-blowing, but I don't feel like remembering the rsync command each time I update this set of files.

The first line is the statement name. "all" is common statement to make everything in the file. In this case, there's really only one line.

The next lines are the shell commands to run for this statement. Each line must be prefixed by a tab. There can be more than one line. The next line that starts without the tab will be the next statement.

That's it. Add more commands to do common tasks for your project.

This is really a simple alias file, or a set of simple batch files. Yes, you can have dependencies, variables, and complicated logic, but you can look up other instructions on how to do that. I just like my scripts I can run.