bin/mdw-build: Force use of `bash' to allow file descriptors >= 10.
[profile] / bin / mdw-build
index eff2c00..0f3f7a4 100755 (executable)
@@ -77,7 +77,7 @@ default_depends () {
 }
 : ${checkout=yes} ${checkoutrev=HEAD}
 : ${build=test}
-: ${setup=yes} ${setupcmd=mdw-setup}
+: ${setup=yes} ${setupcmd=!guess}
 : ${distcheck=yes}
 : ${debian=yes}
 : ${clean=yes}
@@ -145,7 +145,7 @@ for opt; do
     checkout=*) checkout=yes checkoutrev=${opt#*=} ;;
     release)   build=release ;;
     norelease) build=test ;;
-    setup)     setup=yes setupcmd=mdw-setup ;;
+    setup)     setup=yes setupcmd=!guess ;;
     setup=*)   setup=yes setupcmd=${opt#*=} ;;
     upload)    maybe_set upload uploadpath ;;
     upload=*)  upload=yes uploadpath=${opt#*=} ;;
@@ -366,6 +366,16 @@ esac
 ## Maybe refresh the build machinery.
 case "$setup" in
   yes)
+    case $setupcmd in
+      !guess)
+       if [ -f .links ]; then setupcmd=mdw-setup
+       elif [ -x autogen.sh ]; then setupcmd=./autogen.sh
+       elif [ -x setup ]; then setupcmd=./setup
+       elif [ -f configure.ac ]; then setupcmd="autoreconf -is"
+       else setupcmd=mdw-setup
+       fi
+       ;;
+    esac
     run $setupcmd
     ;;
 esac
@@ -396,7 +406,7 @@ esac
 cat >find-distdir.mk <<'EOF'
 include Makefile
 print-distdir:
-       @echo >&$(fd) $(distdir)
+       @bash -c 'echo >&$(fd) $(distdir)'
 EOF
 assign distdir \
   $({ $make -f find-distdir.mk print-distdir fd=$t >/dev/null 2>&1; } {t}>&1)