Make and Makefile
Make
make is a automation tool that helps we to executing commands in a more organized way. It is used to compile and build large projects, but it can be used for any task that requires executing a series of commands.
Its usefull when we have a project with multiple files and we need to compile them in a specific order. Instead of compiling each file manually, we can use make to automate the process.
Usage
make [target]
# passing a Makefile
make -f /foo/bar/Makefile [target]
Makefile
A Makefile is a file that contains a set of rules used by make.
Syntax
target: dependencies
command
target: The name of the target to be executed.dependencies: The files or targets that the target depends on. If any of the dependencies are newer than the target, the command will be executed.command: The command to be executed.
Example
hello: hello.c
gcc -o hello hello.c
In this example, we have a target called hello that depends on the file hello.c. The command gcc -o hello hello.c is executed to compile the hello.c file.
Variables
Variables can be defined in a Makefile to store values that can be reused throughout the file.
CC = gcc
CFLAGS = -Wall -Wextra
PATH += /usr/local/bin # append to PATH
hello: hello.c
$(CC) $(CFLAGS) -o hello hello.c