Созданный вами make-файл был искажен путём объединения нескольких строк в одну. Я думаю, что это именно то, что вы на самом деле пытаетесь использовать, а не просто артефакт размещения здесь вопроса, потому что это согласуется с сообщением об ошибке, о котором вы сообщаете. Похоже, что предполагаемая, не свернутая форма будет такой:
all: clean
flex scanner.flex
bison -d parser.ypp
g++ -o hw3 *.c *.cpp
clean:
rm -f lex.yy.c
rm -f parser.tab.*pp
rm -f hw3
Обратите внимание, что отступ - это табуляция, а не пробелы. Это имеет значение для make
.