]> gitweb @ CieloNegro.org - build-hc-pkg.git/blobdiff - build-hc-pkg
say_hello: honor $0
[build-hc-pkg.git] / build-hc-pkg
index 51b56f19d3e7d9f11c5999cf1461a31a284ce132..c70fb5db8a3698057f8d132e1bb254a577db4b32 100755 (executable)
@@ -4,24 +4,19 @@ set -e
 function detect_platform_type () {
     local -r canon_name="canon-name/src/canon-name"
 
-    if [[ ! -x "$canon_name" ]]; then
-        gmake -f mk/canon-name.mk
+    if ! gmake --question --file="mk/canon-name.mk" >/dev/null 2>&1; then
+        gmake --file="mk/canon-name.mk" >&2
     fi
 
     "$canon_name"
 }
 
 function detect_number_of_cpus () {
-    case "$(detect_platform_type)" in
-        *-*-darwin)
-            ioreg -r -c IOCPU | fgrep -c IOCPUNumber
-            ;;
-        *)
-            echo "WARNING: I don't know how to detect the number of processors on this platform." >&2
-            echo "WARNING: GHC will be built using only 1 processor. Expect some slowdown." >&2
-            echo 1
-            ;;
-    esac
+    if ! sysctl -n hw.ncpu; then
+        echo "WARNING: I don't know how to detect the number of processors on this platform." >&2
+        echo "WARNING: GHC will be built using only 1 processor. Expect some slowdown." >&2
+        echo 1
+    fi
 }
 
 function detect_gnu_tar () {
@@ -38,7 +33,13 @@ function detect_gnu_tar () {
 function say_hello () {
     local -r platform=$(detect_platform_type)
     local -r n_cpus=$(detect_number_of_cpus)
-    echo "This is build-hc-pkg, running on $platform with $n_cpus processors."
+
+    echo -n "This is "$(basename "$0")", running on $platform with $n_cpus "
+    if (( $n_cpus == 1 )); then
+        echo "processor."
+    else
+        echo "processors."
+    fi
 }
 
 function srcpath () {