Adding (native | docker) option to ./compile.sh

This commit is contained in:
Rodrigo Alfonso 2025-07-28 05:28:44 -03:00
parent 6e5646e96b
commit 983411ea68
2 changed files with 52 additions and 37 deletions

View File

@ -59,13 +59,8 @@ make [ clean | build | start | rebuild | restart ]
Alternatively, you can compile the examples using Docker:
```bash
cd examples/LinkCable_basic
docker run -it \
--user "$(id -u):$(id -g)" \
-v "$(pwd)/../..":/opt/gba \
devkitpro/devkitarm:20241104 \
bash -c "cd /opt/gba/examples/$(basename $PWD) && make rebuild"
cd examples
./compile.sh docker
```
### C bindings

View File

@ -2,111 +2,131 @@
set -e
compile() {
if [ "$1" = "multiboot" ]; then
args="bMB=1"
suffix=".mb"
folder="multiboot"
MODE="${1:-native}" # native | docker
cmd_make() {
if [ "$MODE" = docker ]; then
docker run -it \
--user "$(id -u):$(id -g)" \
-v "$(pwd)/../..":/opt/gba \
devkitpro/devkitarm:20241104 \
bash -c "cd /opt/gba/examples/$(basename "$PWD") && make \"\$@\"" -- "$@"
else
args="bMB=0"
suffix=""
folder="."
make "$@"
fi
}
compile() {
if [ "$MODE" = docker ]; then
echo "Compiling in Docker mode..."
else
echo "Compiling in Native mode..."
fi
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
cmd_make rebuild $args
cp LinkCable_basic$suffix.gba ../$folder/
cd ..
# LinkCable_full
cd LinkCable_full/
make rebuild $args
cmd_make rebuild $args
cp LinkCable_full$suffix.gba ../$folder/
cd ..
# LinkCable_stress
cd LinkCable_stress/
make rebuild $args
cmd_make rebuild $args
cp LinkCable_stress$suffix.gba ../$folder/
cd ..
# LinkCard_demo
cd LinkCard_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkCard_demo$suffix.out.gba ../$folder/LinkCard_demo$suffix.gba
cd ..
# LinkCube_demo
cd LinkCube_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkCube_demo$suffix.gba ../$folder/
cd ..
# LinkGPIO_demo
cd LinkGPIO_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkGPIO_demo$suffix.gba ../$folder/
cd ..
# LinkIR_demo
cd LinkIR_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkIR_demo$suffix.gba ../$folder/
cd ..
# LinkMobile_demo
cd LinkMobile_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkMobile_demo$suffix.gba ../$folder/
cd ..
# LinkPS2Keyboard_demo
cd LinkPS2Keyboard_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkPS2Keyboard_demo$suffix.gba ../$folder/
cd ..
# LinkPS2Mouse_demo
cd LinkPS2Mouse_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkPS2Mouse_demo$suffix.gba ../$folder/
cd ..
# LinkRawCable_demo
cd LinkRawCable_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkRawCable_demo$suffix.gba ../$folder/
cd ..
# LinkRawWireless_demo
cd LinkRawWireless_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkRawWireless_demo$suffix.gba ../$folder/
cd ..
# LinkSPI_demo
cd LinkSPI_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkSPI_demo$suffix.gba ../$folder/
cd ..
# LinkUART_demo
cd LinkUART_demo/
make rebuild $args
cmd_make rebuild $args
cp LinkUART_demo$suffix.gba ../$folder/
cd ..
# LinkUniversal_basic
cd LinkUniversal_basic/
make rebuild $args USERFLAGS="-DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cmd_make rebuild $args USERFLAGS="-DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cp LinkUniversal_basic$suffix.gba ../$folder/
cd ..
# LinkUniversal_full
cd LinkCable_full/
mv LinkCable_full$suffix.gba backup.gba || :
make rebuild $args USERFLAGS="-DUSE_LINK_UNIVERSAL=1 -DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cmd_make rebuild $args USERFLAGS="-DUSE_LINK_UNIVERSAL=1 -DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cp LinkCable_full$suffix.gba ../$folder/LinkUniversal_full$suffix.gba
mv backup.gba LinkCable_full$suffix.gba || :
cd ..
@ -114,21 +134,21 @@ compile() {
# LinkUniversal_stress
cd LinkCable_stress/
mv LinkCable_stress$suffix.gba backup.gba || :
make rebuild $args USERFLAGS="-DUSE_LINK_UNIVERSAL=1 -DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cmd_make rebuild $args USERFLAGS="-DUSE_LINK_UNIVERSAL=1 -DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cp LinkCable_stress$suffix.gba ../$folder/LinkUniversal_stress$suffix.gba
mv backup.gba LinkCable_stress$suffix.gba || :
cd ..
# LinkWireless_demo
cd LinkWireless_demo/
make rebuild $args USERFLAGS="-DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cmd_make rebuild $args USERFLAGS="-DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1"
cp LinkWireless_demo$suffix.gba ../$folder/
cd ..
# LinkWireless_prof_code_iwram
cd LinkWireless_demo/
mv LinkWireless_demo$suffix.gba backup.gba || :
make rebuild $args USERFLAGS="-DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1 -DLINK_WIRELESS_PROFILING_ENABLED=1"
cmd_make rebuild $args USERFLAGS="-DLINK_WIRELESS_PUT_ISR_IN_IWRAM=1 -DLINK_WIRELESS_PROFILING_ENABLED=1"
cp LinkWireless_demo$suffix.gba ../$folder/LinkWireless_prof_code_iwram$suffix.gba
mv backup.gba LinkWireless_demo$suffix.gba || :
cd ..
@ -136,7 +156,7 @@ compile() {
# LinkWireless_prof_code_rom
cd LinkWireless_demo/
mv LinkWireless_demo$suffix.gba backup.gba || :
make rebuild $args USERFLAGS="-DLINK_WIRELESS_PROFILING_ENABLED=1"
cmd_make rebuild $args USERFLAGS="-DLINK_WIRELESS_PROFILING_ENABLED=1"
cp LinkWireless_demo$suffix.gba ../$folder/LinkWireless_prof_code_rom$suffix.gba
mv backup.gba LinkWireless_demo$suffix.gba || :
cd ..
@ -172,14 +192,14 @@ cp multiboot/roms.gbfs LinkWirelessMultiboot_demo/content.gbfs
# LinkCableMultiboot_demo
cd LinkCableMultiboot_demo/
make rebuild
cmd_make rebuild
cp LinkCableMultiboot_demo.out.gba ../LinkCableMultiboot_demo.gba
cp ../hello.gbfs content.gbfs
cd ..
# LinkWirelessMultiboot_demo
cd LinkWirelessMultiboot_demo/
make rebuild USERFLAGS="-DLINK_WIRELESS_MULTIBOOT_ENABLE_LOGGING=1"
cmd_make rebuild USERFLAGS="-DLINK_WIRELESS_MULTIBOOT_ENABLE_LOGGING=1"
cp LinkWirelessMultiboot_demo.out.gba ../LinkWirelessMultiboot_demo.gba
cp ../hello.gbfs content.gbfs
cd ..