Software

This document describes the needed software to build, install and run MysticOS on various platforms.

Summary
SoftwareThis document describes the needed software to build, install and run MysticOS on various platforms.
Topics
Common toolsMysticOS contains some tool components in its source that are needed to make complete builds.
ia ArchitectureTo build the ia branch, you need a series of crosscompilers and some image tools as follows.
ia-32 ArchitectureThis branch is mostly deprecated.
m68k ArchitectureThe main assembler and linker.
sh4 ArchitectureThe main assembler and linker.

Topics

Common tools

MysticOS contains some tool components in its source that are needed to make complete builds.  Therefore, you will need a host compiler besides the various crosscompiling toolchains.  A basic posix-like build environment is expected.  A standard linux development environment will provide all the tools.  Under windows, cygwin is used.

Required tools

GNU makeused for all building commands.
gccused for building local tools.
binutilsdependency for gcc.
mkdir, touch, cp, rm, echoBasic unix commands used in almost all build processes.
ddBasic unix command used in image generation
test, exprBasic unix commands used in most test processes.

ia Architecture

To build the ia branch, you need a series of crosscompilers and some image tools as follows.

i386-elf binutils

the main cross-assembler and cross-linker.  Versions below 2.17 are known to be broken.  Successful builds have been made with versions 2.17, 2.18 and 2.20.1.  The configure line used is as follows: (...)/binutils-xxx/configure --target=i386-elf --disable-nls

i386-elf gcc

The main cross-compiler.  There are no known broken versions, although versions below 3.4.4 have not been tested.  There do seem to be some portability issues in versions before 3.4.x.  To configure, have i386-elf binutils installed, then run the following command line (up to 4.2.x): (...)/gcc-x.x.x/configure --target=i386-elf --without-headers --with-newlib --enable-languages=c --disable-nls Afterwards, run make all-gcc and make install-gcc to install the required components.  Version 4.3 and later have additional dependencies to gmp and mpfr, which you need to build before gcc or supply its source to the configuration script of gcc.

FreeBasic 0.24

The basic cross-compiler.  Since the runtime is contained in the source and is dependent on compiler version, this is the only version you can currently use.  Depending on your installation, replace the assembler binary bundled with the i386-elf-as, or make a symlink to it as linux-as.  The script calls the compiler as fbc-024-pre to allow for multiple installations.  Note that currently a development build is used to make use of the object-oriented features as there has not been an official 0.24 release yet.

Yasm

The main assembler.  Is used to build the assembly portions of the OS.  Version 0.6.0 or later is required.

MTools

MTools can create and edit FAT images.  Required for floppy targets.

mkisofs

mkisofs is a tool to compile ISO-9660 compliant cd images.  Required for CD targets.  Genisoimage is its successor and can be used as a drop-in replacement.  (On some hosts mkisofs is symlinked to this program)

gzip

GZip is used to compress images for use in conjunction with GRUB.  Required for the pc-multiboot target.

GRUB 0.9x

Grub can be used as part of installation instead of the provided bootloader.  It is called when installing the multiboot target, and it is implied to be pre-installed when using the wmultiboot target.

ia-32 Architecture

This branch is mostly deprecated.  To build, the following tools are needed

i386-elf binutils

see ia Architecture

i386-elf gcc

see ia Architecture

Freebasic 0.16

An old FB version is used.  Replace the as binary as with ia Architecture Currently called as fbc

Yasm

see ia Architecture

MTools

see ia Architecture

mkisofs

see ia Architecture

GRUB 0.9x

Not a part of any build process for this target, but expected to be pre-installed on a medium when using the multiboot target.

m68k Architecture

m68k-elf binutils

The main assembler and linker.  2.16 and below lack some required features.  There seem to be some installation issues with the 2.17 release on some platforms.  Successful builds have been made with 2.17 and 2.19.1 The configure line used is as follows: (...)/binutils-xxx/configure --target=m68k-elf --disable-nls

m68k-elf gcc

The main cross-compiler.  There are no known issues other than using 4.3 and later have some new dependencies resulting in more work.  (...)/gcc-x.x.x/configure --target=m68k-elf --without-headers --with-newlib --enable-languages=c --disable-nls Afterwards, run make all-gcc and make install-gcc to install the required components.

FreeBasic 0.21

The basic cross-compiler.  Since the runtime is contained in the source and is heavily dependent on compiler version, this is the only version you can currently use.  Replace the assembler binary bundled with the i386-elf-as, or put it in the linux cross-compile target.  The script calls the compiler as fbc-021 to allow for multiple concurrent installations.

sh4 Architecture

m68k-elf binutils

The main assembler and linker.  Successful builds have been made with 2.18 and 2.20.1 The configure line used is as follows: (...)/binutils-xxx/configure --target=m68k-elf --disable-nls

m68k-elf gcc

The main cross-compiler.  There are no known issues other than using 4.3 and later have some new dependencies resulting in more work.  (...)/gcc-x.x.x/configure --target=m68k-elf --without-headers --with-newlib --enable-languages=c --disable-nls Afterwards, run make all-gcc and make install-gcc to install the required components.

mkisofs

mkisofs is a tool to compile ISO-9660 compliant cd images.  Since all supported platforms are currently CD-based, this tool is required by all targets except raw ones.

cdi4dc 0.2b

cdi4dc is one of the external tools for making an image that is able to pass the copyright protection mechanisms installed on a dreamcast machine.  Unfortunately no source is included, and only precompiled windows and linux binaries exist.  Required for the dreamcast-cdi target.  If you want to end up with an usable dreamcast image, you will need this.

To build the ia branch, you need a series of crosscompilers and some image tools as follows.