Initial build for psu code manager

Add initial meson build env, empty c++ files, and the systemd service.
Add README and .gitignore
Add Matt as reviewer.

Tested: Verify build is OK and the service is installed to the correct
        dir.

Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: I21c060d2b98e8eafd4607cfce09038189e76d22f
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..84e0c9c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+# Repo Specific Items
+build/
diff --git a/MAINTAINERS b/MAINTAINERS
index 03b615e..f7855c2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -45,3 +45,4 @@
 M:  Lei Yu <mine260309@gmail.com> <LeiYU!>
 M:  Carol Wang <wangkair@cn.ibm.com> <CarolWang!>
 R:  Chicago Duan <duanzhijia01@inspur.com> <ChicagoDuan!>
+R:  Matt Spinler <spinler@us.ibm.com> <mspinler[m]!>
diff --git a/README b/README
new file mode 100644
index 0000000..14ace83
--- /dev/null
+++ b/README
@@ -0,0 +1,15 @@
+# phosphor-psu-code-mgmt
+
+phosphor-psu-code-mgmt is a service to provide management for PSU code,
+including:
+
+* PSU code version
+* PSU code update
+
+
+## Building
+
+```
+meson build/ && ninja -C build
+```
+
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..0e8a289
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,17 @@
+project('phosphor-psu-code-mgmt', 'cpp',
+        version: '0.1', meson_version: '>=0.49.0',
+        default_options: [
+          'warning_level=3',
+          'werror=true',
+          'cpp_std=c++17'
+        ])
+
+systemd = dependency('systemd')
+servicedir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
+
+configure_file(input: 'service/xyz.openbmc_project.Software.Psu.Updater.service',
+               output: 'xyz.openbmc_project.Software.Psu.Updater.service',
+               copy: true,
+               install_dir: servicedir)
+
+subdir('src')
diff --git a/service/xyz.openbmc_project.Software.Psu.Updater.service b/service/xyz.openbmc_project.Software.Psu.Updater.service
new file mode 100644
index 0000000..7597e7c
--- /dev/null
+++ b/service/xyz.openbmc_project.Software.Psu.Updater.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=OpenBMC PSU Code Manager
+Wants=xyz.openbmc_project.Software.Version.service
+After=xyz.openbmc_project.Software.Version.service
+Wants=obmc-mapper.target
+After=obmc-mapper.target
+
+[Service]
+ExecStart=/usr/bin/phosphor-psu-code-manager
+Restart=always
+Type=dbus
+BusName={BUSNAME}
+
+[Install]
+WantedBy=multi-user.target
diff --git a/src/activation.cpp b/src/activation.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/activation.cpp
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 0000000..905869d
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,4 @@
+int main()
+{
+    return 0;
+}
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..85263c8
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,16 @@
+phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
+phosphor_logging = dependency('phosphor-logging')
+sdbusplus = dependency('sdbusplus')
+
+executable(
+  'phosphor-psu-code-manager',
+  'activation.cpp',
+  'main.cpp',
+  implicit_include_directories: false,
+  dependencies: [
+    phosphor_logging,
+    phosphor_dbus_interfaces,
+    sdbusplus,
+  ],
+  install: true,
+  install_dir: get_option('bindir'))