Makefileに
CC = gcc
と書いて、利用するコンパイラを指定することができました。 これは、makeがCコンパイラ名として、CCという変数(マクロ)に代入された文字列を利用するという性質を利用しているのです。
CCやCFLAGSやLOADLIBES以外に、ユーザーがマクロを定義して使うこともできます。
OBJS = mycat.o getline.o copy.o
mycat: $(OBJS)
このように書けば、OBJSというマクロに"mycat.o getline.o copy.o"という文字列が代入されます。 さらに、ターゲットmycatのソースに$(OBJS)と書いてマクロを参照しています。 つまり、これは
mycat: mycat.o getline.o copy.o
と書くのと全く同等です。
マクロを利用すれば同じ事を何度も書かなくてすみます。