makefile имеет очень тупое отношение к вкладкам, все действия каждого правила идентифицируются с помощью вкладок ...... и No 4 пробелов не делают вкладку, только вкладка делает вкладку ...
, чтобы проверить, что я использую команду cat -e -t -v makefile_name
, она показывает, что наличие вкладок с символами ^ I и окончания строк с помощью $ оба являются жизненно важными, чтобы гарантировать, что зависимости заканчиваются должным образом, а вкладки отмечают действие для правил, поэтому что они легко идентифицируются с помощью утилиты make .....
example:
Kaizen ~/so_test $ cat -e -t -v mk.t
all:ll$ ## here the $ is end of line ...
$
ll:ll.c $
^Igcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<$
## the ^I above means a tab was there before the action part, so this line is ok .
$
clean :$
\rm -fr ll$
## see here there is no ^I which means , tab is not present ....
## in this case you need to open the file again and edit/ensure a tab
## starts the action part
надеюсь, что это поможет !!