By default, the goal is the first target in the makefile (not counting targets that start with a period). Therefore, makefiles are usually written so that the first target is for compiling the entire program or programs they describe.

.PHONY: run
    go run main.go

.PHONY: install
    go mod download


Makefile Tutorial by Example. Nice tutorial for make emphasizing original C/C++ use-case.

Creating a Golang Makefile. Example of a Makefile for go.

fx/Makefile. Makefile for go injection framework used at Uber. Not sure why this was on the first page of my Google search results.

GNU make. The manual!