Узнайте больше о GNU make и найдите время, чтобы прочитать документацию .
Ваше присвоение переменной
SOURCES=$ main.c inc/prog_lib.c
неверно.Это должно быть
SOURCES= main.c prog_lib.c
Возможно, вам также понадобится (лучше попросить -g
, чтобы упростить отладку с помощью gdb
)
CFLAGS= -O0 -c -Wall -g -mavx2 -mfma -Iinc
Попробуйте также make -p
понимать встроенные правила.Вы должны использовать их лучше (и тогда использование -c
в вашем CFLAGS
, вероятно, неправильно).
Подумайте об использовании римейка , возможно, как remake -x
, для отладки вашего Makefile
;или, по крайней мере, make --trace
.
Кстати, я считаю, что ваша файловая иерархия слишком сложна и неуместна.Для такого простого и небольшого проекта, каталог inc/
не стоит боли.
Для вдохновения изучите Makefile
некоторых существующих свободных программ , например, на GitHub .