make: иерархический файл make
(отказ от ответственности: я привык к булочкам ... я немного неопытен с make)
Контекст: я использую Eclipse CDT, который генерирует make-файлы.
Позволять'говорят, у меня есть каталог проектаLib» и 2 сборки конфигурации "Debug» а также 'Релиз', Eclipse CDT изящно генерирует make-файл для каждой конфигурации сборки. Указанные make-файлы в конечном итоге находятся вDebug» а также 'Релиз' папки.
Теперь я хочу сделать make-файл в папкеLib» которыйзвонки make-файлыDebug / Makefile» а также 'Выпуск / Makefile».
Как я могу это сделать?
Я хочу иметь возможность запуститьделать' в папкеLib» и обе конфигурации будут вызываться с указанными целями.
Решение Основываясь на собранном здесь замечательном материале, я разработал следующее:
MAKE=make
BUILDS=Release Debug
TARGETS=all clean
$(TARGETS):
@for b in $(BUILDS) ; do $(MAKE) -C $b $@ ; done
$(BUILDS):
@for t in $(TARGETS) ; do $(MAKE) -C $@ $t ; done
%:
@for b in $(BUILDS) ; do $(MAKE) -C $b $@ ; done