В связи с тем, что использовать cmake для разработки под STM32 — занятие крайне геморройное, пишу Makefile вручную.
Нагуглив кучу мануалов и перелистав все info make, упростил задачу конфигурирования Makefile'а под новые проекты. Однако, осталась там некрасивая штука:
$(OBJDIR):
mkdir $(OBJDIR)
$(OBJDIR)/%.o: $(STLIBDIR)/%.c
$(CC) $(CFLAGS) $< -o $@
$(OBJDIR)/system_stm32f10x.o: ./cmsis/system_stm32f10x.c
$(CC) $(CFLAGS) $< -o $@
$(OBJDIR)/startup.o: ./cmsis/startup_stm32f10x_md.s
$(AS) $(ASFLAGS) ./cmsis/startup_stm32f10x_md.s -o $(OBJDIR)/startup.o
$(OBJDIR)/%.o: %.c
$(CC) $(CFLAGS) $< -o $@
$(OBJDIR)/%.o: $(USB_LIBDIR)/%.c
$(CC) $(CFLAGS) $< -o $@
— куча целей с по сути одинаковыми действиями.
А нельзя ли сделать просто: имеем два списка $(OBJ) и $(SRC), и каким-то чудным образом пишем
$(OBJ): $(SRC)
$(CC) $(CFLAGS) $< -o $@
А еще такой вопросец: зависимость от заголовочных файлов я тоже через жопу сделал:
$(ALL_SRC) : %.c : %.h $(INDEPENDENT_HEADERS)
@touch $@
-------------------------------------------------------------
Товарищи модераторы, тема в Talks, ибо реально руки у меня из жопы, а воли — 0. Ну не осилил я cmake для микроконтроллера!
P.S. Обнаружил баг в своем скрипте для засаленной обезьяны: нет панельки при редактировании тем. Исправляю.