/* firmware_revision.h 
   This is used to store the revision number of the firmware.

   The numbering goes as follows:

   The version number consists of 3 decimal numbers separated by 
   decimal points.

   First number is the version number. A new version number would
   require a significant rewrite and redesign of the code with a 
   significant number of new and changed features.

   The second number is incremented when new features are added.
   It will be up to the software authors to determine what features
   have become available at each version number but the firmware.
   The firmware team should decide collectively when new features
   have become stable enough that the revision number should be 
   incremented.

   The final number is a build number. Every minor change not
   adding new features this should be incremented. While this
   will not affect the operation of tuning software it can be
   important for determining when firware is out of date and 
   notifying end users that fixes are available.
*/
#ifndef FIRMWARE_REVISION_H
  #define FIRMWARE_REVISION_H

  #define FIRMWARE_VERSION_MAJOR 1
  #define FIRMWARE_VERSION_MINOR 1
  #define FIRMWARE_VERSION_BUILD 29

  /* Some macros to compose complete version number */
  #define TO_STR(str)  #str
  #define VERSION(x, y, z)  TO_STR(x) "." TO_STR(y) "." TO_STR(z)
  #define VERSION_STR(x, y, z)  TO_STR(x) "." TO_STR(y) "." TO_STR(z) "\n"

  #define FIRMWARE_VERSION VERSION(FIRMWARE_VERSION_MAJOR, \
                                   FIRMWARE_VERSION_MINOR, \
                                   FIRMWARE_VERSION_BUILD )
  #define FIRMWARE_VERSION_STR VERSION_STR(FIRMWARE_VERSION_MAJOR, \
                                           FIRMWARE_VERSION_MINOR, \
                                           FIRMWARE_VERSION_BUILD )

  /* this is the manufacturer's string displayed when the unit is started up */
  #ifndef FIRMWARE_VENDOR
    #define FIRMWARE_VENDOR "V.E.M.S."
  #endif 
#endif

