Make Basics

Naming

Automatic Variables

Direct variables: Modified variables: Source: gnu.org

Force Execution

When having targets which e.g. run the application, you want to have it performed on every call, independent if the dependencies have changed or not. For this you can introduce a FORCE target:
run: $(TARGET) FORCE
        ./$< | ts %.s

FORCE:

Recipes

see https://www.gnu.org/software/make/manual/make.html#Recipes

Implicit Rules

https://www.gnu.org/software/make/manual/html_node/Implicit-Rules.html#Implicit-Rules