2022-03-28 22:43:47 +00:00
|
|
|
#!/usr/bin/env bash
|
2020-03-10 04:04:17 +00:00
|
|
|
|
2021-01-25 13:54:00 +00:00
|
|
|
# SPDX-FileCopyrightText: 2020 Sean Cross <sean@xobs.io>
|
2023-03-14 14:41:33 +00:00
|
|
|
# SPDX-FileCopyrightText: 2023 Foundation Devices, Inc <hello@foundationdevices.com>
|
2021-01-25 13:54:00 +00:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
2020-03-10 04:04:17 +00:00
|
|
|
set -euxo pipefail
|
|
|
|
|
|
|
|
|
|
crate=xous-kernel
|
|
|
|
|
|
2023-03-14 14:41:33 +00:00
|
|
|
usage() {
|
|
|
|
|
echo "Usage: $0 [-a <riscv|arm>]"
|
|
|
|
|
exit 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while getopts "a:" o; do
|
|
|
|
|
case "${o}" in
|
|
|
|
|
a)
|
|
|
|
|
arch=$OPTARG
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
usage
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
arch=${arch:-riscv}
|
|
|
|
|
|
2020-03-10 04:04:17 +00:00
|
|
|
mkdir -p bin
|
|
|
|
|
|
2023-03-14 14:41:33 +00:00
|
|
|
case $arch in
|
|
|
|
|
riscv)
|
|
|
|
|
# Remove existing blobs because otherwise this will append object
|
|
|
|
|
# files to the old blobs
|
|
|
|
|
rm -f bin/riscv*.a
|
|
|
|
|
|
2023-12-29 10:15:48 +00:00
|
|
|
riscv-none-elf-gcc -ggdb3 -c -mabi=ilp32 -march=rv32imac_zicsr src/arch/riscv/asm.S -o bin/$crate.o
|
2023-03-14 14:41:33 +00:00
|
|
|
ar crs bin/riscv32imac-unknown-none-elf.a bin/$crate.o
|
|
|
|
|
ar crs bin/riscv32imac-unknown-xous-elf.a bin/$crate.o
|
|
|
|
|
ar crs bin/riscv32imc-unknown-none-elf.a bin/$crate.o
|
|
|
|
|
|
2023-12-29 10:15:48 +00:00
|
|
|
riscv-none-elf-gcc -ggdb3 -c -mabi=ilp32 -march=rv32i_zicsr src/arch/riscv/asm.S -DSKIP_MULTICORE -o bin/$crate.o
|
2023-03-14 14:41:33 +00:00
|
|
|
ar crs bin/riscv32i-unknown-none-elf.a bin/$crate.o
|
|
|
|
|
|
2023-12-29 10:15:48 +00:00
|
|
|
riscv-none-elf-gcc -ggdb3 -c -mabi=lp64 -march=rv64imac_zicsr src/arch/riscv/asm.S -o bin/$crate.o
|
2023-03-14 14:41:33 +00:00
|
|
|
ar crs bin/riscv64imac-unknown-none-elf.a bin/$crate.o
|
|
|
|
|
ar crs bin/riscv64gc-unknown-none-elf.a bin/$crate.o
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
arm)
|
|
|
|
|
rm -f bin/arm*.a
|
2020-03-10 04:04:17 +00:00
|
|
|
|
2023-03-14 14:41:33 +00:00
|
|
|
arm-none-eabi-gcc -ggdb3 -c -march=armv7-a src/arch/arm/asm.S -o bin/$crate.o
|
|
|
|
|
ar crs bin/armv7a-unknown-xous-elf.a bin/$crate.o
|
|
|
|
|
;;
|
2020-03-10 04:04:17 +00:00
|
|
|
|
2023-03-14 14:41:33 +00:00
|
|
|
default)
|
|
|
|
|
usage
|
|
|
|
|
;;
|
|
|
|
|
esac
|
2020-03-10 04:04:17 +00:00
|
|
|
|
|
|
|
|
rm bin/$crate.o
|