Во-первых, ваши цели не должны иметь отступ. Во-вторых, убедитесь, что вы используете символы табуляции, а не пробелы для отступа.
CC=gcc
CFLAGS=-c -Wall
.PHONY: clean # There's no clean file.
hello: hello.c
$(CC) $(CFLAGS) hello.c -o hello
clean:
rm -rf *.o
Что касается вашего другого вопроса, make-файлы используются везде. Нравится вам это или нет, но научиться их поддерживать - хорошая идея. Лично мне нравится, как они волшебны. Они могут быть отличными экономителями времени. Они также могут быть ужасными временными затратами, если вам придется отлаживать сложные.