embuild/atool is a mature embedded software development system including a unique make tool with auto-dependency generation, source and object version control, and some useful minor utilities. Support for gnu toolchain (C and assembler) included.
embuild-atool makes a strong distinction between source and output files. Source files are edited by the user, using methods outside of the scope of atool. Output files are in principal created by a single, non-iterative step from the source files. Output files are in principal recreatable at any time from source files. (For efficiency of development, atool supports a variety of methods of incremental building). Output and source files are stored in separate directories.
Here are some key features of "embuild":
· Optional module-oriented revision management of both source and object code.
· A unique make tool (amake) with multithreaded multi-cross-platform compilation configured in a very simple way.
· Plugins are provided for gcc and compatible C and assembly language including automatic dependency determination.
· Plugins are provided for automatic header file creation (including C prototype extraction).
· Plugins are provided for automatic editor tag file generation.
· Plugins are provided for automatic C struct parsing for use in data editors and converters.
· Plugins are provided for automatic conversion from binary data to initialized C array.
· Plugins are provided for automatic latex generation, including extraction of C prototypes for module documentation.
· Plugins are provided for automatically saving tool help messages into text files.
· You can easily add your own plugins and/or build on top of existing ones.
· Provides an established method compiling and using gcc cross compilers in a fully version controlled way.
· A simple method of generating "lightweight versions" for small modifications to a large project.
· A simple method of generations "frozen versions" of revision-controlled source and object code.
· For optimum usability, all data is stored in the most direct way possible using ordinary directories, files and symbolic links.