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 () {
- 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
+ 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 () {
}
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 () {