chiark / gitweb /
el/dot-emacs.el (mdw-fontify-rust): Fix integer literal syntax.
[profile] / bin / mdw-build
index 572aa755b1e9dc254710f6c2534c3a30402c9129..2bb7bb1c1fbd6f2a93a02e254d6e87c4a54f3ded 100755 (executable)
@@ -59,6 +59,7 @@ set -e
 unset checkout checkoutrev
 unset setup setupcmd
 unset sign signkey
+unset sbuild sbuildsrv
 unset upload uploadpath
 unset dput dputtarget
 unset build distcheck debian clean vpath native
@@ -82,6 +83,7 @@ default_depends () {
 : ${clean=yes}
 : ${vpath=yes}
 : ${native=yes}
+default_depends sbuild sbuildsrv
 default_depends sign signkey
 default_depends upload uploadpath
 default_depends dput dputtarget
@@ -94,7 +96,7 @@ prog=${0##*/}
 
 usage () {
   cat <<EOF
-Usage: $prog [-vr] BUILDOPT
+Usage: $prog [-v] BUILDOPT
 
 Build options:
 
@@ -107,6 +109,7 @@ Build options:
   [no]dput[=TARGET]
   [no]clean
   [no]vpath
+  [no]sbuild[=SERVER]
   [no]sign[=KEYID]
   [no]native
 EOF
@@ -114,7 +117,7 @@ EOF
 
 ## Parse simple options.
 verbose=no
-while getopts "hvr" opt; do
+while getopts "hv" opt; do
   case "$opt" in
     h) usage; exit 0 ;;
     v) verbose=yes ;;
@@ -144,6 +147,8 @@ for opt; do
     upload=*)  upload=yes uploadpath=${opt#*=} ;;
     sign)      maybe_set sign signkey ;;
     sign=*)    sign=yes signkey=${opt#*=} ;;
+    sbuild)    maybe_set sbuild sbuildsrv ;;
+    sbuild=*)  sbuild=yes sbuildsrv=${opt#*=} ;;
     dput)      maybe_set dput dputtarget ;;
     dput=*)    dput=yes dputtarget=${opt#*=} ;;
 
@@ -151,7 +156,7 @@ for opt; do
       eval "$opt=yes"
       ;;
     nocheckout | nosetup | nodistcheck | nodebian | \
-    noupload | nodput | noclean | novpath | nonative | nosign)
+    noupload | nodput | noclean | novpath | nonative | nosbuild | nosign)
       eval "${opt#no}=no"
       ;;
     *)
@@ -236,7 +241,8 @@ while [ ! -f configure.ac -a ! -f configure.in -a \
   esac
   cd ..
 done
-assign srcpath $(pwd)
+assign toppath $(pwd)
+assign srcpath $toppath
 
 ## Build any necessary qualifiers.
 qual= sep=.
@@ -400,8 +406,20 @@ EOF
        mv debian/changelog.new debian/changelog
        ;;
     esac
-    case $build,$sign in
-      release,yes) run dpkg-buildpackage -k$signkey ;;
+    sbuildargs=$sbuildsrv
+    case $sbuild,$build in
+      yes,release)
+       case $sign in yes) sbuildargs="-k$signkey $sbuildargs" ;; esac
+       ;;
+      yes,*)
+       if [ -d $toppath/dist-$build.pkgs ]; then
+         sbuildargs="-p$toppath/dist-$build.pkgs $sbuildargs"
+       fi
+       ;;
+    esac
+    case $sbuild,$build,$sign in
+      yes,*) run mdw-sbuild $sbuildargs ;;
+      no,release,yes) run dpkg-buildpackage -k$signkey ;;
       no,*) run dpkg-buildpackage -us -uc ;;
     esac
     ;;