mirror of
https://github.com/afska/gba-link-connection.git
synced 2026-05-02 11:35:40 -05:00
189 lines
6.7 KiB
Bash
Executable File
189 lines
6.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
if [ "$(uname)" = "Darwin" ]; then
|
|
# macOS
|
|
sed_inplace_option="-i \"\""
|
|
else
|
|
sed_inplace_option="-i"
|
|
fi
|
|
|
|
compile() {
|
|
if [ "$1" = "multiboot" ]; then
|
|
args="bMB=1"
|
|
suffix=".mb"
|
|
folder="multiboot"
|
|
else
|
|
args="bMB=0"
|
|
suffix=""
|
|
folder="."
|
|
fi
|
|
|
|
# LinkCable_basic
|
|
cd LinkCable_basic/
|
|
make rebuild $args
|
|
cp LinkCable_basic$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkCable_full
|
|
cd LinkCable_full/
|
|
make rebuild $args
|
|
cp LinkCable_full$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkCable_stress
|
|
cd LinkCable_stress/
|
|
make rebuild $args
|
|
cp LinkCable_stress$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkGPIO_demo
|
|
cd LinkGPIO_demo/
|
|
make rebuild $args
|
|
cp LinkGPIO_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkMobile_demo
|
|
cd LinkMobile_demo/
|
|
make rebuild $args
|
|
cp LinkMobile_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkPS2Keyboard_demo
|
|
cd LinkPS2Keyboard_demo/
|
|
make rebuild $args
|
|
cp LinkPS2Keyboard_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkPS2Mouse_demo
|
|
cd LinkPS2Mouse_demo/
|
|
make rebuild $args
|
|
cp LinkPS2Mouse_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkRawCable_demo
|
|
cd LinkRawCable_demo/
|
|
make rebuild $args
|
|
cp LinkRawCable_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkRawWireless_demo
|
|
cd LinkRawWireless_demo/
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_RAW_WIRELESS_ENABLE_LOGGING/#define LINK_RAW_WIRELESS_ENABLE_LOGGING/g" ../../lib/LinkRawWireless.hpp
|
|
make rebuild $args
|
|
sed $sed_inplace_option -e "s/#define LINK_RAW_WIRELESS_ENABLE_LOGGING/\/\/ #define LINK_RAW_WIRELESS_ENABLE_LOGGING/g" ../../lib/LinkRawWireless.hpp
|
|
cp LinkRawWireless_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkSPI_demo
|
|
cd LinkSPI_demo/
|
|
make rebuild $args
|
|
cp LinkSPI_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkUART_demo
|
|
cd LinkUART_demo/
|
|
make rebuild $args
|
|
cp LinkUART_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkUniversal_basic
|
|
cd LinkUniversal_basic/
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
make rebuild $args
|
|
cp LinkUniversal_basic$suffix.gba ../$folder/
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
cd ..
|
|
|
|
# LinkUniversal_full
|
|
cd LinkCable_full/
|
|
sed $sed_inplace_option -e "s/\/\/ #define USE_LINK_UNIVERSAL/#define USE_LINK_UNIVERSAL/g" src/main.h
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
mv LinkCable_full$suffix.gba backup.gba
|
|
make rebuild $args
|
|
cp LinkCable_full$suffix.gba ../$folder/LinkUniversal_full$suffix.gba
|
|
mv backup.gba LinkCable_full$suffix.gba
|
|
sed $sed_inplace_option -e "s/#define USE_LINK_UNIVERSAL/\/\/ #define USE_LINK_UNIVERSAL/g" src/main.h
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
cd ..
|
|
|
|
# LinkUniversal_stress
|
|
cd LinkCable_stress/
|
|
sed $sed_inplace_option -e "s/\/\/ #define USE_LINK_UNIVERSAL/#define USE_LINK_UNIVERSAL/g" src/main.h
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
mv LinkCable_stress$suffix.gba backup.gba
|
|
make rebuild $args
|
|
cp LinkCable_stress$suffix.gba ../$folder/LinkUniversal_stress$suffix.gba
|
|
mv backup.gba LinkCable_stress$suffix.gba
|
|
sed $sed_inplace_option -e "s/#define USE_LINK_UNIVERSAL/\/\/ #define USE_LINK_UNIVERSAL/g" src/main.h
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
cd ..
|
|
|
|
# LinkWireless_demo
|
|
cd LinkWireless_demo/
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/#define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/g" ../../lib/LinkWireless.hpp
|
|
make rebuild $args
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/\/\/ #define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/g" ../../lib/LinkWireless.hpp
|
|
cp LinkWireless_demo$suffix.gba ../$folder/
|
|
cd ..
|
|
|
|
# LinkWireless_demo_profiler
|
|
if [ "$1" != "multiboot" ]; then
|
|
cd LinkWireless_demo/
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/#define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/g" ../../lib/LinkWireless.hpp
|
|
sed $sed_inplace_option -e "s/\/\/ #define PROFILING_ENABLED/#define PROFILING_ENABLED/g" ../../lib/LinkWireless.hpp
|
|
mv LinkWireless_demo$suffix.gba backup.gba
|
|
make rebuild
|
|
cp LinkWireless_demo.gba ../$folder/LinkWireless_demo_profiler.gba
|
|
mv backup.gba LinkWireless_demo$suffix.gba
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_PUT_ISR_IN_IWRAM/\/\/ #define LINK_WIRELESS_PUT_ISR_IN_IWRAM/g" ../../lib/LinkWireless.hpp
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/\/\/ #define LINK_WIRELESS_USE_SEND_RECEIVE_LATCH/g" ../../lib/LinkWireless.hpp
|
|
sed $sed_inplace_option -e "s/#define PROFILING_ENABLED/\/\/ #define PROFILING_ENABLED/g" ../../lib/LinkWireless.hpp
|
|
cd ..
|
|
fi
|
|
}
|
|
|
|
# Cleanup
|
|
rm -rf multiboot/
|
|
mkdir -p multiboot/
|
|
rm -f *.gba *.sav *.sa2
|
|
|
|
# Compile all ROMs as multiboot
|
|
compile "multiboot"
|
|
cd multiboot/
|
|
cp ../hello.gbfs .
|
|
ungbfs hello.gbfs
|
|
rm hello.gbfs
|
|
for file in *.gba; do
|
|
../pad16.sh "$file"
|
|
done
|
|
gbfs roms.gbfs *
|
|
cd ..
|
|
|
|
# Bundle all multiboot ROMs in the multiboot launchers
|
|
cp multiboot/roms.gbfs LinkCableMultiboot_demo/content.gbfs
|
|
cp multiboot/roms.gbfs LinkWirelessMultiboot_demo/content.gbfs
|
|
|
|
# LinkCableMultiboot_demo
|
|
cd LinkCableMultiboot_demo/
|
|
make rebuild
|
|
cp LinkCableMultiboot_demo.out.gba ../LinkCableMultiboot_demo.gba
|
|
cp ../hello.gbfs content.gbfs
|
|
cd ..
|
|
|
|
# LinkWirelessMultiboot_demo
|
|
cd LinkWirelessMultiboot_demo/
|
|
sed $sed_inplace_option -e "s/\/\/ #define LINK_WIRELESS_MULTIBOOT_ENABLE_LOGGING/#define LINK_WIRELESS_MULTIBOOT_ENABLE_LOGGING/g" ../../lib/LinkWirelessMultiboot.hpp
|
|
make rebuild
|
|
cp LinkWirelessMultiboot_demo.out.gba ../LinkWirelessMultiboot_demo.gba
|
|
cp ../hello.gbfs content.gbfs
|
|
sed $sed_inplace_option -e "s/#define LINK_WIRELESS_MULTIBOOT_ENABLE_LOGGING/\/\/ #define LINK_WIRELESS_MULTIBOOT_ENABLE_LOGGING/g" ../../lib/LinkWirelessMultiboot.hpp
|
|
cd ..
|
|
|
|
# Compile all ROMs as normal
|
|
compile
|