2025-10-04 20:57:45 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
set -v
|
2025-10-07 21:23:14 +00:00
|
|
|
|
2025-11-12 23:29:48 +00:00
|
|
|
mkdir -p build/stencils
|
|
|
|
|
SRC=build/stencils/stencils.c
|
2025-11-13 09:10:20 +00:00
|
|
|
STMP=build/stencils/stencils.o
|
2025-10-04 20:57:45 +00:00
|
|
|
DEST=src/copapy/obj
|
2025-10-04 20:59:53 +00:00
|
|
|
OPT=O3
|
2025-11-14 09:08:43 +00:00
|
|
|
FLAGS="-fno-pic -ffunction-sections"
|
2025-10-07 21:23:14 +00:00
|
|
|
|
2025-10-04 20:57:45 +00:00
|
|
|
mkdir -p $DEST
|
|
|
|
|
|
2025-11-13 09:10:20 +00:00
|
|
|
echo "Precompiled objects:"
|
|
|
|
|
ls /object_files/
|
|
|
|
|
|
2025-10-30 09:55:23 +00:00
|
|
|
# -------------- Compile stencils --------------
|
|
|
|
|
|
2025-10-22 21:17:53 +00:00
|
|
|
python3 stencils/generate_stencils.py $SRC
|
2025-11-10 19:09:54 +00:00
|
|
|
|
|
|
|
|
# x86_64
|
2025-11-13 09:10:20 +00:00
|
|
|
gcc-13 $FLAGS -$OPT -c $SRC -o $STMP
|
|
|
|
|
ld -r $STMP /object_files/musl_objects_x86_64.o -o $DEST/stencils_x86_64_$OPT.o
|
2025-10-08 21:15:14 +00:00
|
|
|
|
2025-11-10 19:09:54 +00:00
|
|
|
# x86 - 32 bit
|
2025-11-13 09:10:20 +00:00
|
|
|
i686-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $STMP
|
|
|
|
|
i686-linux-gnu-ld -r $STMP /object_files/musl_objects_x86.o -o $DEST/stencils_x86_$OPT.o
|
2025-10-08 21:15:14 +00:00
|
|
|
|
2025-10-08 21:03:28 +00:00
|
|
|
# ARM64 linux (aarch64)
|
2025-11-13 09:10:20 +00:00
|
|
|
aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $STMP
|
|
|
|
|
aarch64-linux-gnu-ld -r $STMP /object_files/musl_objects_arm64.o -o $DEST/stencils_arm64_$OPT.o
|
2025-10-08 21:03:28 +00:00
|
|
|
|
2025-10-04 20:57:45 +00:00
|
|
|
# ARMv7
|
2025-11-13 09:10:20 +00:00
|
|
|
#arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $STMP
|
|
|
|
|
#arm-linux-gnu-ld -r $STMP /object_files/musl_objects_arm.o -o $DEST/stencils_arm_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# PowerPC64LE
|
2025-10-31 09:16:21 +00:00
|
|
|
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# S390x
|
2025-10-31 09:16:21 +00:00
|
|
|
# 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)
|
2025-11-13 09:10:20 +00:00
|
|
|
#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)
|
2025-11-13 09:10:20 +00:00
|
|
|
#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
|
2025-11-10 19:09:54 +00:00
|
|
|
# riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv_$OPT.o
|
2025-10-04 20:57:45 +00:00
|
|
|
|
|
|
|
|
# RISCV 64 Bit
|
2025-11-13 09:10:20 +00:00
|
|
|
#riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o
|
2025-10-30 09:55:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
# -------------- Cross compile runner --------------
|
2025-11-12 23:29:48 +00:00
|
|
|
mkdir -p build/runner
|
2025-10-30 09:55:23 +00:00
|
|
|
|
|
|
|
|
# Aarch64
|
2025-11-12 23:29:48 +00:00
|
|
|
aarch64-linux-gnu-gcc-13 -static -O3 -DENABLE_LOGGING -o build/runner/coparun-aarch64 src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c
|