How can I order make
command in the Makefile to execute recursively in all subdirectories make
commands (defined in the Makefile in the subdirectories)?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
- Read Recursive Use of Make chapter of GNU Make manual.
- Learn Peter Miller's Recursive Make Considered Harmful article.
- ...
- PROFIT!!!
P.S. A code snippet from my answer to a different yet related question could be used as a rough approximation.
回答2:
@eldar-abusalimov, the first link you posted assumes the makefile knows what are the subfolders. This is not always true, and I guess thats what @tyranitar would like to know. In that case, such a solution can do the job: (took me some time, but I needed it too)
SHELL=/bin/bash
all:
@for a in $$(ls); do \
if [ -d $$a ]; then \
echo "processing folder $$a"; \
$(MAKE) -C $$a; \
fi; \
done;
@echo "Done!"
回答3:
I will submit here my particular solution. Suppose we have a directory with many sub-directories, all of them with its own makefile:
root-dir\
+----subdir1
+----subdir2
...
+----subdirn
then, just copy in the root-dir this Makefile:
SUBDIRS = $(shell ls -d */)
all:
for dir in $(SUBDIRS) ; do \
make -C $$dir ; \
done