Глава 1
Введение

1.1 Что такое Mxx_ru

Mxx_ru — это написанный на языке Ruby1 инструмент для поддержки кроссплатформенной компиляции и сборки проектов, в первую очередь, C/C++ проектов. В чем-то Mxx_ru является аналогом make, но вместо make-правил использует механизм шаблонов. Проектный файл в Mxx_ru представляет из себя небольшую программу на языке Ruby в которой используется уже готовый класс (шаблон) из состава Mxx_ru. Все, что нужно сделать программисту – это создать экземпляр необходимого класса и вызвать у него соответствующие методы. Все остальное делает Mxx_ru.

1.2 Возможности

Mxx_ru позволяет работать с проектами на разных языках программирования. При этом предоставляемая Mxx_ru функциональность зависит от языка программирования.

Для языков C/C++ Mxx_ruпредоставляет следующие возможности:

1.3 Немного истории

Mxx_ru является развитием инструмента Make++, разработанного Евгением Охотниковым2. Первоначально Make++ был создан на основе wmake из состава Watcom C++. Затем Make++ был полностью переписан на C++ и задачей Make++ было формирование make-файлов для конкретных компиляторов на основании простого текстового описания проекта. Этот вариант оказался плохо адаптируемым под новые инструменты и платформы. Поэтому был создан следующий вариант Make++, который был одновремено и интерпретатором собственного языка, и инструментом make. Но и этот вариант имел проблемы с новыми инструментами, особенно когда требовалось не только управлять компиляцией, но и генерировать часть исходных текстов (например, moc-файлы при использовании Qt3). В результате был создан следующий, четвертый вариант Make++, который был, главным образом, интерпретатором собственного языка программирования. А функциональность make-модуля была доступна в этом языке в виде API функций.

Четвертый вариант Make++ широко использовался компанией Intervale. Но со временем он так же достиг предела своих возможностей. В частности, переход на новые платформы и компиляторы становился все сложнее и сложнее, т.к. язык четвертой Make++ предоставлял очень мало алгоритмических возможностей. После оценки трудозатрат на различные варианты преодоления проблем четвертой версии Make++ компания Intervale приняла решение создать очередную, пятую версию Make++.

Основная идея пятой версии осталось такой же, как и в четвертой версии: проектный файл — это небольшая программа на скриптовом, интерпритируемом языке. Функциональность make-модуля и других вспомогательных модулей (например, анализатора С/C++ зависимостей) доступна в виде API функций и классов. Только в качестве языка программирования выбран скриптовый язык Ruby.

Hosted by uCoz