aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorGautham <ahgamut@gmail.com>2024-04-21 01:10:06 -0500
committerGautham <ahgamut@gmail.com>2024-04-21 01:10:06 -0500
commit983c2e5499a70834af08265645023affa532cb4d (patch)
tree5992d11e28f6bb2974bbb16510ac408b7342ba47 /.github
parentremove logging (diff)
simplify build to use only cosmocc
Diffstat (limited to '.github')
-rw-r--r--.github/cosmo/build44
-rw-r--r--.github/cosmo/setup23
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