If you define the target .SILENT:, then make will not echo anything. It’s usually best to guard the definition, so you can easily turn it off:
ifndef VERBOSE
.SILENT:
endif
Now by default, make will print nothing, but if you run make VERBOSE=1, it will print.
Note that despite the statement in the manual claiming that .SILENT is obsolete — if properly guarded, it is generally much better (more useful and flexible) than @.