У меня есть два проекта в которых обработка происходит по сути идентичным мейкфайлом, отличаются лишь названия исполняемых файлов. Проекты находятся с разных директориях и никак не соприкасаются. Вот содержимое мейка:
CC := gcc
NAME := project_1
SRC := $(NAME).c
HEADER := $(NAME).h
all: $(NAME) test leak check style
project_1: $(SRC) $(HEADER)
$(CC) $(CFLAGS) $(SRC) -o $(NAME)
test: $(NAME)
python3 ./test.py
leak: $(NAME)
valgrind --tool=memcheck --leak-check=yes ./$(NAME)
check: $(NAME)
cppcheck --enable=all --suppress=missingIncludeSystem *.c *.h ./../common/*.*
style: $(NAME)
clang-format -style=Google -n *.c *.h
clean:
rm -rf *.o *.a
rm -f $(NAME) *.o
rebuild: clean $(NAME)
Почему в проекте 1 ошибок не возникает и make all обрабатывает все таргеты, а при запуске проекта 2 с идентичным содержимым мейкфайла, появляется ошибка:
make: *** [Makefile:15: leak] Ошибка 1
В итоге после таргета leak выполнение мейка прирывается и оставшиеся таргеты cppcheck и style не обрабатываются.
*Уже проверил несколько раз мейкфайлы копипастом и они идентичны, отличаются только названия исполняемых файлов. Пишет в ошибке про 15 строку, но там все верно (как и сказал идентично с первым проектом).