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 88b6b79979d467c92abafd0f9f3998dd8f9532b4..4984e4dceb76d5cdb9d5d4714a14d5be0619817e 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 d5ec17d43e51fd49fd2c31f7874cea05e0a32fab..5e705efa7eee2edc7d5706f35eac3062d48d0326 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 f52a06a3c967178962c6824831190d0591c49eb6..f93987e6880b8c0e999946e90e24d97c0c3d9e7d 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 1db878bab70d03e551b098f87aa1f824e181456c..4abcc16c1bcd0efd5ff2bb397d4caf6f0a0439c1 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