Сделать правило вывода для файлов в папке
Я использую GNU make, я хочу, чтобы мои исходные и объектные файлы находились в разных папках.
В качестве первого шага я хочу, чтобы исходные файлы были в корне папки моего проекта, а объектные файлы - в подпапке (скажем, Debug/
).
Правило вывода будет следующим:
.ss.obj:
echo Assembling $*.ss...
$(ASSEMBLY) $(2210_ASSEMBLY_FLAGS) $*.ss -o Debug\$*.obj
но в этом случае make все время перестраивает все файлы, поскольку в корневой папке нет.obj.
Есть ли способ включить папку для цели в строку .ss.obj
?
Я также попробовал:
$(OBJS_WITH_PATH):$(SRC)
echo Assembling $<...
$(ASSEMBLY) $(ASSEMBLY_FLAGS) $< -o $@
с $(SRC)
как список всех моих источников, $(OBJS_WITH_PATH)
построен таким образом:
OBJS_WITH_PATH = $(patsubst %.ss,Debug\\%.obj,$(SRC))
но это создает зависимость от всех исходных файлов для всех объектных файлов.
Я хотел бы изменить правило вывода, которое я написал первым, чтобы Debug/*.obj
файлы. Что это говорит сейчас no rule to make target Debug/asdfasdf.obj
,
1 ответ
Решение