/eCMD

Primary LanguageCApache License 2.0Apache-2.0

Overview
========
eCMD is the hardware access API for IBM Systems.  It provides the user
a consistent way to address hardware between system types and even across
processor generations.

The core of eCMD is a C/C++ programing API.  Built on top of that are a 
cmdline, python module and perl module.

Distros
=============
eCMD will build for Linux x86, x86_64, ppc64 and ppc64le

RHEL, Ubuntu, Fedora and Debian have all been tested and makefile configs
for recent releases are included.

--------   ---------   ------  ↑
|python|   |cmdline|   |perl|  |
--------   ---------   ------  |
    \          |         /     eCMD
     \         |        /      Code
     ---------------------     Base
     | C Programming API |     |
     ---------------------     |
               |               ↓
---------------|---------------
               |
        ---------------
        | eCMD Plugin |
        ---------------
               |
               |
         ------------
         | Hardware |
         ------------

Building
========
To build eCMD you need to generate a makefile.config
That is done via the config.py script in the top level
To create:
~/ecmd$ ./config.py 
Writing /home/user/ecmd/makefile.config

If config.py isn't called, you'll see an error like this:
makefile.base:45: *** makefile.config not found!  Please run config.py in ~/ecmd/.  Stop.

To build, then invoke make
~/ecmd$ make

The make runs through 4 steps
- creates output directories
- creates any generated source
- builds all source
- runs simple build tests

A build will take about 1-2 minutes

Install
=======
By default, the install is done into an install dir in your repo.
You can change this by setting INSTALL_PATH before calling config.py

~/ecmd$ make install

Documentation
=============
Please see docs/README for instructions on how to generate API documentation

License
=======
See LICENSE