Mxx_ru (Make++ on Ruby) is a cross-platform build tool. It's intended for C/C++ languages in general, but it's easy to extend for handling other languages. In contrast to well-known make utility, which provides explicit make rules with targets, dependencies and build commands, Mxx_ru has a template-based approach. Project file in Mxx_ru is a small Ruby program using already defined class (template) from Mxx_ru. The only thing developer is have to worry about is to create an object of required class and execute some of it's methods.
Mxx_ru unifies the build process for applications across different compilers and platforms. It allows to work with different programming languages, and functionality of Mxx_ru may vary to reflect each language specifics.
Here is the features provided for C/C++ languages:
Mxx_ru is an evolution of Make++ tool, originally developed by Yauheni Akhotnikau. Make++ was based on wmake from Watcom C++ initially. Then it was completely rewritten on C++. The main task for Make++ was a creation of makefile for various compilers based on simple text project description. This solution was found to be hard to adapt to new tools and platforms, so new version of Make++ was required. Next iteration of Make++ was make tool and self-script language interpreter simultaneously. But this tool also had a problems with new tools, especially when source code generation was required. As a result, new, fourth version of Make++ was created. It was self-script interpreter at most, and make module functionality was accessible as API functions.
Fourth version of Make++ was widely used by Intervale company. But it's also reached a limit of opportunities in course of time. In particular, transitions to new platforms and compilers become more
and more difficultly, because of limited algorithmic features of Make++ script language.
The basic idea of the fifth version remains the same: Project file -- is a small program on interpretable scripting language. Make module functionality is accessible through API functions and classes. The only difference was in language chosen - it was Ruby.
Mxx_ru is a gem for RubyGem packaging system. The easiest way to install Mxx_ru is to use gem install command:
gem install Mxx_ru
The Mxx_ru can also be downloaded from Files section and installed manually. For example:
gem install Mxx_ru-1.6.3.gem
Documentation for Mxx_ru is in PDF file which is available for download form Files section. For example, there is documentation for Mxx_ru-1.6.3 (sourceforge.net).
The author expresses gratitude to the colleagues from the Intervale company for their patience shown during experiments with Mxx_ru. And as to a management of the company for support during development of Mxx_ru.
Separate thank to Mikhail Lyossin for his heavy and difficult work on translation of the documentation and comments in Mxx_ru to the English language and that due to his enthusiasm, Mxx_ru has received the second breath and opportunity of the further development.