# please run after mrubyc.sh
sudo apt install build-essential gcc-riscv64-unknown-elf picolibc-riscv64-unknown-elf dfu-util
# download
wget -O gd32vf103_firmware_library_gcc_makefile-main.zip https://github.com/cjacker/gd32vf103_firmware_library_gcc_makefile/archive/refs/heads/main.zip
wget -O Longan-RISC-V-examples-master.zip https://github.com/linusreM/Longan-RISC-V-examples/archive/refs/heads/master.zip
# unzip
unzip gd32vf103_firmware_library_gcc_makefile-main.zip 
mv gd32vf103_firmware_library_gcc_makefile-main mrubyc_gd32
unzip Longan-RISC-V-examples-master.zip 'Longan-RISC-V-examples-master/05-LCD/lib/lcd/*'
mkdir mrubyc_gd32/User/lcd
mv Longan-RISC-V-examples-master/05-LCD/lib/lcd/include/*.h mrubyc_gd32/User/lcd
mv Longan-RISC-V-examples-master/05-LCD/lib/lcd/src/*.c mrubyc_gd32/User/lcd
sed -i -e 's/riscv-none-elf-/riscv64-unknown-elf-/' -e 's/nano.specs/picolibc.specs/' -e '/main.c/a C_SOURCES += $(wildcard ./mrubyc/*.c)' -e '/main.c/a C_SOURCES += User/lcd/lcd.c' -e '/CFLAGS += -DGD32VF103C_START/a CFLAGS += --specs=picolibc.specs' -e '/CFLAGS += -DGD32VF103C_START/a CFLAGS += -I./mrubyc -DNDEBUG' mrubyc_gd32/Makefile
# mruby/c
cp -r mrubyc-release3.4.1/src/ mrubyc_gd32/mrubyc
cd mrubyc_gd32/mrubyc
sed -i -e 's/delay(/delay_1ms(/' -e '/#define MRBC_SRC_HAL_H_/a #include "systick.h"'  hal.h
wget -O mrbc_api.h https://www.ipc.shimane-u.ac.jp/weda/mrubyc/mrbc_api_gd32v.h
cd ../..
# main.c
wget https://www.ipc.shimane-u.ac.jp/weda/mrubyc/gd32vf103.c
mv gd32vf103.c mrubyc_gd32/User/main.c
