2013-07-05 3 views
0

У меня есть структура каталогов, таких как:вызовов делают во всех подкаталогах

home 
|-- folder1 
    |-- Makefile 
    |-- code1.cpp 
|-- folder2 
    |-- Makefile 
    |-- code2.cpp 
|-- many more folders with Makefile and code inside 
. 
. 

Я хочу, чтобы позвонить сделать все папки. Как мне это сделать? Благодаря!

+3

'найти/дом типа d -exec сделать ... {} \;'? – fedorqui

+1

@ Предложение fedorqui превосходно, но вы, вероятно, хотите использовать «Makefile» верхнего уровня (особенно, если это связанный проект). – devnull

+0

Извините, я действительно не понимаю вас. Не могли бы вы уточнить? –

ответ

3

См Eldar Abusalimov's answer:

SUBDIRS := $(wildcard */.) 

.PHONY : all $(SUBDIRS) 
all : $(SUBDIRS) 

$(SUBDIRS) : 
    $(MAKE) -C [email protected] 
+0

Это также сохраняет любой параллелизм, который у вас может быть (это '-jn' friendly). ['*/Makefile' может быть лучшим подстановочным знаком BTW] – bobbogo

Смежные вопросы