cosmocc: update to allow building on MacOS

This commit is contained in:
Brett Jia 2025-02-07 15:23:49 -05:00 committed by GitHub
parent 7f6a7d6fff
commit c149b88758
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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 \