How to get your hands dirty with kyuba

Alright everyone, listen up. This blog entry was long overdue, but we all know what they say about things that're long overdue ;D. Every now and again on IRC, there's people who'd like to try all of our stuff as it is right now. Even though there's not much to do at the moment, this does kinda help with finding bugs, so I'll try to summarise how to build the tools. (This is just a quick summary, real docs for building will follow at a later stage. It may sound elitist, but you really should be somewhat good with low-level programming issues to do this right now, thus the docs are a bit fuzzy compared to what I'd usually produce.)

First of all, you need curie for just about every other project in the kyuba dirs. Now, which version of curie you need may depend, as there's still things being added to curie.
To build any of the projects you need icemake, which is part of the curie repository (curie is also built using icemake, we'll get to how that works in a minute). To build any of the projects, you need to check out their repository using the GIT tool, or get their release tarball using your webbrowser or wget. The release tarballs are all linked from the top project pages here on kyuba.org, so you shouldn't have trouble getting those.

Building projects is easy: get on the command line and use the icemake programme in the source directory:
cd path/to/sources
icemake

To install things, use:
icemake -id path/to/install/to

There's some options to control icemake (especially the install layout); use icemake --help to see those options. the -f option might be useful for installing. If you cross-compile, you might want to make a habit of specifying the target directory (-d path/to/install/to, along with the layout option you used to install) on the compile command line, as this may allow icemake to use some previously installed headers and libraries.

To build curie without a prebuilt binary for icemake, you'd use "./build.sh" instead of "icemake" in those command lines. If the massive output ends up annoying you, use "ice" instead of "icemake" (only works on linux). (ice will print a simple progress bar instead of the tons of other output icemake produces). On windows, if you dont have a prebuilt icemake, use "build.cmd" (or simply "build"). You should still do it from the command line though, especially for msvc++ since you need to use the msvc++ build console for the paths to be set up properly...

The library dependencies for the different (main) projects are currently as follows:
* curie, icemake: no deps (obviously)
* duat-6: curie-8 (newer versions will not work)
* duat-git: curie-10 (or newer)
* seteh-git: curie-git (10 could work too)
* dev9: duat-git and curie-10 or newer (only use the git version of dev9, and even those dont always work)
* kyuba-1: curie-8 and duat-6 (nothing newer)
* kyuba-git: curie-git and seteh-git

You also need a C compiler supported by icemake; currently supported are:
* GCC (linux/x86-32, linux/x86-64, linux/powerpc-32, windows/x86-32; should also work on linux/arm and darwin/powerpc)
* Microsoft Visual C++ 9.0 (windows/x86-32 and windows/x86-64)
* Borland C++ Builder 2006 (windows/x86-32)

The compiler binaries need to be in the PATH environment variable, otherwise icemake will spew out errors.

If you want to try things on windows, you really should use the ms vc++ compiler. It kinda hurts to say it, but their compiler's pretty fucking good except for their complete lack of C99 support. It's free to download and use for private as well as commercial use too. If you want reasonable warning messages however, you should give borland's compiler a go, their warnings are pretty useful (especially the "initialised but never used" type of errors). I believe the 2006 version is available for free on their website as well as "Turbo C++ 2006" or something.

Another note on icemake: The versions in the curie-9 and curie-10 releases are somewhat bugged, use the git version if it has random hissyfits!

As always, questions tend to find swift answers on IRC, on freenode #kyuba.

Just so people know, dev9 is

Just so people know, dev9 is *not* ready -- even for testing.
There are some kinks that need to be worked out before it reaches an alpha-testing stage.

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

(minus five) * = fifteen
Solve this math question and enter the solution with digits. E.g. for "two plus four = ?" enter "6".