VOL-3964: Makefile changes for cpp proto genaration and Readme.md added with prerequisite

Change-Id: Iabfb43508d870601144cee651ef6df2414c24230
diff --git a/cpp/dmi/commons.pb.h b/cpp/dmi/commons.pb.h
new file mode 100644
index 0000000..6b10482
--- /dev/null
+++ b/cpp/dmi/commons.pb.h
@@ -0,0 +1,142 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: dmi/commons.proto
+
+#ifndef PROTOBUF_INCLUDED_dmi_2fcommons_2eproto
+#define PROTOBUF_INCLUDED_dmi_2fcommons_2eproto
+
+#include <limits>
+#include <string>
+
+#include <google/protobuf/port_def.inc>
+#if PROTOBUF_VERSION < 3007000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3007000 < PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/port_undef.inc>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
+#include <google/protobuf/extension_set.h>  // IWYU pragma: export
+#include <google/protobuf/generated_enum_reflection.h>
+// @@protoc_insertion_point(includes)
+#include <google/protobuf/port_def.inc>
+#define PROTOBUF_INTERNAL_EXPORT_dmi_2fcommons_2eproto
+
+// Internal implementation detail -- do not use these members.
+struct TableStruct_dmi_2fcommons_2eproto {
+  static const ::google::protobuf::internal::ParseTableField entries[]
+    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
+  static const ::google::protobuf::internal::AuxillaryParseTableField aux[]
+    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
+  static const ::google::protobuf::internal::ParseTable schema[1]
+    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
+  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+  static const ::google::protobuf::internal::SerializationTable serialization_table[];
+  static const ::google::protobuf::uint32 offsets[];
+};
+void AddDescriptors_dmi_2fcommons_2eproto();
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
+namespace dmi {
+
+enum Status {
+  UNDEFINED_STATUS = 0,
+  OK_STATUS = 1,
+  ERROR_STATUS = 2,
+  Status_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
+  Status_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
+};
+bool Status_IsValid(int value);
+const Status Status_MIN = UNDEFINED_STATUS;
+const Status Status_MAX = ERROR_STATUS;
+const int Status_ARRAYSIZE = Status_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* Status_descriptor();
+inline const ::std::string& Status_Name(Status value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    Status_descriptor(), value);
+}
+inline bool Status_Parse(
+    const ::std::string& name, Status* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<Status>(
+    Status_descriptor(), name, value);
+}
+enum LogLevel {
+  TRACE = 0,
+  DEBUG = 1,
+  INFO = 2,
+  WARN = 3,
+  ERROR = 4,
+  LogLevel_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
+  LogLevel_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
+};
+bool LogLevel_IsValid(int value);
+const LogLevel LogLevel_MIN = TRACE;
+const LogLevel LogLevel_MAX = ERROR;
+const int LogLevel_ARRAYSIZE = LogLevel_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* LogLevel_descriptor();
+inline const ::std::string& LogLevel_Name(LogLevel value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    LogLevel_descriptor(), value);
+}
+inline bool LogLevel_Parse(
+    const ::std::string& name, LogLevel* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<LogLevel>(
+    LogLevel_descriptor(), name, value);
+}
+// ===================================================================
+
+
+// ===================================================================
+
+
+// ===================================================================
+
+#ifdef __GNUC__
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif  // __GNUC__
+#ifdef __GNUC__
+  #pragma GCC diagnostic pop
+#endif  // __GNUC__
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace dmi
+
+namespace google {
+namespace protobuf {
+
+template <> struct is_proto_enum< ::dmi::Status> : ::std::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::dmi::Status>() {
+  return ::dmi::Status_descriptor();
+}
+template <> struct is_proto_enum< ::dmi::LogLevel> : ::std::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::dmi::LogLevel>() {
+  return ::dmi::LogLevel_descriptor();
+}
+
+}  // namespace protobuf
+}  // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#include <google/protobuf/port_undef.inc>
+#endif  // PROTOBUF_INCLUDED_dmi_2fcommons_2eproto