Пишу makefile. Надо компилить два набора исходников (ARM и THUMB). Уже выкинул все, сейчас файл выглядит так:
Код
TARGET = arm-elf-
CC = $(TARGET)gcc
AS = $(TARGET)gcc -x assembler-with-cpp
SRC_ARM = ./Src/crt.s
OBJ_ARM = $(SRC_ARM:.s=.o)
# makefile rules
all: $(OBJ_ARM)
$(OBJ_ARM) : %.o : %.c
$(CC) -c $< -o $@
$(OBJ_ARM) : %.o : %.cpp
$(CC) -c $< -o $@
$(OBJ_ARM) : %.o : %.s
$(AS) -c $< -o $@
При запуске make получаю кучу варнингов:
Цитата
makefile:17: warning: overriding commands for target `Src/crt.o'
makefile:14: warning: ignoring old commands for target `Src/crt.o'
makefile:20: warning: overriding commands for target `Src/crt.o'
makefile:17: warning: ignoring old commands for target `Src/crt.o'
make.exe: *** No rule to make target `Src/crt.c', needed by `Src/crt.o'. Stop.
Смотрю в качестве примера makefile от FreeRTOS, там все работает. Голову сломал - где у меня ошибка? Если убрать $(OBJ_ARM) :, то все работает, но мне надо именно с ней, ибо потом будут еще и $(OBJ_THUMB) :