This is usually the all target. The sources on which a target depends do not necessarily have to be actual files. They can be other targets. Target rules may also contain wildcards. This serves to specify how to create one entire class of files given sources from another class of files.
Build rules specify how to build a target file.
Each target rule is followed by zero or more build commands. First, some fun with syntax. By default, build commands are written to the terminal as they are run. Now, an overview. The first line silently removes any existing copy of the target file.