Мой make-файл определяет команду ссылки:
prod_link = $(LINK) $(LINK_FLAGS) -o$(PROD_OUT) $(PROD_OBJS)
, где $(PROD_OBJS)
- список объектных файлов в форме:
PROD_OBJS = objfile1.obj objfile2.obj objfile3.obj ... objfileN.obj
Теперь сам make-файл находится в корневом каталоге.моего каталога проекта.Грязно иметь объект и перечислять файлы в корне, я хотел бы поместить их в подпапку.
Работает сборка и вывод файлов obj в подпапку, я делаю это с суффиксами и логическим выводом:
.s.obj:
$(ASSEMBLY) $(FLAGS) $*.s -o Objects\$*.obj
Проблема состоит в том, чтобы передать папку Objects
в команду ссылки.
Я попытался:
prod_link = $(LINK) $(LINK_FLAGS) -o$(PROD_OUT) Objects\$(PROD_OBJS)
, но только первый файл всписок объектных файлов получает имя папки.
Как передать подпапку Objects
во все файлы моего списка $(PROD_OBJS)
?
РЕДАКТИРОВАТЬ
Я также пытался
PROD_OBJS = $(patsubst %.ss,Object\%.obj, $(PROD_SRC))
, но получил:
makefile(51) : fatal error U1000: syntax error : ')' missing in macro invocation
Stop.
Это довольно странно ...