Tweak the shell scripting for descending into and building subdirs.
authorBrian <brian@yutani.localnet.net>
Wed, 9 May 2007 22:22:53 +0000 (16:22 -0600)
committerBrian <brian@yutani.localnet.net>
Wed, 9 May 2007 22:23:11 +0000 (16:23 -0600)
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!

Makefile
progs/Makefile
src/Makefile
src/mesa/drivers/dri/Makefile

index 88b6b79..4984e4d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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
index d5ec17d..5e705ef 100644 (file)
@@ -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
index f52a06a..f93987e 100644 (file)
@@ -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
index 1db878b..4abcc16 100644 (file)
@@ -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