]> gitweb @ CieloNegro.org - build-hc-pkg.git/blobdiff - build-hc-pkg
build-hc-pkg: cosmetic changes
[build-hc-pkg.git] / build-hc-pkg
index 51b56f19d3e7d9f11c5999cf1461a31a284ce132..868039eb12fdf73432dd9042d2e61be04e0464c2 100755 (executable)
@@ -4,24 +4,25 @@ 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" 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 () {
@@ -36,9 +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 () {