2025-10-04 20:57:45 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
#Setup:
|
|
|
|
|
#sudo apt-get update
|
|
|
|
|
#sudo apt-get install -y \
|
|
|
|
|
#gcc-12-aarch64-linux-gnu \
|
|
|
|
|
#gcc-12-arm-linux-gnueabihf \
|
|
|
|
|
#gcc-12-powerpc64le-linux-gnu \
|
|
|
|
|
#gcc-12-s390x-linux-gnu \
|
|
|
|
|
#gcc-12-mips-linux-gnu \
|
|
|
|
|
#gcc-12-riscv64-linux-gnu
|
|
|
|
|
|
|
|
|
|
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
|
2025-10-07 21:23:14 +00:00
|
|
|
|
2025-10-04 20:57:45 +00:00
|
|
|
mkdir -p $DEST
|
|
|
|
|
|
2025-10-07 21:23:14 +00:00
|
|
|
# Windows x86_64 (ARM64)
|
2025-10-08 20:59:51 +00:00
|
|
|
python tools/generate_stencils.py --abi ms $SRC
|
2025-10-07 21:23:14 +00:00
|
|
|
gcc-12 -$OPT -c $SRC -o $DEST/stencils_AMD64_$OPT.o
|
2025-10-07 21:20:51 +00:00
|
|
|
|
2025-10-04 20:57:45 +00:00
|
|
|
# Native x86_64
|
2025-10-08 20:59:51 +00:00
|
|
|
python tools/generate_stencils.py $SRC
|
2025-10-07 20:58:04 +00:00
|
|
|
gcc-12 -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
2025-10-08 21:15:14 +00:00
|
|
|
# Windows x86
|
|
|
|
|
python tools/generate_stencils.py --abi ms $SRC
|
|
|
|
|
gcc-12 -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o
|
|
|
|
|
|
|
|
|
|
# Native i686
|
|
|
|
|
python tools/generate_stencils.py $SRC
|
|
|
|
|
gcc-12 -m32 -$OPT -c $SRC -o $DEST/stencils_i686_$OPT.o
|
|
|
|
|
|
2025-10-08 21:03:28 +00:00
|
|
|
# ARM64 linux (aarch64)
|
2025-10-04 20:59:53 +00:00
|
|
|
aarch64-linux-gnu-gcc-12 -$OPT -c $SRC -o $DEST/stencils_aarch64_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
2025-10-08 21:03:28 +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
|
2025-10-04 20:59:53 +00:00
|
|
|
arm-linux-gnueabihf-gcc-12 -$OPT -c $SRC -o $DEST/stencils_armv7_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# PowerPC64LE
|
2025-10-04 20:59:53 +00:00
|
|
|
# powerpc64le-linux-gnu-gcc-12 -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# S390x
|
2025-10-04 20:59:53 +00:00
|
|
|
# s390x-linux-gnu-gcc-12 -$OPT -c $SRC -o $DEST/stencils_s390x_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# Mips
|
2025-10-04 20:59:53 +00:00
|
|
|
mips-linux-gnu-gcc-12 -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# RISCV 32 Bit
|
2025-10-04 20:59:53 +00:00
|
|
|
riscv64-linux-gnu-gcc-12 -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv32_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# RISCV 64 Bit
|
2025-10-04 20:59:53 +00:00
|
|
|
riscv64-linux-gnu-gcc-12 -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o
|