C23 #embed didn't make it into GCC 13.1.0 and unfortunately neither did Rust, but the constexpr and explicitly typed enums did so go play with those.
This version is a bit of an overhaul that changes some directories around, something I hopefully won't have to do again for a long time because it breaks things. However, now that the SGDK integration is a thin wrapper, there is less worry about weird unexplainable bugs, and even when those come up, you don't have to rearrange all your project paths just to verify whether it's an issue with SGDK itself or not.
What's Changed
GENERAL:
- Default install path is now
/opt/toolchains/mars
instead of~/mars
- The
install
step is separate and should be run with a privileged user after compiling as a normal user
TOOLCHAIN:
- Toolchains for m68k and SH-2 have been split into separate repositories
- GCC updated to 13.1.0
- LANGS=c,c++ is now specified by default
SGDK:
- SGDK version is the current master (v1.80+ 2023-06-11)
- SGDK files have been moved a level in (inside m68k-elf directory)
- GDK environment variable is now set to the above directory
- A custom Makefile is no longer used in favor of patching SGDK's built-in with minimal changes
OTHER TARGETS:
- Removed
flamewing-tools
target, please build from upstream if you want to use these tools - Removed
z80-tools
, sjasm is now installed along with SGDK - Added
x68k-tools
target, builds libdos-gcc (Human68k and Newlib integration) and png2xsp- The x68k example contains a python script that converts elf binaries to .X format
Install
Extract to /opt/toolchains
so the contents are in /opt/toolchains/mars
. There should be only one "mars" directory.
Included targets:
make m68k-toolchain-newlib sh-toolchain-newlib sgdk sik-tools x68k-tools