Menu

Home

Yauheni Akhotnikau

Introduction

About Mxx_ru

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.

Features

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:

  • Using one project file for different compilers and platforms;
  • Automatic dependency tracking using internal source code analyzer;
  • Ready-to-use templates for applications, dynamic and static libraries;
  • Ready-to-use template for composite projects (when more then one project are combined together);
  • Resource file compilation on Microsoft Windows platform;
  • Visual C++ 8.0 manifest support on Microsoft Windows platform;
  • Support for "Source code generators" and some of ready-to-use generators, such as Qt moc.

A bit of history

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.

Obtaining and Using

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

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).

Thanks

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.



MongoDB Logo MongoDB