Skip to content

Instantly share code, notes, and snippets.

@bitnenfer
Created January 30, 2019 03:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bitnenfer/42fac7aa7e31b81cc67aa09e34d2f651 to your computer and use it in GitHub Desktop.
Save bitnenfer/42fac7aa7e31b81cc67aa09e34d2f651 to your computer and use it in GitHub Desktop.
A simple batch file that assembles, links and does a checksum fix using the RGBDS toolchain.
@echo off
cls
rem ================================================
rem ================================================
rem The project structure looks like this:
rem ROOT_PATH/
rem PROJECT_NAME/
rem code/
rem src/
rem include/
rem ================================================
rem ================================================
rem ** THIS ARE VARIABLES THAT NEED TO BE DEFINED **
rem ================================================
set PROJECT_NAME=MyCoolProject
set ROOT_PATH=\Path\To\Where\My\Projects\Are
set RGBDS_PATH=\Path\To\RGBDS\Toolchain
rem ================================================
rem ================================================
set ASM=%RGBDS_PATH%\rgbasm
set LNK=%RGBDS_PATH%\rgblink
set FIX=%RGBDS_PATH%\rgbfix
rem Project Variables
set PROJECT_PATH=%ROOT_PATH%\%PROJECT_NAME%
set PROJECT_CODE=%PROJECT_PATH%\code
set PROJECT_INCLUDE=%PROJECT_CODE%\include\
set PROJECT_SRC=%PROJECT_CODE%\src
rem Output Variables
set OUTPUT_PATH=%PROJECT_PATH%\build
set OUTPUT_NAME=%OUTPUT_PATH%\%PROJECT_NAME%
rem Flags
set ASM_FLAGS=-i%PROJECT_INCLUDE%
set LNK_FLAGS=-m %OUTPUT_NAME%.map -n %OUTPUT_NAME%.sym -o %OUTPUT_NAME%.gb
rem Create the output directory
if not exist "%OUTPUT_PATH%" mkdir %OUTPUT_PATH%
echo Assembling
for %%I in (%PROJECT_SRC%\*.z80) do (
echo - %%~I
%ASM% %ASM_FLAGS% -o %OUTPUT_PATH%\%%~nI.o %%~I
)
echo.
echo Linking
setlocal EnableDelayedExpansion
set OBJFILES=
for %%I in (%OUTPUT_PATH%\*.o) do (
set OBJFILES=!OBJFILES! %OUTPUT_PATH%\%%~nI.o
)
echo - %OBJFILES%
%LNK% %LNK_FLAGS% %OBJFILES%
echo.
echo Checksum Fix
%FIX% -p0 -v %OUTPUT_NAME%.gb
echo - %OUTPUT_NAME%.gb
echo.
echo Build Complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment