]> gitweb @ CieloNegro.org - build-hc-pkg.git/blobdiff - build-hc-pkg
build-hc-pkg: cosmetic changes
[build-hc-pkg.git] / build-hc-pkg
index 14ef15e5ade04e1f67f5fea489476bcd65e9722d..868039eb12fdf73432dd9042d2e61be04e0464c2 100755 (executable)
@@ -12,21 +12,17 @@ function detect_platform_type () {
 }
 
 function detect_number_of_cpus () {
-    local -r platform=$(detect_platform_type)
-
-    case "$platform" in
-        *-*-darwin*)
-            ioreg -r -c IOCPU | fgrep -c \"IOCPUNumber\"
-            ;;
-        *-*-netbsd*)
-            cat /proc/cpuinfo | grep -cE 'processor[[:space:]]*:'
-            ;;
-        *)
-            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" 2>/dev/null; then
+        # This works for most BSDs.
+        :
+    elif grep -qF processor /proc/cpuinfo 2>/dev/null; then
+        # Linux sucks...
+        grep -cF processor /proc/cpuinfo
+    else
+        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 () {
@@ -41,10 +37,16 @@ function detect_gnu_tar () {
 }
 
 function say_hello () {
+    local -r self=$(basename "$0")
     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 $self, running on $platform with $n_cpus "
+    if (( $n_cpus == 1 )); then
+        echo "processor."
+    else
+        echo "processors."
+    fi
 }
 
 function srcpath () {