diff options
| author | 2024-04-21 01:10:06 -0500 | |
|---|---|---|
| committer | 2024-04-21 01:10:06 -0500 | |
| commit | 983c2e5499a70834af08265645023affa532cb4d (patch) | |
| tree | 5992d11e28f6bb2974bbb16510ac408b7342ba47 /.github | |
| parent | remove logging (diff) | |
simplify build to use only cosmocc
Diffstat (limited to '.github')
| -rw-r--r-- | .github/cosmo/build | 44 | ||||
| -rw-r--r-- | .github/cosmo/setup | 23 |
2 files changed, 43 insertions, 24 deletions
diff --git a/.github/cosmo/build b/.github/cosmo/build index e2a301c5..3b385ca8 100644 --- a/.github/cosmo/build +++ b/.github/cosmo/build @@ -1,12 +1,38 @@ #!/bin/sh set -eux -# copy janet recipe -mkdir -p /sc/superconfigure/janet -cp ./.github/cosmo/recipe.mk /sc/superconfigure/janet/BUILD.mk -echo 'include janet/BUILD.mk' >> /sc/superconfigure/custom.mk - -# build janet with cosmopolitan libc -export SOURCE_DIR=$(realpath .) -cd /sc/superconfigure -make o/janet/built.fat +COSMO_DIR="/sc/cosmocc" + +# build x86_64 +X86_64_CC="/sc/cosmocc/bin/x86_64-unknown-cosmo-cc" +X86_64_AR="/sc/cosmocc/bin/x86_64-unknown-cosmo-ar" +mkdir -p /sc/cosmocc/x86_64 +make CC="$X86_64_CC" AR="$X86_64_AR" HAS_SHARED=0 JANET_NO_AMALG=1 +cp build/janet /sc/cosmocc/x86_64/janet +make clean + +# build aarch64 +AARCH64_CC="/sc/cosmocc/bin/aarch64-unknown-cosmo-cc" +AARCH64_AR="/sc/cosmocc/bin/aarch64-unknown-cosmo-ar" +mkdir -p /sc/cosmocc/arch64 +make CC="$AARCH64_CC" AR="$AARCH64_AR" HAS_SHARED=0 JANET_NO_AMALG=1 +cp build/janet /sc/cosmocc/aarch64/janet +make clean + +# fat binary +apefat () { + OUTPUT="$1" + OLDNAME_X86_64="$(basename -- "$2")" + OLDNAME_AARCH64="$(basename -- "$3")" + TARG_FOLD="$(dirname "$OUTPUT")" + "$APELINK" -l "$COSMO_DIR/bin/ape-x86_64.elf" \ + -l "$COSMO_DIR/bin/ape-aarch64.elf" \ + -M "$COSMO_DIR/bin/ape-m1.c" \ + -o "$OUTPUT" \ + "$2" \ + "$3" + cp "$2" "$TARG_FOLD/$OLDNAME_X86_64.x86_64" + cp "$3" "$TARG_FOLD/$OLDNAME_AARCH64.aarch64" +} + +apefat ./janet.com /sc/cosmocc/x86_64/janet /sc/cosmocc/aarch64/janet diff --git a/.github/cosmo/setup b/.github/cosmo/setup index ca7d0424..9de92d41 100644 --- a/.github/cosmo/setup +++ b/.github/cosmo/setup @@ -8,21 +8,14 @@ sudo apt-get install -y ca-certificates libssl-dev\ cmake ninja-build bison zip\ pkg-config build-essential autoconf re2c -# clone superconfigure +# download cosmocc cd /sc -git clone https://github.com/ahgamut/superconfigure --depth=1 --branch=z0.0.39 +wget https://github.com/jart/cosmopolitan/releases/download/3.3.3/cosmocc-3.3.3.zip +mkdir -p cosmocc +cd cosmocc +unzip ../cosmocc-3.3.3.zip -# the zip folder -sudo mkdir -p /zip -sudo chmod -R 0777 /zip - -# clone cosmo -cd /sc/superconfigure -git clone https://github.com/jart/cosmopolitan --depth=1 --branch=3.3.3 cosmopolitan -sudo cp cosmopolitan/build/bootstrap/ape.elf /usr/bin/ape +# register +cd /sc/cosmocc +sudo cp ./bin/ape-x86_64.elf /usr/bin/ape sudo sh -c "echo ':APE:M::MZqFpD::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register" -# ls /proc/sys/fs/binfmt_misc/ - -# build cosmo -cd /sc/superconfigure -./.github/scripts/cosmo |
