Для моих проектов на C / C ++ я использую другой тип шаблона для моего Makefile, но вот как будет выглядеть шаблон для вашего случая
SRC1 = main1.c \
other.c
OBJ1 = $(SRC1:.c=.o)
NAME1 = executableName1
SRC2 = main2.c \
other.c
OBJ2 = $(SRC2:.c=.o)
NAME2 = executableName2
all: $(NAME1) $(NAME2)
$(NAME1): $(OBJ1)
gcc -o $(NAME1) $(OBJ1)
$(NAME2): $(OBJ2)
gcc -o $(NAME2) $(OBJ2)
clean:
rm -Rf $(OBJ1)
rm -Rf $(OBJ2)
fclean: clean
rm -Rf $(NAME1)
rm -Rf $(NAME2)
re: fclean all
.PHONY: all clean fclean re
Как видите, я не использую *.c, потому что таким образом у меня мог быть весь мой исходный код в одной папке без компиляции файлов, которые я не хочу для каждого исполняемого файла.Используя этот Makefile, вы можете создавать оба исполняемых файла, вызывая «make» или «make all», и вы можете создавать каждый исполняемый файл отдельно, вызывая «make executetableName1» и «make executetableName2».Если вы хотите сохранить свой шаблон таким, какой он есть, я предлагаю вам немного изучить Makefile, чтобы понять оба шаблона и посмотреть, как их объединить;)