Libronin: Difference between revisions

From dreamcast.wiki
Jump to navigation Jump to search
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 19: Line 19:
==Building a toolchain for libronin==
==Building a toolchain for libronin==
The standard [[KallistiOS]] sh-elf toolchain contains patches that prevent it from working with libronin; however, KallistiOS's <code>dc-chain</code> script can be used to easily build a libronin-compatible raw toolchain. You can build this toolchain to a separate directory than an existing KallistiOS toolchain.  
The standard [[KallistiOS]] sh-elf toolchain contains patches that prevent it from working with libronin; however, KallistiOS's <code>dc-chain</code> script can be used to easily build a libronin-compatible raw toolchain. You can build this toolchain to a separate directory than an existing KallistiOS toolchain.  
Create a directory to hold the toolchain and give yourself ownership:
sudo mkdir -p /opt/toolchains/dc/roninchain
sudo chown -R $USER:$USER /opt/toolchains/dc/roninchain


Clone the KallistiOS repo somewhere convenient:
Clone the KallistiOS repo somewhere convenient:
Line 26: Line 30:
  cd kos/util/dc-chain
  cd kos/util/dc-chain


Copy over one of the default configuration files:
Alter the <code>Makefile.cfg</code> options in a text editor if you'd like.
cp config.mk.sample.testing config.mk
 
Open <code>config.mk</code> in a text editor and edit the following lines.
toolchains_base=/opt/toolchains/dc/roninchain # Where you want to install the toolchain
pass2_languages=c,c++,objc,obj-c++            # Which languages you want to build support for
thread_model=posix                            # single threading or posix threads. posix threads might not successfully build for some languages
auto_fixup_sh4_newlib=0                      # Set this 0 to ensure raw toolchain with no patches
 
Download the packages:
./download.sh
 
Unpack the files:
./unpack.sh


And finally, build the toolchain. '''Do not''' use <code>make</code> alone or the build script will patch the toolchain with KOS patches, which is not what we want here!
And finally, download and build the toolchain for libronin use with the following command:
  make build
  make all enable_objc=0 enable_objcpp=0 thread_model=single use_kos_patches=0 auto_fixup_sh4_newlib=0 sh_toolchain_path=/opt/toolchains/dc/roninchain/sh-elf arm_toolchain_path=/opt/toolchains/dc/roninchain/arm-eabi


You can now use the compilers stored at <code>/opt/toolchains/dc/roninchain/sh-elf/bin</code> and <code>/opt/toolchains/dc/roninchain/arm-eabi/bin</code> to compile libronin. You may need to modify <code>Makefile</code> included with libronin to include the path to the compilers.  
You can now use the compilers stored at <code>/opt/toolchains/dc/roninchain/sh-elf/bin</code> and <code>/opt/toolchains/dc/roninchain/arm-eabi/bin</code> to compile libronin. You may need to modify <code>Makefile</code> and <code>zlib/Makefile</code> included with libronin to include the path to the compilers.  


You may delete the <code>kos</code> folder that you cloned using git earlier once your toolchain is successfully installed.  
You may delete the <code>kos</code> folder that you cloned using git earlier once your toolchain is successfully installed.


==Source==
==Source==

Latest revision as of 21:22, 7 May 2024

libronin is a software development library similar to KallistiOS. It was developed by Marcus Comstedt, Peter Bortas and Per Hedbor. It is used in DreamSNES, ScummVM, and Cave Story. It is primarily known for its use in projects by Marcus Comstedt and histat.

Projects using libronin

Release history

libronin's latest release was in 2016.[1]

  • Libronin 0.1 (2002-02-03)
  • Libronin 0.2 (2002-02-27)
  • Libronin 0.3 (2002-04-21)
  • Libronin 0.4 (2003-05-04)
  • Libronin 0.5 (2008-01-01)
  • Libronin 0.6 (2016-09-26)

Building a toolchain for libronin

The standard KallistiOS sh-elf toolchain contains patches that prevent it from working with libronin; however, KallistiOS's dc-chain script can be used to easily build a libronin-compatible raw toolchain. You can build this toolchain to a separate directory than an existing KallistiOS toolchain.

Create a directory to hold the toolchain and give yourself ownership:

sudo mkdir -p /opt/toolchains/dc/roninchain
sudo chown -R $USER:$USER /opt/toolchains/dc/roninchain

Clone the KallistiOS repo somewhere convenient:

git clone https://github.com/KallistiOS/KallistiOS.git kos

Enter the toolchain directory:

cd kos/util/dc-chain

Alter the Makefile.cfg options in a text editor if you'd like.

And finally, download and build the toolchain for libronin use with the following command:

make all enable_objc=0 enable_objcpp=0 thread_model=single use_kos_patches=0 auto_fixup_sh4_newlib=0 sh_toolchain_path=/opt/toolchains/dc/roninchain/sh-elf arm_toolchain_path=/opt/toolchains/dc/roninchain/arm-eabi

You can now use the compilers stored at /opt/toolchains/dc/roninchain/sh-elf/bin and /opt/toolchains/dc/roninchain/arm-eabi/bin to compile libronin. You may need to modify Makefile and zlib/Makefile included with libronin to include the path to the compilers.

You may delete the kos folder that you cloned using git earlier once your toolchain is successfully installed.

Source

References

  1. [1], Libronin | DC Evolution - The Dreamcast Resource