diff options
author | Brian <brian@yutani.localnet.net> | 2007-05-09 16:22:53 -0600 |
---|---|---|
committer | Brian <brian@yutani.localnet.net> | 2007-05-09 16:23:11 -0600 |
commit | 16c503f39a05726f3e994e42cb1c03e0a308b80d (patch) | |
tree | 1603daefea6ba5c115a4a4fed027e2838df4a153 | |
parent | 4d5d4e1f97bf8d5c55ef817f7a28f920accc151b (diff) |
Tweak the shell scripting for descending into and building subdirs.
In general, use this:
@for dir in $(SUBDIRS) ; do \
if [ -d $$dir ] ; then \
(cd $$dir && $(MAKE)) || exit 1; \
fi \
done
Basically, silently skip missing subdirs but generate an error and stop if
there's a compilation or install problem.
This was done inconsistantly before. In once case, a missing subdir was
causing us to go into an infinte loop!
-rw-r--r-- | Makefile | 13 | ||||
-rw-r--r-- | progs/Makefile | 4 | ||||
-rw-r--r-- | src/Makefile | 6 | ||||
-rw-r--r-- | src/mesa/drivers/dri/Makefile | 14 |
4 files changed, 24 insertions, 13 deletions
@@ -7,7 +7,9 @@ SUBDIRS = src progs default: $(TOP)/configs/current @for dir in $(SUBDIRS) ; do \ - (cd $$dir ; $(MAKE)) || exit 1 ; \ + if [ -d $$dir ] ; then \ + (cd $$dir && $(MAKE)) || exit 1 ; \ + fi \ done @@ -16,7 +18,9 @@ doxygen: clean: @for dir in $(SUBDIRS) ; do \ - (cd $$dir ; $(MAKE) clean) ; \ + if [ -d $$dir ] ; then \ + (cd $$dir && $(MAKE) clean) ; \ + fi \ done @@ -34,9 +38,12 @@ realclean: install: @for dir in $(SUBDIRS) ; do \ - (cd $$dir ; $(MAKE) install) || exit 1 ; \ + if [ -d $$dir ] ; then \ + (cd $$dir && $(MAKE) install) || exit 1 ; \ + fi \ done + # DirectFBGL module installation linux-directfb-install: cd src/mesa/drivers/directfb && $(MAKE) install diff --git a/progs/Makefile b/progs/Makefile index d5ec17d43e..5e705efa7e 100644 --- a/progs/Makefile +++ b/progs/Makefile @@ -17,7 +17,7 @@ message: subdirs: @for dir in $(SUBDIRS) ; do \ if [ -d $$dir ] ; then \ - (cd $$dir ; $(MAKE)) || exit 1 ; \ + (cd $$dir && $(MAKE)) || exit 1 ; \ fi \ done @@ -27,6 +27,6 @@ install: clean: @for dir in $(SUBDIRS) tests ; do \ if [ -d $$dir ] ; then \ - (cd $$dir ; $(MAKE) clean) ; \ + (cd $$dir && $(MAKE) clean) ; \ fi \ done diff --git a/src/Makefile b/src/Makefile index f52a06a3c9..f93987e688 100644 --- a/src/Makefile +++ b/src/Makefile @@ -17,14 +17,14 @@ message: subdirs: @for dir in $(SUBDIRS) ; do \ if [ -d $$dir ] ; then \ - (cd $$dir ; $(MAKE)) || exit 1 ; \ + (cd $$dir && $(MAKE)) || exit 1; \ fi \ done install: @for dir in $(SUBDIRS) ; do \ if [ -d $$dir ] ; then \ - (cd $$dir ; $(MAKE) install) || exit 1 ; \ + (cd $$dir && $(MAKE) install) || exit 1 ; \ fi \ done @@ -35,6 +35,6 @@ $(TOP)/$(LIB_DIR): clean: @for dir in $(SUBDIRS) ; do \ if [ -d $$dir ] ; then \ - (cd $$dir ; $(MAKE) clean) ; \ + (cd $$dir && $(MAKE) clean) ; \ fi \ done diff --git a/src/mesa/drivers/dri/Makefile b/src/mesa/drivers/dri/Makefile index 1db878bab7..4abcc16c1b 100644 --- a/src/mesa/drivers/dri/Makefile +++ b/src/mesa/drivers/dri/Makefile @@ -14,21 +14,25 @@ $(TOP)/$(LIB_DIR): subdirs: - echo $(DRI_DIRS) @for dir in $(DRI_DIRS) ; do \ - echo $$dir ; \ - (cd $$dir && $(MAKE)) || exit 1; \ + if [ -d $$dir ] ; then \ + (cd $$dir && $(MAKE)) || exit 1 ; \ + fi \ done install: @for dir in $(DRI_DIRS) ; do \ - (cd $$dir && $(MAKE) install) || exit 1; \ + if [ -d $$dir ] ; then \ + (cd $$dir && $(MAKE) install) || exit 1 ; \ + fi \ done clean: @for dir in $(DRI_DIRS) ; do \ - (cd $$dir && $(MAKE) clean) ; \ + if [ -d $$dir ] ; then \ + (cd $$dir && $(MAKE) clean ; \ + fi \ done -rm -f common/*.o |