]> gitweb @ CieloNegro.org - autobuild.git/blobdiff - src/main.bash
The 'source' built-in command tries to search for the given filename in PATH when...
[autobuild.git] / src / main.bash
index 4e87e8cf8b5e8987ea7b15b0dc6a7208248a014b..4b7f67ecde80f89db2781521f325534bbc42339f 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
 }
@@ -46,12 +50,16 @@ function dist () {
 
 function distcheck () {
     configure
-    runMake -C "_build" distcheck
+    runMake -C "_build" distcheck DISTCHECK_CONFIGURE_FLAGS="${configArgs[*]}"
 }
 
 function install () {
     build
-    runMake -C "_build" install "$0"
+    runMake -C "_build" install "$@"
+}
+
+function other () {
+    runMake -C "_build" "$@"
 }
 
 function usage () {
@@ -59,19 +67,23 @@ 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 [ARGS]   run "$0 build" then "make check [ARGS]"
+    autogen        run autoreconf(1)
+    configure      run "$0 autogen" and "./configure" if necessary
     clean          run "rm -rf _build"
     dist           run "make dist"
     distcheck      run "$0 configure" then "make distcheck"
-    doc            similar to "$0 build" but only build the documentation.
-    install [ARG]  run "$0 build" then "make install [ARG]".
+    doc            similar to "$0 build" but only build the documentation
+    help           print this message
+    install [ARGS] run "$0 build" then "make install [ARGS]"
+    -- [ARGS]      run "make [ARGS]"
 
 Please report any bugs, feature requests, and pull requests (the most
 preferred!) to the maintainer presented in the preamble of the "$0" itself.
@@ -83,13 +95,16 @@ 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="other"    ;;
         *)           cmd="usage"    ;;
     esac
     if (( $# > 0 )); then