Ну, да, но ваш вопрос не совсем правильный.
Make хорош в поиске вещей там и использовании их для создания вещей здесь , ноА не наоборот.VPATH и vpath сообщают make, где искать то, что им нужно, но нет соответствующей директивы для размещения вещей, которые он делает, где-то, кроме текущего каталога.
Если вы хотите, чтобы ваши объектные файлы (OBJECTS = ant.o bee.o) чтобы перейти в другой каталог, например $ (OBJDIR), есть три основных способа сделать это.
- Создайте их здесь и переместите вручную (этот почти наверняка поможет вамв беде):
$(OBJECTS): %.o: %.c
gcc -c $< -o $@
mv $@ $(OBJDIR)
или, что то же самое, отправляйтесь туда и постройте их:
$(OBJECTS): %.o: %.c
cd $(OBJDIR) ; gcc -c $< -o $@
- Укажите путь и постройте их на месте (вероятно, лучший для новичка):
FULLOBJECTS = $(addprefix $(OBJDIR)/,$(OBJECTS))
$(FULLOBJECTS): $(OBJDIR)/%.o: %.c
gcc -c $< -o $@
- Call Make там (мощный(но очень сложно):
$(OBJECTS):
$(MAKE) -C $(OBJDIR) $@