Difference between revisions of "XCDL (eXtensible Component Definition Language) Wiki"

From XCDL (eXtensible Component Definition Language) Wiki
Jump to: navigation, search
m (References)
m (Continuous integration)
 
(4 intermediate revisions by the same user not shown)
Line 43: Line 43:
 
* [[XCDL remarks and criticism]]
 
* [[XCDL remarks and criticism]]
 
* [[Project_history|Project history]]
 
* [[Project_history|Project history]]
 +
* [[Scratchpad]]
  
 
== Old version (Python) pages ==
 
== Old version (Python) pages ==
Line 62: 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 10:14, 14 April 2015

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

Reference

SRS

How to use

TBD

License

The XCDL software is released under the MIT License.

Miscellaneous

Old version (Python) pages

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

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.