From c149b88758e2f383a3bb0980ad25753044ed1e5d Mon Sep 17 00:00:00 2001 From: Brett Jia Date: Fri, 7 Feb 2025 15:23:49 -0500 Subject: [PATCH] cosmocc: update to allow building on MacOS --- tool/cosmocc/package.sh | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/tool/cosmocc/package.sh b/tool/cosmocc/package.sh index 9f9638277..809822fc9 100755 --- a/tool/cosmocc/package.sh +++ b/tool/cosmocc/package.sh @@ -15,17 +15,31 @@ mode() { esac } +_nproc() { + case $(uname -s) in + Darwin) sysctl -n hw.logicalcpu ;; + *) nproc ;; + esac +} + +which_make() { + case $(uname -s) in + Darwin) echo gmake ;; + *) echo make ;; +} + OUTDIR=${1:-cosmocc} APELINK=o/$(mode)/tool/build/apelink AMD64=${2:-x86_64} ARM64=${3:-aarch64} -NPROC=$(($(nproc)/2)) +NPROC=$(($(_nproc)/2)) GCCVER=14.1.0 +MAKE=$(which_make) -make -j$NPROC m= \ +$MAKE -j$NPROC m= \ $APELINK -make -j$NPROC m=$AMD64 \ +$MAKE -j$NPROC m=$AMD64 \ o/cosmocc.h.txt \ o/$AMD64/ape/ape.lds \ o/$AMD64/libc/crt/crt.o \ @@ -62,7 +76,7 @@ make -j$NPROC m=$AMD64 \ o/$AMD64/third_party/make/make.dbg \ o/$AMD64/third_party/ctags/ctags.dbg -make -j$NPROC m=$AMD64-tiny \ +$MAKE -j$NPROC m=$AMD64-tiny \ o/cosmocc.h.txt \ o/$AMD64-tiny/ape/ape.lds \ o/$AMD64-tiny/libc/crt/crt.o \ @@ -74,7 +88,7 @@ make -j$NPROC m=$AMD64-tiny \ o/$AMD64-tiny/cosmopolitan.a \ o/$AMD64-tiny/third_party/libcxx/libcxx.a \ -make -j$NPROC m=$AMD64-dbg \ +$MAKE -j$NPROC m=$AMD64-dbg \ o/cosmocc.h.txt \ o/$AMD64-dbg/ape/ape.lds \ o/$AMD64-dbg/libc/crt/crt.o \ @@ -86,7 +100,7 @@ make -j$NPROC m=$AMD64-dbg \ o/$AMD64-dbg/cosmopolitan.a \ o/$AMD64-dbg/third_party/libcxx/libcxx.a \ -make CONFIG_TARGET_ARCH= -j$NPROC m=$AMD64-optlinux \ +$MAKE CONFIG_TARGET_ARCH= -j$NPROC m=$AMD64-optlinux \ o/cosmocc.h.txt \ o/$AMD64-optlinux/ape/ape.lds \ o/$AMD64-optlinux/libc/crt/crt.o \ @@ -98,7 +112,7 @@ make CONFIG_TARGET_ARCH= -j$NPROC m=$AMD64-optlinux \ o/$AMD64-optlinux/cosmopolitan.a \ o/$AMD64-optlinux/third_party/libcxx/libcxx.a \ -make -j$NPROC m=$ARM64 \ +$MAKE -j$NPROC m=$ARM64 \ o/$ARM64/ape/ape.elf \ o/$ARM64/ape/aarch64.lds \ o/$ARM64/libc/crt/crt.o \ @@ -130,21 +144,21 @@ make -j$NPROC m=$ARM64 \ o/$ARM64/third_party/make/make.dbg \ o/$ARM64/third_party/ctags/ctags.dbg -make -j$NPROC m=$ARM64-tiny \ +$MAKE -j$NPROC m=$ARM64-tiny \ o/$ARM64-tiny/ape/ape.elf \ o/$ARM64-tiny/ape/aarch64.lds \ o/$ARM64-tiny/libc/crt/crt.o \ o/$ARM64-tiny/cosmopolitan.a \ o/$ARM64-tiny/third_party/libcxx/libcxx.a \ -make -j$NPROC m=$ARM64-dbg \ +$MAKE -j$NPROC m=$ARM64-dbg \ o/$ARM64-dbg/ape/ape.elf \ o/$ARM64-dbg/ape/aarch64.lds \ o/$ARM64-dbg/libc/crt/crt.o \ o/$ARM64-dbg/cosmopolitan.a \ o/$ARM64-dbg/third_party/libcxx/libcxx.a \ -make -j$NPROC m=$ARM64-optlinux \ +$MAKE -j$NPROC m=$ARM64-optlinux \ o/$ARM64-optlinux/ape/ape.elf \ o/$ARM64-optlinux/ape/aarch64.lds \ o/$ARM64-optlinux/libc/crt/crt.o \