copapy/tools/crosscompile.sh

63 lines
1.6 KiB
Bash
Raw Normal View History

2025-10-04 20:57:45 +00:00
#!/bin/bash
set -e
set -v
2025-10-07 21:23:14 +00:00
2025-10-08 20:59:46 +00:00
mkdir -p bin
2025-10-08 20:59:51 +00:00
SRC=bin/stencils.c
2025-10-04 20:57:45 +00:00
DEST=src/copapy/obj
2025-10-04 20:59:53 +00:00
OPT=O3
FLAGS="-fno-pic"
2025-10-07 21:23:14 +00:00
2025-10-04 20:57:45 +00:00
mkdir -p $DEST
# -------------- Compile stencils --------------
2025-10-07 21:23:14 +00:00
# Windows x86_64 (ARM64)
python3 stencils/generate_stencils.py --abi ms $SRC
gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_AMD64_$OPT.o
2025-10-08 21:21:51 +00:00
# Windows x86
gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o
2025-10-08 21:21:51 +00:00
2025-10-07 21:20:51 +00:00
2025-10-04 20:57:45 +00:00
# Native x86_64
python3 stencils/generate_stencils.py $SRC
gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o
2025-10-08 21:15:14 +00:00
# Native i686
2025-11-09 21:05:52 +00:00
cp $DEST/stencils_x86_$OPT.o $DEST/stencils_i686_$OPT.o
2025-10-08 21:15:14 +00:00
# ARM64 linux (aarch64)
aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_aarch64_$OPT.o
2025-10-04 20:57:45 +00:00
# ARM64 macos (copy aarch64)
cp $DEST/stencils_aarch64_$OPT.o $DEST/stencils_arm64_$OPT.o
2025-10-04 20:57:45 +00:00
# ARMv7
arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_armv7_$OPT.o
2025-10-04 20:57:45 +00:00
# PowerPC64LE
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
2025-10-04 20:57:45 +00:00
# S390x
# s390x-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_s390x_$OPT.o
2025-10-08 21:21:51 +00:00
# Mips (Big Endian)
mips-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o
2025-10-04 20:57:45 +00:00
2025-10-08 21:21:51 +00:00
# Mips (Little Endian)
mipsel-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o
2025-10-04 20:57:45 +00:00
# RISCV 32 Bit
# riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv32_$OPT.o
2025-10-04 20:57:45 +00:00
# RISCV 64 Bit
riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o
# -------------- Cross compile runner --------------
# Aarch64
2025-11-03 14:21:33 +00:00
aarch64-linux-gnu-gcc-13 -static -O3 -DENABLE_LOGGING -o bin/coparun-aarch64 src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c