8000 Mybuild · embox/embox Wiki · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Anton Bondarev edited this page Aug 20, 2020 · 4 revisions

Mybuild is build automation and configuration tool oriented on building modular applications.

Mybuild itself is implemented on top of GNU Make utilizing the power of incremental and parallel building of the latter. This also allows one to embed Mybuild into an existing Make-powered build infrastructure. At the same time, despite of using Make, Mybuild uses own Mybuild Language Reference syntax devoid of drawbacks of the language of Makefiles.

Workflow

A typical workflow of developing a Mybuild-driven project involves two kinds of people:

Developers

who need to maintain build files for the component they are working on.

Users

who just want to build the (maybe with different configurations).

Well, there are also developers of Mybuild itself, but we don't consider them for now. So, there are two different types of the build files, accordingly to the intended audience:

My-files

are used to describe all buildable modules of the application, their relationships and available configuration options. These files are written by the application developers and usually placed in the source tree.

module HelloWorld {
    source "hello.c"
}

Proper names for my-files are Mybuild and .my*.

Config-files

contain directives to build certain modules with values for their options. These files are assumed to be constructed by the users, however developers can provide templates with reasonable defaults.

configuration Main {
    include HelloWorld
}

Configuration file is named mods.config*.

Both files are regular text files (no XML!) that can be edited in any text editor.

After necessary my- and config-files are ready one can build the project typing make. Based on the build files Mybuild will infer what needs to be built automatically.

To summarize, the build process can be represented as follows:

What's next?

The complete language reference for my- and config-files is available Mybuild Language Reference.

To get more detailed understanding of how Mybuild actually builds the project please check Mybuild Build Sequence.

Finally, in case if you're interested about how Mybuild itself is implemented, you may check Mybuild Internals Overview.

Overview

GSoC

Demos

Supported platforms

Examples

Development

Libraries

Subsystems

Misc

Mybuild - build system

Contributing

Clone this wiki locally
0