# Make Source: https://wisconsin.twango.dev/sp25-cs400/topics/makefile # Make Make is a build automation tool that automatically builds executable programs and libraries from source code by reading a file called `Makefile`. The `Makefile` contains a set of rules used to build the target file(s) from the source file(s). The rules are written in the form of a recipe that specifies the dependencies and the commands to build the target file(s). Declared prerequisite timestamps are tracked, so if a dependency is modified, `Make` will automatically rebuild the target file(s) that depend on it. This allows for incremental builds, where only the modified files are rebuilt, rather than rebuilding everything from scratch. ## Syntax The syntax of a `Makefile` is as follows: ```make target: dependencies command ``` - `target`: The file(s) to be built. - `dependencies`: The file(s) that the target file(s) depend on. - `command`: The command(s) to build the target file(s) from the dependencies. Other features of `Makefile` include: - Variables: Used to store values that can be referenced later in the file. - Comments: Lines starting with `#` are treated as comments. - Rules: Define how to build the target file(s) from the dependencies. - Phony targets: Targets that do not represent actual files but are used as commands. ## Connections - [[sp25-cs400/topics/index|Topic index]] Obvious technical and formatting errors repaired.