Difference between revisions of "XCDL (eXtensible Component Definition Language) Wiki"
m (→Miscellaneous) |
m (→Continuous integration) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 63: | Line 63: | ||
* [http://www.openembedded.org/wiki/Main_Page OpenEmbedded] - the build framework for embedded Linux (with more detail in the [http://www.yoctoproject.org/documentation Yocto documentation]) | * [http://www.openembedded.org/wiki/Main_Page OpenEmbedded] - the build framework for embedded Linux (with more detail in the [http://www.yoctoproject.org/documentation Yocto documentation]) | ||
* [http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html BitBake User Manual] ([http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.pdf PDF]) | * [http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html BitBake User Manual] ([http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.pdf PDF]) | ||
+ | * [https://devmanual.gentoo.org/index.html Gentoo Development Guide] | ||
+ | * [https://guide.macports.org MacPorts Guide] | ||
+ | * [https://wiki.archlinux.org/index.php/PKGBUILD Arch PKGBUILD] | ||
+ | |||
+ | === Build tools === | ||
+ | |||
+ | For an exhaustive list, see [https://en.wikipedia.org/wiki/List_of_build_automation_software Wikipedia]. | ||
+ | |||
+ | * [https://maven.apache.org Apache Maven] (written in Java, XML configuration files) | ||
+ | * [http://scons.org SCons] (configuration files are Python scripts) | ||
+ | * [https://github.com/ruby/rake RAKE - Ruby Make] (tasks and dependencies in Ruby) | ||
+ | * [https://gradle.org Gradle] (written in Groovy) | ||
+ | * [http://www.cmake.org CMake] (written in C++; uses native builders like make) | ||
+ | * [https://github.com/waf-project/waf Waf] (a build tool written in Python) | ||
+ | * [https://www.gnu.org/software/make/ GNU Make] | ||
+ | |||
+ | === Continuous integration === | ||
+ | |||
+ | For an exhaustive list see [https://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software Wikipedia]. | ||
+ | |||
+ | * [http://hudson-ci.org Hudson] (the original Sun project, donated by Oracle to the Eclipse Foundation) | ||
+ | * [http://jenkins-ci.org Jenkins] (the more active fork, backed by the project creator) | ||
== MediaWiki links == | == MediaWiki links == |
Latest revision as of 09:14, 14 April 2015
Contents
Introduction
This SourceForge project aims to define and implement an eXtensible Component Definition Language (CDL) intended to configure and build complex, package based, multi-variant (multi-architecture, multi-board, multi-toolchain) embedded projects. It is inspired by eCos CDL and ARM CMSIS Pack. The primary projects to benefit from XCDL are µOS++ IIIe (as content for the components) and GNU ARM Eclipse plug-ins (as tools to manage the components).
Credits
XCDL was definitely inspired by the eCos CDL, and many concepts are borrowed from it, including large excerpts from the eCos manuals, especially from The eCos Component Writer’s Guide.
The XCDL Eclipse implementation also maintains a good degree of compatibility with the current ARM CMSIS Packs (v1.x). More CMSIS Packs features are planned to be integrated, so that XCDL to be a superset of CMSIS Pack.
Reference implementations
The reference implementation will include one or more Eclipse plug-ins as graphical configuration tools (part of GNU ARM Eclipse plug-ins), and several Python command line tools for non graphical environments (source code part of this project).
Although targeted to Eclipse, these specifications should not prevent other development environments to implement them, so, if needed, these specifications might be amended to make alternate implementations possible.
Specifications & documentation
- XCDL concepts and rationals
- The XCDL language
- XCDL packages
- The build process (not yet updated for XCDL)
- The XCDL graphical tools
Reference
SRS
How to use
TBD
License
The XCDL software is released under the MIT License.
Miscellaneous
- eCos CDL remarks and criticism
- CMSIS Pack remarks and criticism
- XCDL remarks and criticism
- Project history
- Scratchpad
Old version (Python) pages
- The XCDL.py Software Requirements Specifications (outdated!)
- The XCDL.py Definitions Reference (outdated)
- The XCDL.py Tools Reference (outdated)
- The XCDL.py first run (outdated!)
References
- eCos - The embedded configurable operating system by Cygnus Solutions (Wikipedia)
- Manual: The eCos Component Writer’s Guide, by Bart Veer and John Dallaway, published in 2001, available from eCos Documentation.
- Book: Embedded software development with eCos, by Anthony J. Massa, published in 2003 at Prentice Hall, available from Amazon
- Book: Software Build Systems: Principles and Experience, by Peter Smith, published in 2011 at Addison Wesley, available from Amazon
- IEEE Std 830-1998: IEEE Recommended Practice for Software Requirements Specifications, published in 1998
- CMSIS-Pack - ARM mechanism to install software, device support, APIs, and example projects
Distribution management systems
- OpenEmbedded - the build framework for embedded Linux (with more detail in the Yocto documentation)
- BitBake User Manual (PDF)
- Gentoo Development Guide
- MacPorts Guide
- Arch PKGBUILD
Build tools
For an exhaustive list, see Wikipedia.
- Apache Maven (written in Java, XML configuration files)
- SCons (configuration files are Python scripts)
- RAKE - Ruby Make (tasks and dependencies in Ruby)
- Gradle (written in Groovy)
- CMake (written in C++; uses native builders like make)
- Waf (a build tool written in Python)
- GNU Make
Continuous integration
For an exhaustive list see Wikipedia.
- Hudson (the original Sun project, donated by Oracle to the Eclipse Foundation)
- Jenkins (the more active fork, backed by the project creator)
MediaWiki links
Consult the User's Guide for information on using the wiki software.