Короткий и простой вопрос, но у меня, кажется, здесь есть блок писателя:
Предположим, у меня есть файл исходного кода в том же каталоге, что и make-файл, который я использую для сборки программы:
confus@confusion:~/prog$ ls
binaries includes main.c Makefile
Как мне заставить make положить файлы для моего main.c
в binaries
dir? После этого при втором запуске make должен увидеть, обновлен ли бинарный файл (и не компилировать его снова), как обычно.
Моя мысль была примерно такой:
# Makefile
.PHONY: all
SOURCES := $(wildcard *.c)
TARGETS := $(subst %.c,binaries/%.o,$(SOURCES))
all:$(TARGETS)
$(TARGETS):$(SOURCES)
./compile "$(subst .o,.c,$(@F))" -o "$@"