]> gitweb @ CieloNegro.org - autobuild.git/blobdiff - src/main.bash
new subcommand: autogen
[autobuild.git] / src / main.bash
index b59aa3c0d021e2b1d06ab5ccc1b855a196aab194..d9663fed75c1a919b95007d88655b3aeee9b562e 100644 (file)
@@ -1,5 +1,9 @@
 function runMake () {
-    run gmake -w -j $(detectNumCPUs) $@
+    run gmake -w -j $(detectNumCPUs) "$@"
+}
+
+function autogen () {
+    run autoreconf -v -i -f
 }
 
 function configure () {
@@ -9,13 +13,13 @@ function configure () {
     fi
 
     if [[ ! -f configure ]]; then
-        run autoreconf -v -i -f
+        autogen
     fi
 
     if [[ ! -f "_build/Makefile" ]]; then
         run mkdir -p _build
         run pushd _build
-        run ../configure "${configArgs[@]}"
+        run ../configure --prefix="$prefix" "${configArgs[@]}"
         run popd
     fi
 }
@@ -44,9 +48,14 @@ function dist () {
     runMake -C "_build" dist
 }
 
+function distcheck () {
+    configure
+    runMake -C "_build" distcheck DISTCHECK_CONFIGURE_FLAGS="${configArgs[*]}"
+}
+
 function install () {
     build
-    runMake -C "_build" install "$0"
+    runMake -C "_build" install "$@"
 }
 
 function usage () {
@@ -54,18 +63,22 @@ function usage () {
 Usage: $0 [COMMAND]
 
 This is an automation script designed to work with autotools. It creates a
-directory "./_build" and builds any files inside it.
+directory "./_build" and builds any files inside it. Its behaviour is
+somewhat configurable: See "./Build.rc" for details.
 
 If no COMMAND is given, it defaults to "build".
 
 Commands:
-    build          run "$0 configure" then make(1).
-    check [ARG]    run "$0 build" then "make check [ARG]".
-    configure      run autoreconf(1) and "./configure" if necessary.
+    build          run "$0 configure" then make(1)
+    check [ARG]    run "$0 build" then "make check [ARG]"
+    autogen        run autoreconf(1)
+    configure      run "$0 autogen" and "./configure" if necessary
     clean          run "rm -rf _build"
     dist           run "make dist"
-    doc            similar to "$0 build" but only build the documentation.
-    install [ARG]  run "$0 build" then "make install [ARG]".
+    distcheck      run "$0 configure" then "make distcheck"
+    doc            similar to "$0 build" but only build the documentation
+    help           print this message
+    install [ARG]  run "$0 build" then "make install [ARG]"
 
 Please report any bugs, feature requests, and pull requests (the most
 preferred!) to the maintainer presented in the preamble of the "$0" itself.
@@ -77,11 +90,14 @@ function main () {
     local cmd
     case "$1" in
         ""|"build" ) cmd="build"    ;;
+        "autogen"  ) cmd="autogen"  ;;
         "configure") cmd="configure";;
         "doc"      ) cmd="doc"      ;;
         "check"    ) cmd="check"    ;;
         "clean"    ) cmd="clean"    ;;
         "dist"     ) cmd="dist"     ;;
+        "distcheck") cmd="distcheck";;
+        "help"     ) cmd="usage"    ;;
         "install"  ) cmd="install"  ;;
         *)           cmd="usage"    ;;
     esac