Похоже, вы пытаетесь запустить make-файл как обычный скрипт. Попробуйте
$ make
или
$ make -f mymakefilename
если вы назвали файл чем-то иным, чем «makefile» или «Makefile».
Вы можете потенциально просто выполнить make-файл, но если это так, вам нужна строка "shebang", что-то вроде
#!/usr/bin/make
вверху файла, но, откровенно говоря, вряд ли кто-то использует эту опцию. Просто используйте команду make (1) .
Обновление
Это потому, что они в неправильном порядке. Makefiles обрабатывает (по умолчанию) первую цель в файле. Когда вы запускаете make, он видит правило для создания q.o
из q.f
, компилирует его и говорит: «Хорошо, я закончил».
Если сначала поставить цель q.exe
, она говорит: «Хммм, я хочу собрать q.exe и для этого мне нужно qo. У меня есть qo? Нет? Хорошо, тогда я построю qo У меня есть правило для этого - я могу построить qo из qf Хорошо, все готово. Теперь я могу собрать q.exe? О, да, я могу. Я соберу q.exe. Что-нибудь? Нет, я сделано. "
Если бы вы использовали Commend
$ make q.exe
тогда вы явно скажете make to make q.exe, что приведет к тому же самому, но лучше переупорядочить ваш make-файл и привыкнуть к его работе.