Currently xcb/util is the first package to use a git submodule.
When cloning, the script will init and update the submodule.
Older versions of git do not have --recursive option for git clone.

When using -p (pull rebase), the script will update the submodule.

Signed-off-by: Gaetan Nadon <mems...@videotron.ca>
---
 build.sh |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/build.sh b/build.sh
index 0a20a4d..b2d124b 100755
--- a/build.sh
+++ b/build.sh
@@ -309,6 +309,27 @@ clone() {
             clonefailed_components="$clonefailed_components $module/$component"
             return 1
         fi
+       old_pwd=`pwd`
+       cd $DIR
+       if [ $? -ne 0 ]; then
+            echo "Failed to cd to $module module component $component. 
Ignoring."
+            clonefailed_components="$clonefailed_components $module/$component"
+            return 1
+       return 1
+       fi
+       git submodule init
+        if [ $? -ne 0 ]; then
+            echo "Failed to initialize $module module component $component 
submodule. Ignoring."
+            clonefailed_components="$clonefailed_components $module/$component"
+            return 1
+        fi
+       git submodule update
+        if [ $? -ne 0 ]; then
+            echo "Failed to update $module module component $component 
submodule. Ignoring."
+            clonefailed_components="$clonefailed_components $module/$component"
+            return 1
+        fi
+       cd ${old_pwd}
     else
         echo "git cannot clone into an existing directory $module/$component"
        return 1
@@ -390,6 +411,12 @@ process() {
            cd $old_pwd
            return 1
        fi
+       # The parent module knows which commit the submodule should be at
+       git submodule update
+        if [ $? -ne 0 ]; then
+           failed "git submodule update" $module $component
+            return 1
+        fi
     fi
 
     # Build outside source directory
-- 
1.6.0.4

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to