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
+ 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
esac
}
+function detect_gnu_tar () {
+ if which gnutar >/dev/null 2>&1; then
+ echo "gnutar"
+ elif which gtar >/dev/null 2>&1; then
+ echo "gtar"
+ else
+ echo "We need GNU tar to be installed." >&2
+ exit 1
+ fi
+}
+
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."
}
-f mk/main.mk \
SRCPATH="$srcpath" \
PLATFORM="$(detect_platform_type)" \
+ GNUTAR="$(detect_gnu_tar)" \
SHELL="$SHELL"
echo "If you are done, run \"$0 clean\" to cleanup the working directory."