}
function detect_number_of_cpus () {
- if ! sysctl -n hw.ncpu; then
+ 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_sed () {
+ if which gsed >/dev/null 2>&1; then
+ echo "gsed"
+ elif sed --version | grep -qF GNU; then
+ echo "sed"
+ else
+ echo "We need GNU sed to be installed." >&2
+ exit 1
+ fi
+}
+
function say_hello () {
+ local -r self=$(basename "$0")
local -r platform=$(detect_platform_type)
local -r n_cpus=$(detect_number_of_cpus)
- echo -n "This is build-hc-pkg, running on $platform with $n_cpus "
+ echo -n "This is $self, running on $platform with $n_cpus "
if (( $n_cpus == 1 )); then
echo "processor."
else
SRCPATH="$srcpath" \
PLATFORM="$(detect_platform_type)" \
GNUTAR="$(detect_gnu_tar)" \
+ GNUSED="$(detect_gnu_sed)" \
SHELL="$SHELL"
echo "If you are done, run \"$0 clean\" to cleanup the working directory."