mkg3a

Mkg3a is my contribution to the community effort to build a free and open-source toolchain targeting the Casio FX-CG line of calculators.  Here’s the blog post introducing the project, and the feedback/announcements thread on Cemetech.

Code

I don’t usually make a point of packaging releases, since this is such a small project. The code is always available in the repository at GitLab: https://gitlab.com/taricorp/mkg3a

Releases are tagged in the repository, automatically-generated source archives corresponding with each tag are available via the GitLab UI: https://gitlab.com/taricorp/mkg3a/-/tags. You can also check out a specific branch with git, for example:

git clone --depth=1 --branch=0.5.0 https://gitlab.com/taricorp/mkg3a.git

Building

mkg3a is configured with cmake.  For a basic build, the following should work:

$ git clone https://gitlab.com/taricorp/mkg3a.git
$ mkdir mkg3a/build
$ cd mkg3a/build
$ cmake ..
$ cmake --build .
# cmake --build . --target install

Specifying the install path at build-time is done via cmake (like --prefix= with autotools):

$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr

For other tasks, have a look at the CMake documentation, and consider using a CMake GUI such as ccmake or cmake-gui.

You’ll need libpng and zlib for default build. You can avoid that dependency (and disable the PNG icon loader as a consequence) by setting CMake’s USE_PNG variable to OFF. It’s useful to disable the PNG support when building on Windows, since it’s a bit of effort to get those libraries configured (I’ve written up some notes on building the libraries and telling CMake where to look for them).

On most linux systems, you can get suitable copies of libpng and zlib by installing whatever package your distribution provides that includes the libpng development headers. On Debian and its derivatives (Ubuntu, Mint, …) that should be libpng-dev, RPM-based distributions (RHEL, CentOS) seems to call it libpng-devel, and on Arch it’s included in the regular libpng package.

## Usage

To do much of anything useful with mkg3a, you’ll want to have some compiled code for the Prizm.  GCC (built to target SH3) and libfxcg are the primary tools  you’ll need to do that.  [more notes on building programs to come, hopefully].

The mkg3a README file includes some usage examples.  Refer to those in lieu of any more detailed documentation here. Cemetech’s WikiPrizm may also be a useful resource.