Set defaults for `awk` and `egrep`, instead of
setting things multiple times when specializing on
OS, and using a default in a `case` statement.
This is cleaner and less error-prone.
Introduce a new variable set in $PLAN9/config:
$egrep, which is conditionally set to either
`egrep` or `grep -E`, based on platform, and use
this when we want to invoke `egrep`.
This works around the endless warnings from GNU
grep stating that `egrep` is deprecated in favor
of `grep -E`, when run on e.g. Linux.
If there is any x86 binary in the chain of parent processes from
the current one, then uname -m prints x86_64 and clang
defaults to building x86_64 binaries.
Detect arm64 using the kernel version and force building
an arm64 toolchain instead of perpetuating x86.
This is particularly important when the user shell is rc,
which has been built for x86, because then rebuilding
under rc continues to use x86.
Now that we assume pthreads, the only assembly
left is in libmp and libsec.
We only ever added assembly for 386.
The portable C code is fine for plan9port.
If mk gets into a bad state, it's not obvious that you can
remove the binary to force the rebuild. Also, not rebuilding
means that bugs in mkmk.sh are not noticed.
Just rebuild from scratch every time. It doesn't take too long
compared to the rest of INSTALL.
My MacBook Pro has hw.ncpu=12, so set NPROC=12.
Speeds up INSTALL dramatically.
Should probably add similar code to other OSes.
Also silence rio warning from earlier commit.
Using plain 'clang' does not work well for the new devdraw on macOS 10.14.
But 'xcrun --sdk macosx clang' does work, for reasons no one understands.
Hopefully this will be OK on all macOS systems.
They'll be copied back during installation
but then hg doesn't have to create those files
on systems that have trouble with them.
TBR=rsc
https://codereview.appspot.com/105800043