xous-core/kernel/assemble.sh

63 lines
1.6 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
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
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}
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
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
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
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
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
;;
2023-03-14 14:41:33 +00:00
default)
usage
;;
esac
rm bin/$crate.o