ROAEshell, a shell to interface with the Read-Only Access Engine (ROAE).
Developed as a part of the Immortal Database Access (iDA) EUROSTARS project.
Type build.sh
for help:
-
./build.sh -c linux
: compile for linux -
./build.sh -c ivm
: (cross)compile for ivm64
If used flag -c
, a cleaning is made prior to building.
When cross-compiling for the ivm64 architecture you need to prepare the environment:
- Add to the environment variable PATH, these 3 elements:
- the path to the ivm64-gcc compiler and assembler (
ivm64-gcc
,ivm64-g++
,ivm64-as
) (generally<gcc-12.2.0 install dir>/bin
) - the path to your favourite ivm emulator (e.g.
ivm64-emu
) - the path to the ivm in-ram filesystem generator (
ivm64-fsgen
, distributed together with the compiler as of release 3.2)
- the path to the ivm64-gcc compiler and assembler (
- Optionally, you can define the environment IVM_EMU variable with your favourite ivm emulator (e.g. export IVM_EMU="ivm64-emu" for the fast emulator, or export IVM_EMU="ivm run" to use the ivm implementation), and the IVM_AS variable with your favourite assembler (e.g. export IVM_AS=ivm64-as for the assembler integrated in the compiler or IVM_AS="ivm as" to use the ivm implementation.)
This project depends on several libraries that have been included in directories thirparty
and ida
.
The thirparty
directory contains some external projects that have adapted to be compiled for the ivm64 architecture:
- sqlite3 (version adapted for IVM, which provide
libsqlite3.a
) - tinyxml2 (which provides
libtinyxml2.a
) - zlib (which provides
libz.a
,libminizip.a
)
The ida
directory contains the sources of these libraries, that implement the core of the roaeshell functionality:
- siard2sql (which provides
libsiar2sqlite.a
, a library to convert SIARD format to sqlite3 SQL) - roaeparser (which provides
libroae.a
, a library to parse ROAE files)
- IVM C/C++ compiler and assembler (
ivm64-gcc, ivm64-g++, ivm64-as
): https://github.com/immortalvm/ivm-compiler - Yet another (FAST) IVM emulator (
ivm64-emu
): https://github.com/immortalvm/yet-another-fast-ivm-emulator - IVM in-ram filesystem (
ivmfs-gen.sh
): https://github.com/immortalvm/ivm-fs - IVM F# implementation (ivm: assembler+emulator): https://github.com/immortalvm/ivm-implementations