diff --git a/.gitignore b/.gitignore
index 0b4cff4..59ede25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,6 @@
 *_test
 libtool
 *.service
+build*/
+subprojects/*
+!subprojects/*.wrap
diff --git a/README.md b/README.md
index c35ebb6..9c23c26 100755
--- a/README.md
+++ b/README.md
@@ -27,25 +27,25 @@
   * To disable from building, provide the `--disable-control` flag at
   *configure* time:
   ```
-  ./configure ${CONFIGURE_FLAGS} --disable-control
+  meson build -Ddisable-control
   ```
 * [Fan Presence Detection](#fan-presence-detection)
-  * To disable from building, provide the `--disable-presence` flag at
+  * To disable from building, provide the `-Ddisable-presence` flag at
   *configure* time:
   ```
-  ./configure ${CONFIGURE_FLAGS} --disable-presence
+  meson build -Ddisable-presence
   ```
 * [Fan Monitoring](#fan-monitoring)
-  * To disable from building, provide the `--disable-monitor` flag at
+  * To disable from building, provide the `-Ddisable-monitor` flag at
   *configure* time:
   ```
-  ./configure ${CONFIGURE_FLAGS} --disable-monitor
+  meson build -Ddisable-monitor
   ```
 * [Cooling Type](#cooling-type)
-  * To disable from building, provide the `--disable-cooling-type` flag at
+  * To disable from building, provide the `-Ddisable-cooling-type` flag at
   *configure* time:
   ```
-  ./configure ${CONFIGURE_FLAGS} --disable-cooling-type
+  meson build -Ddisable-cooling-type
   ```
 
 The following applications must be enabled at *configure* time to be built:
@@ -53,7 +53,7 @@
   * To enable building this, provide the `--enable-sensor-monitor` flag at
   *configure* time:
   ```
-  ./configure ${CONFIGURE_FLAGS} --enable-sensor-monitor
+  meson build -Denable-sensor-monitor
   ```
 
 To clean the repository run `./bootstrap.sh clean`.
diff --git a/control/functor.hpp b/control/functor.hpp
index 59e15df..da5ffe1 100644
--- a/control/functor.hpp
+++ b/control/functor.hpp
@@ -102,7 +102,7 @@
      * Extract the property from the PropertiesChanged
      * message and run the handler function.
      */
-    void operator()(sdbusplus::bus_t& bus, sdbusplus::message_t& msg,
+    void operator()(sdbusplus::bus_t&, sdbusplus::message_t& msg,
                     Zone& zone) const
     {
         if (msg)
@@ -403,7 +403,7 @@
      * Extract the name owner from the NameOwnerChanged
      * message and run the handler function.
      */
-    void operator()(sdbusplus::bus_t& bus, sdbusplus::message_t& msg,
+    void operator()(sdbusplus::bus_t&, sdbusplus::message_t& msg,
                     Zone& zone) const
     {
         if (msg)
diff --git a/control/main.cpp b/control/main.cpp
index 90f8e5c..201f7b0 100644
--- a/control/main.cpp
+++ b/control/main.cpp
@@ -16,14 +16,13 @@
 #include "config.h"
 
 #ifndef CONTROL_USE_JSON
-#include "../utils/flight_recorder.hpp"
 #include "argument.hpp"
 #include "manager.hpp"
 #else
+#include "../utils/flight_recorder.hpp"
 #include "json/manager.hpp"
 #endif
 
-#include "event.hpp"
 #include "sdbusplus.hpp"
 #include "sdeventplus.hpp"
 
diff --git a/control/meson.build b/control/meson.build
new file mode 100644
index 0000000..5225b0c
--- /dev/null
+++ b/control/meson.build
@@ -0,0 +1,107 @@
+
+include_dirs=[
+    '.',
+    '..'
+]
+
+deps=[
+    phosphor_dbus_interfaces_dep,
+    phosphor_logging_dep,
+    sdbusplus_dep,
+    sdeventplus_dep
+]
+
+sources = ['main.cpp']
+
+if conf.has('CONTROL_USE_JSON')
+    deps += json_dep
+    include_dirs += [
+        './json',
+        './json/actions',
+        './json/triggers'
+    ]
+    sources += [
+        'json/dbus_zone.cpp',
+        'json/event.cpp',
+        'json/fan.cpp',
+        'json/group.cpp',
+        'json/manager.cpp',
+        'json/profile.cpp',
+        'json/zone.cpp',
+        'json/actions/count_state_floor.cpp',
+        'json/actions/count_state_target.cpp',
+        'json/actions/default_floor.cpp',
+        'json/actions/get_managed_objects.cpp',
+        'json/actions/mapped_floor.cpp',
+        'json/actions/missing_owner_target.cpp',
+        'json/actions/net_target_decrease.cpp',
+        'json/actions/net_target_increase.cpp',
+        'json/actions/override_fan_target.cpp',
+        'json/actions/pcie_card_floors.cpp',
+        'json/actions/request_target_base.cpp',
+        'json/actions/set_parameter_from_group_max.cpp',
+        'json/actions/timer_based_actions.cpp',
+        'json/utils/flight_recorder.cpp',
+        'json/utils/modifier.cpp',
+        'json/utils/pcie_card_metadata.cpp',
+        'json/triggers/init.cpp',
+        'json/triggers/parameter.cpp',
+        'json/triggers/signal.cpp',
+        'json/triggers/timer.cpp'
+    ]
+else
+    fan_zone_defs_cpp_dep = custom_target(
+        'fan_zone_defs.cpp',
+        input: files(
+            './gen-fan-zone-defs.py',
+            conf.get_unquoted('FAN_DEF_YAML_FILE'),
+            conf.get_unquoted('FAN_ZONE_YAML_FILE'),
+            conf.get_unquoted('ZONE_EVENTS_YAML_FILE'),
+            conf.get_unquoted('ZONE_CONDITIONS_YAML_FILE')
+        ),
+        command: [
+            python_prog, '@INPUT0@',
+            '-f','@INPUT1@',
+            '-z','@INPUT2@',
+            '-e','@INPUT3@',
+            '-c','@INPUT4@',
+            '-o', 'control'
+        ],
+        output: 'fan_zone_defs.cpp'
+    )
+
+    sources += [
+        'actions.cpp',
+        'argument.cpp',
+        'fan.cpp',
+        fan_zone_defs_cpp_dep,
+        'manager.cpp',
+        'preconditions.cpp',
+        'triggers.cpp',
+        'utility.cpp',
+        'zone.cpp'
+    ]
+
+endif
+
+phosphor_fan_control_include_directories = include_directories(include_dirs)
+phosphor_fan_control = executable(
+    'phosphor-fan-control',
+    sources,
+    dependencies:deps,
+    implicit_include_directories: false,
+    include_directories: phosphor_fan_control_include_directories,
+    install: true
+)
+
+fanctl = executable(
+  'fanctl',
+  'fanctl.cpp',
+      dependencies: [
+          cli11_dep,
+          fmt_dep,
+          sdbusplus_dep
+      ],
+  include_directories: phosphor_fan_control_include_directories,
+  install: true
+)
diff --git a/control/service_files/json/phosphor-fan-control@.service b/control/service_files/json/phosphor-fan-control@.service
new file mode 100644
index 0000000..5085590
--- /dev/null
+++ b/control/service_files/json/phosphor-fan-control@.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Phosphor Fan Control Daemon
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-control
diff --git a/control/service_files/yaml/phosphor-fan-control-init@.service b/control/service_files/yaml/phosphor-fan-control-init@.service
new file mode 100644
index 0000000..c012be8
--- /dev/null
+++ b/control/service_files/yaml/phosphor-fan-control-init@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Phosphor Fan Control Initialization
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Conflicts=obmc-chassis-powered-off@%i.target
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-control --init
+SyslogIdentifier=phosphor-fan-control
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/control/service_files/yaml/phosphor-fan-control@.service b/control/service_files/yaml/phosphor-fan-control@.service
new file mode 100644
index 0000000..693363a
--- /dev/null
+++ b/control/service_files/yaml/phosphor-fan-control@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Phosphor Fan Control Daemon
+Conflicts=obmc-chassis-powered-off@%i.target
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-control --control
+SyslogIdentifier=phosphor-fan-control
+
+[Install]
+RequiredBy=obmc-fan-control-ready@%i.target
diff --git a/cooling-type/meson.build b/cooling-type/meson.build
new file mode 100644
index 0000000..a8a4577
--- /dev/null
+++ b/cooling-type/meson.build
@@ -0,0 +1,27 @@
+phosphor_fan_sensor_monitor_include_directories = include_directories(
+    '.',
+    '..'
+)
+
+source=[
+    'argument.cpp',
+    'cooling_type.cpp',
+    'cooling_type.hpp',
+    'main.cpp'
+]
+
+deps=[
+    libevdev_dep,
+    phosphor_dbus_interfaces_dep,
+    phosphor_logging_dep,
+    sdeventplus_dep
+]
+
+phosphor_fan_cooling_type = executable(
+    'phosphor-cooling-type',
+    source,
+    dependencies: deps,
+    implicit_include_directories: false,
+    include_directories: ['..'],
+    install: true
+)
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..42d1eae
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,203 @@
+project(
+    'phosphor-fan-presence',
+    'cpp',
+    default_options: [
+        'warning_level=3',
+        'werror=true',
+        'cpp_std=c++20',
+        'buildtype=debugoptimized',
+        'prefix=/usr'
+    ],
+    license: 'Apache-2.0',
+    version: '1.0',
+    meson_version: '>=0.57.0',
+)
+
+python_prog = find_program('python3', native: true)
+
+cpp = meson.get_compiler('cpp')
+
+cli11_dep = dependency('cli11', required: false)
+
+if not meson.get_compiler('cpp').has_header_symbol(
+    'CLI/CLI.hpp',
+    'CLI::App',
+    dependencies: cli11_dep,
+    required: false)
+    cli11_proj = subproject('cli11', required:false)
+    assert(cli11_proj.found(), 'CLI11 is required')
+    cli11_dep = cli11_proj.get_variable('CLI11_dep')
+endif
+
+fmt_dep = dependency('fmt')
+json_dep = declare_dependency()
+
+phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
+phosphor_logging_dep = dependency('phosphor-logging')
+sdbusplus_dep = dependency('sdbusplus')
+sdeventplus_dep = dependency('sdeventplus')
+stdplus_dep = dependency('stdplus')
+systemd_dep = dependency('systemd')
+
+if(get_option('tests').enabled())
+    gmock_dep = dependency('gmock', disabler: true)
+    gtest_dep = dependency('gtest', main: true, disabler: true, required: false)
+
+    if not gtest_dep.found() or not gmock_dep.found()
+        gtest_proj = import('cmake').subproject('googletest', required: false)
+        if gtest_proj.found()
+            gtest_dep = declare_dependency(
+                dependencies: [
+                    dependency('threads'),
+                    gtest_proj.dependency('gtest'),
+                    gtest_proj.dependency('gtest_main'),
+                ]
+            )
+            gmock_dep = gtest_proj.dependency('gmock')
+        else
+            assert(
+                not get_option('tests').enabled(),
+                'Googletest is required if tests are enabled'
+            )
+        endif
+    endif
+    subdir('test')
+endif
+
+
+servicedir = systemd_dep.get_variable('systemdsystemunitdir')
+usr_share_dir = '/usr/share/phosphor-fan-presence'
+
+conf = configuration_data()
+
+# Control
+conf.set_quoted(
+    'CONTROL_PERSIST_ROOT_PATH', get_option('control-persist-root-path'))
+conf.set_quoted(
+    'CONTROL_BUSNAME', get_option('control-busname'))
+conf.set_quoted(
+    'CONTROL_OBJPATH', get_option('control-objpath'))
+conf.set_quoted(
+    'CONTROL_PERSIST_ROOT_PATH', get_option('control-persist-root-path'))
+
+conf.set_quoted(
+    'FAN_DEF_YAML_FILE', get_option('fan-def-yaml-file'))
+conf.set_quoted(
+    'FAN_ZONE_YAML_FILE', get_option('fan-zone-yaml-file'))
+conf.set_quoted(
+    'ZONE_EVENTS_YAML_FILE', get_option('zone-events-yaml-file'))
+conf.set_quoted(
+    'ZONE_CONDITIONS_YAML_FILE', get_option('zone-conditions-yaml-file'))
+
+# Monitor
+conf.set(
+    'NUM_MONITOR_LOG_ENTRIES', get_option('num-monitor-log-entries'))
+conf.set_quoted(
+    'THERMAL_ALERT_BUSNAME', get_option('thermal-alert-busname'))
+conf.set_quoted(
+    'THERMAL_ALERT_OBJPATH', get_option('thermal-alert-objpath'))
+conf.set_quoted(
+    'FAN_MONITOR_YAML_FILE', get_option('fan-monitor-yaml-file'))
+
+# Fan control can be in YAML mode when everything else is in JSON mode
+control_conf_type = 'yaml'
+if get_option('json-config').enabled() and get_option('json-control').enabled()
+    control_conf_type = 'json'
+endif
+
+# JSON-or-YAML (all programs)
+if get_option('json-config').enabled()
+    conf.set('PRESENCE_USE_JSON', '')
+    if control_conf_type == 'json'
+        conf.set('CONTROL_USE_JSON', '')
+    endif
+    conf.set('MONITOR_USE_JSON', '')
+
+    if not cpp.has_header('nlohmann/json.hpp')
+        json_dep = dependency('nlohmann_json')
+    endif
+    conf_type = 'json'
+else
+    conf_type = 'yaml'
+endif
+
+conf.set(
+    'NUM_PRESENCE_LOG_ENTRIES', get_option('num-presence-log-entries'))
+conf.set_quoted(
+    'PRESENCE_YAML_FILE', get_option('presence-config'))
+
+# Sensor
+if get_option('enable-host-state').enabled()
+    conf.set('ENABLE_HOST_STATE', '')
+endif
+
+conf.set_quoted(
+    'SENSOR_MONITOR_PERSIST_ROOT_PATH', get_option('sensor-monitor-root-path'))
+conf.set(
+    'SHUTDOWN_ALARM_HARD_SHUTDOWN_DELAY_MS', get_option('sensor-monitor-hard-shutdown-delay'))
+conf.set(
+    'SHUTDOWN_ALARM_SOFT_SHUTDOWN_DELAY_MS', get_option('sensor-monitor-soft-shutdown-delay'))
+
+configure_file(output: 'config.h', configuration: conf)
+
+# Service: [name,[svcfiles]]
+services = []
+
+if get_option('control-service').enabled()
+    subdir('control')
+    service_files = ['phosphor-fan-control@.service']
+    if control_conf_type == 'yaml'
+        service_files += 'phosphor-fan-control-init@.service'
+    endif
+    services += [['control', service_files]]
+endif
+
+if get_option('monitor-service').enabled()
+    subdir('monitor')
+    service_files = ['phosphor-fan-monitor@.service']
+    if not get_option('json-config').enabled()
+        service_files += 'phosphor-fan-monitor-init@.service'
+    endif
+    services += [['monitor', service_files]]
+endif
+
+if get_option('cooling-type-service').enabled()
+    libevdev_dep = dependency('libevdev')
+    subdir('cooling-type')
+endif
+
+if get_option('presence-service').enabled()
+    libevdev_dep = dependency('libevdev')
+    subdir('presence')
+    services += [['presence', ['phosphor-fan-presence-tach@.service']]]
+endif
+
+if get_option('sensor-monitor-service').enabled()
+    subdir('sensor-monitor')
+    install_data('sensor-monitor/service_files/sensor-monitor.service',
+        install_dir: servicedir)
+endif
+
+foreach service : services
+    this_conf_type = conf_type
+
+    if service[0] == 'control'
+        this_conf_type = control_conf_type
+    endif
+
+    foreach service_file : service[1]
+        install_data(service[0] / 'service_files' / this_conf_type / service_file,
+                     install_dir: servicedir)
+    endforeach
+
+    if this_conf_type == 'json'
+        fs = import('fs')
+        dir = meson.current_source_dir() / service[0] / 'config_files' / get_option('machine-name')
+        if fs.is_dir(dir)
+            install_subdir(service[0] / 'config_files' / get_option('machine-name'),
+                          install_dir: usr_share_dir / service[0],
+                          strip_directory: true)
+        endif
+    endif
+endforeach
+
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..6687422
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,136 @@
+
+option(
+    'tests', type: 'feature', value: 'enabled', description: 'Build tests.',
+)
+
+option(
+    'json-config', type: 'feature', value: 'enabled',
+    description: 'Use json at runtime to configure fan packages.'
+)
+
+option(
+    'machine-name', type: 'string', value: '',
+    description: 'Machine name being built. Used to install the proper JSON config files.'
+)
+
+# Control
+
+option(
+    'control-service', type: 'feature', value: 'enabled',
+    description: 'Build fan control service.'
+)
+
+option(
+    'json-control', type: 'feature', value: 'enabled',
+    description: 'Disable JSON based fan control even if json-config is enabled.'
+)
+
+option(
+    'control-busname', type: 'string', value: 'xyz.openbmc_project.Control.Thermal',
+    description: 'Application\'s D-Bus busname to own.'
+)
+
+option(
+    'control-objpath', type: 'string', value: '/xyz/openbmc_project/control/thermal',
+    description: 'Application\'s root D-Bus object path.'
+)
+
+option(
+    'control-persist-root-path', type: 'string', value: '/var/lib/phosphor-fan-presence/control',
+    description: 'Base location to persist zone property states'
+)
+
+option(
+    'fan-def-yaml-file', type: 'string', value: 'example/fans.yaml',
+    description: 'Build time fan configuration file'
+)
+option(
+    'fan-zone-yaml-file', type: 'string', value: 'example/zones.yaml',
+    description: 'Build time fan configuration file'
+)
+option(
+    'zone-events-yaml-file', type: 'string', value: 'example/events.yaml',
+    description: 'Build time fan configuration file'
+)
+option(
+    'zone-conditions-yaml-file', type: 'string', value: 'example/zone_conditions.yaml',
+    description: 'Build time fan configuration file'
+)
+
+# Monitor
+
+option(
+    'monitor-service', type: 'feature', value: 'enabled',
+    description: 'Build fan monitor service'
+)
+
+option(
+    'fan-monitor-yaml-file', type: 'string', value: 'example/monitor.yaml',
+    description: 'Location of the config file'
+)
+
+option(
+    'num-monitor-log-entries', type: 'integer', value: 75,
+    description: 'Maximum number of entries in the monitor log.'
+)
+
+option(
+    'thermal-alert-busname', type: 'string', value: 'xyz.openbmc_project.Thermal.Alert',
+    description: 'Application\'s D-Bus busname to own.'
+)
+
+option(
+    'thermal-alert-objpath', type: 'string', value: '/xyz/openbmc_project/alerts/thermal_fault_alert',
+    description: 'Application\'s root D-Bus object path.'
+)
+
+# Presence
+
+option(
+    'presence-service', type: 'feature', value: 'enabled',
+    description: 'Build fan presence service.'
+)
+
+option(
+    'presence-config', type: 'string', value: 'example/example.yaml',
+    description: 'Location of the config file'
+)
+
+option(
+    'num-presence-log-entries', type: 'integer', value: 50,
+    description: 'Maximum number of entries in the presence log.'
+)
+
+# Sensor Monitor
+
+option(
+    'sensor-monitor-service', type: 'feature', value: 'enabled',
+    description: 'Build sensor monitor.'
+)
+
+option(
+    'sensor-monitor-root-path', type: 'string', value: '/xyz/openbmc_project/alerts/thermal_fault_alert',
+    description: 'Application\'s root D-Bus object path.'
+)
+
+option(
+    'sensor-monitor-hard-shutdown-delay', type: 'integer', value: 23000,
+    description: 'Milliseconds to delay the alarm before hard shutdown.'
+)
+
+option(
+    'sensor-monitor-soft-shutdown-delay', type: 'integer', value: 900000,
+    description: 'Milliseconds to delay the alarm before soft shutdown.'
+)
+
+# Other
+
+option(
+    'cooling-type-service', type: 'feature', value: 'disabled',
+    description: 'Build cooling-type package.'
+)
+
+option(
+    'enable-host-state', type: 'feature', value: 'disabled',
+    description: 'Enable host state.'
+)
diff --git a/monitor/meson.build b/monitor/meson.build
new file mode 100644
index 0000000..d708cca
--- /dev/null
+++ b/monitor/meson.build
@@ -0,0 +1,59 @@
+phosphor_fan_monitor_include_directories = include_directories(
+    '.',
+    '..'
+)
+
+sources=[
+    'argument.cpp',
+    'conditions.cpp',
+    'fan.cpp',
+    'fan_error.cpp',
+    'json_parser.cpp',
+    'logging.cpp',
+    'main.cpp',
+    'power_interface.cpp',
+    'system.cpp',
+    'tach_sensor.cpp',
+    '../hwmon_ffdc.cpp'
+]
+
+deps=[
+    json_dep,
+    phosphor_dbus_interfaces_dep,
+    phosphor_logging_dep,
+    sdbusplus_dep,
+    sdeventplus_dep
+]
+
+# Only needed for YAML config
+if get_option('json-config').disabled()
+    fan_monitor_defs_cpp_dep = custom_target(
+        'fan_monitor_defs.cpp',
+        input: files(
+            './gen-fan-monitor-defs.py',
+            conf.get_unquoted('FAN_MONITOR_YAML_FILE'),
+        ),
+        command: [
+            python_prog, '@INPUT0@',
+            '-m','@INPUT1@',
+            '-o','monitor'
+        ],
+        output: 'fan_monitor_defs.cpp'
+    )
+
+    sources += fan_monitor_defs_cpp_dep
+endif
+
+phosphor_fan_monitor = executable(
+    'phosphor-fan-monitor',
+    sources,
+    dependencies: deps,
+    implicit_include_directories: false,
+    include_directories: phosphor_fan_monitor_include_directories,
+    install: true
+)
+
+if(get_option('tests').enabled())
+    subdir('test')
+endif
+
diff --git a/monitor/service_files/json/phosphor-fan-monitor@.service b/monitor/service_files/json/phosphor-fan-monitor@.service
new file mode 100644
index 0000000..34dc600
--- /dev/null
+++ b/monitor/service_files/json/phosphor-fan-monitor@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Phosphor Fan Monitor Daemon
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-monitor
diff --git a/monitor/service_files/yaml/phosphor-fan-monitor-init@.service b/monitor/service_files/yaml/phosphor-fan-monitor-init@.service
new file mode 100644
index 0000000..41c0b3e
--- /dev/null
+++ b/monitor/service_files/yaml/phosphor-fan-monitor-init@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Phosphor Fan Monitor Initialization
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Conflicts=obmc-chassis-powered-off@%i.target
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-monitor --init
+SyslogIdentifier=phosphor-fan-monitor
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/monitor/service_files/yaml/phosphor-fan-monitor@.service b/monitor/service_files/yaml/phosphor-fan-monitor@.service
new file mode 100644
index 0000000..0819e7c
--- /dev/null
+++ b/monitor/service_files/yaml/phosphor-fan-monitor@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Phosphor Fan Monitor Daemon
+Conflicts=obmc-chassis-powered-off@%i.target
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-monitor --monitor
+SyslogIdentifier=phosphor-fan-monitor
+
+[Install]
+RequiredBy=obmc-fan-control-ready@%i.target
diff --git a/monitor/test/meson.build b/monitor/test/meson.build
new file mode 100644
index 0000000..4955691
--- /dev/null
+++ b/monitor/test/meson.build
@@ -0,0 +1,40 @@
+phosphor_fan_monitor_test_include_directories = include_directories(
+    '../..'
+)
+
+test_deps=[
+    fmt_dep,
+    gmock_dep,
+    gtest_dep,
+    json_dep,
+    phosphor_logging_dep,
+    sdeventplus_dep
+]
+
+test_sources=[
+    files(
+        '../logging.cpp',
+    )
+]
+
+test(
+    'power_off_cause',
+    executable(
+        'power_off_cause',
+        'power_off_cause_test.cpp',
+        dependencies:test_deps,
+        implicit_include_directories: false,
+        include_directories: [phosphor_fan_monitor_test_include_directories]
+    )
+)
+
+test(
+    'power_off_rule_test',
+    executable(
+        'power_off_rule_test',
+        sources:test_sources,
+        dependencies: test_deps,
+        implicit_include_directories: false,
+        include_directories: phosphor_fan_monitor_test_include_directories,
+    )
+)
diff --git a/presence/meson.build b/presence/meson.build
new file mode 100644
index 0000000..d3028d6
--- /dev/null
+++ b/presence/meson.build
@@ -0,0 +1,57 @@
+
+phosphor_fan_presence_include_directories = include_directories(
+    '.',
+    '..'
+)
+
+sources=[
+    'anyof.cpp',
+    'error_reporter.cpp',
+    'fallback.cpp',
+    'fan.cpp',
+    'get_power_state.cpp',
+    'gpio.cpp',
+    'json_parser.cpp',
+    'logging.cpp',
+    'psensor.cpp',
+    'tach.cpp',
+    'tach_detect.cpp'
+]
+
+deps=[
+    libevdev_dep,
+    phosphor_dbus_interfaces_dep,
+    phosphor_logging_dep,
+    sdbusplus_dep,
+    sdeventplus_dep
+]
+
+# Only needed for YAML config
+if get_option('json-config').disabled()
+    generated_hpp_dep = custom_target(
+        'generated.hpp',
+        input: files(
+            './pfpgen.py',
+            conf.get_unquoted('PRESENCE_YAML_FILE')
+        ),
+        command: [
+            python_prog, '@INPUT0@',
+            'generate-cpp',
+            '-i', '@INPUT1@'
+        ],
+        capture: true,
+        output: 'generated.hpp'
+    )
+
+    sources += generated_hpp_dep
+endif
+
+phosphor_fan_presence = executable(
+    'phosphor-fan-presence-tach',
+    sources,
+    dependencies : deps,
+    implicit_include_directories: false,
+    include_directories: phosphor_fan_presence_include_directories,
+    install: true
+)
+
diff --git a/presence/service_files/json/phosphor-fan-presence-tach@.service b/presence/service_files/json/phosphor-fan-presence-tach@.service
new file mode 100644
index 0000000..5cad843
--- /dev/null
+++ b/presence/service_files/json/phosphor-fan-presence-tach@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Phosphor Fan Presence Tach Daemon
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-presence-tach
diff --git a/presence/service_files/yaml/phosphor-fan-presence-tach@.service b/presence/service_files/yaml/phosphor-fan-presence-tach@.service
new file mode 100644
index 0000000..33c2408
--- /dev/null
+++ b/presence/service_files/yaml/phosphor-fan-presence-tach@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Phosphor Fan Presence Tach Daemon
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Conflicts=obmc-chassis-powered-off@%i.target
+
+[Service]
+Restart=on-failure
+ExecStart=/usr/bin/phosphor-fan-presence-tach
+SyslogIdentifier=phosphor-fan-presence-tach
+
+[Install]
+RequiredBy=obmc-chassis-poweron@%i.target
diff --git a/presence/test/fallbacktest.cpp b/presence/test/fallbacktest.cpp
index daa0b50..de4a54d 100644
--- a/presence/test/fallbacktest.cpp
+++ b/presence/test/fallbacktest.cpp
@@ -15,7 +15,7 @@
 {
 namespace presence
 {
-void setPresence(const Fan& fan, bool newState)
+void setPresence(const Fan&, bool newState)
 {
     if (newState)
     {
@@ -68,7 +68,7 @@
     // Validate a single sensor.
     // Validate on->off->on.
     pstate = -1;
-    Fan fan{"/path", "name"};
+    Fan fan{"/path", "name", 0};
     TestSensor ts;
     ts._present = true;
     std::vector<std::reference_wrapper<PresenceSensor>> sensors{ts};
@@ -99,7 +99,7 @@
     // Validate both sensors on->off->on
 
     pstate = -1;
-    Fan fan{"/path", "name"};
+    Fan fan{"/path", "name", 0};
     TestSensor ts1, ts2;
     ts1._present = true;
     ts2._present = true;
diff --git a/presence/test/meson.build b/presence/test/meson.build
new file mode 100644
index 0000000..15de777
--- /dev/null
+++ b/presence/test/meson.build
@@ -0,0 +1,20 @@
+
+test_include_directories = include_directories(
+    '../..'
+)
+
+test_deps=[
+    gmock_dep,
+    gtest_dep,
+]
+
+test(
+    'logger_test',
+    executable(
+        'logger_test',
+        'fallbacktest.cpp',
+        dependencies:test_deps,
+        implicit_include_directories: false,
+        include_directories: [test_include_directories]
+    )
+)
diff --git a/sensor-monitor/meson.build b/sensor-monitor/meson.build
new file mode 100644
index 0000000..64f8b16
--- /dev/null
+++ b/sensor-monitor/meson.build
@@ -0,0 +1,25 @@
+phosphor_fan_sensor_monitor_include_directories = include_directories(
+    '.',
+    '..'
+)
+
+source=[
+    'main.cpp',
+    'shutdown_alarm_monitor.cpp',
+    'threshold_alarm_logger.cpp'
+]
+
+deps=[
+    phosphor_dbus_interfaces_dep,
+    phosphor_logging_dep,
+    sdeventplus_dep
+]
+
+phosphor_fan_sensor_monitor = executable(
+    'sensor-monitor',
+    source,
+    dependencies: deps,
+    implicit_include_directories: false,
+    include_directories: ['..'],
+    install: true
+)
diff --git a/sensor-monitor/service_files/sensor-monitor.service b/sensor-monitor/service_files/sensor-monitor.service
new file mode 100644
index 0000000..8c952ae
--- /dev/null
+++ b/sensor-monitor/service_files/sensor-monitor.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Sensor Monitor
+Wants=xyz.openbmc_project.Logging.service
+After=xyz.openbmc_project.Logging.service
+Wants=obmc-mapper.target
+After=obmc-mapper.target
+
+[Service]
+Restart=always
+ExecStart=/usr/bin/sensor-monitor
+
+[Install]
+WantedBy=multi-user.target
diff --git a/subprojects/cli11.wrap b/subprojects/cli11.wrap
new file mode 100644
index 0000000..f0ce3da
--- /dev/null
+++ b/subprojects/cli11.wrap
@@ -0,0 +1,4 @@
+[wrap-git]
+url = https://github.com/CLIUtils/CLI11
+revision = HEAD
+
diff --git a/subprojects/evdev.wrap b/subprojects/evdev.wrap
new file mode 100644
index 0000000..7c40bbb
--- /dev/null
+++ b/subprojects/evdev.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/freedesktop/libevdev
+revision = HEAD
+
+[provide]
+libevdev =  dep_libevdev
diff --git a/subprojects/fmt.wrap b/subprojects/fmt.wrap
new file mode 100644
index 0000000..63869be
--- /dev/null
+++ b/subprojects/fmt.wrap
@@ -0,0 +1,12 @@
+[wrap-file]
+directory = fmt-8.1.1
+source_url = https://github.com/fmtlib/fmt/archive/8.1.1.tar.gz
+source_filename = fmt-8.1.1.tar.gz
+source_hash = 3d794d3cf67633b34b2771eb9f073bde87e846e0d395d254df7b211ef1ec7346
+patch_filename = fmt_8.1.1-1_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/fmt_8.1.1-1/get_patch
+patch_hash = 6035a67c7a8c90bed74c293c7265c769f47a69816125f7566bccb8e2543cee5e
+
+[provide]
+fmt = fmt_dep
+
diff --git a/subprojects/nlohmann_json.wrap b/subprojects/nlohmann_json.wrap
new file mode 100644
index 0000000..0aa1389
--- /dev/null
+++ b/subprojects/nlohmann_json.wrap
@@ -0,0 +1,12 @@
+[wrap-file]
+directory = nlohmann_json-3.9.1
+lead_directory_missing = true
+source_url = https://github.com/nlohmann/json/releases/download/v3.9.1/include.zip
+source_filename = nlohmann_json-3.9.1.zip
+source_hash = 6bea5877b1541d353bd77bdfbdb2696333ae5ed8f9e8cc22df657192218cad91
+patch_url = https://wrapdb.mesonbuild.com/v1/projects/nlohmann_json/3.9.1/1/get_zip
+patch_filename = nlohmann_json-3.9.1-1-wrap.zip
+patch_hash = 1774e5506fbe3897d652f67e41973194b948d2ab851cf464a742f35f160a1435
+
+[provide]
+nlohmann_json = nlohmann_json_dep
diff --git a/subprojects/phosphor-dbus-interfaces.wrap b/subprojects/phosphor-dbus-interfaces.wrap
new file mode 100644
index 0000000..346aa0c
--- /dev/null
+++ b/subprojects/phosphor-dbus-interfaces.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/openbmc/phosphor-dbus-interfaces.git
+revision = HEAD
+
+[provide]
+phosphor-dbus-interfaces = phosphor_dbus_interfaces_dep
diff --git a/subprojects/phosphor-logging.wrap b/subprojects/phosphor-logging.wrap
new file mode 100644
index 0000000..b88f58e
--- /dev/null
+++ b/subprojects/phosphor-logging.wrap
@@ -0,0 +1,7 @@
+[wrap-git]
+url = https://github.com/openbmc/phosphor-logging.git
+revision = HEAD
+
+[provide]
+phosphor-logging = phosphor_logging_dep
+
diff --git a/subprojects/sdbusplus.wrap b/subprojects/sdbusplus.wrap
new file mode 100644
index 0000000..7b076d0
--- /dev/null
+++ b/subprojects/sdbusplus.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/openbmc/sdbusplus.git
+revision = HEAD
+
+[provide]
+sdbusplus = sdbusplus_dep
diff --git a/subprojects/sdeventplus.wrap b/subprojects/sdeventplus.wrap
new file mode 100644
index 0000000..f871ac0
--- /dev/null
+++ b/subprojects/sdeventplus.wrap
@@ -0,0 +1,6 @@
+[wrap-git]
+url = https://github.com/openbmc/sdeventplus.git
+revision = HEAD
+
+[provide]
+sdeventplus = sdeventplus_dep
diff --git a/test/meson.build b/test/meson.build
new file mode 100644
index 0000000..5e2d7b0
--- /dev/null
+++ b/test/meson.build
@@ -0,0 +1,25 @@
+
+test_include_directories = include_directories(
+    '..'
+)
+
+test_deps=[
+    fmt_dep,
+    gmock_dep,
+    gtest_dep,
+    json_dep,
+    phosphor_dbus_interfaces_dep,
+    phosphor_logging_dep,
+    sdbusplus_dep
+]
+
+test(
+    'logger_test',
+    executable(
+        'logger_test',
+        'logger_test.cpp',
+        dependencies:test_deps,
+        implicit_include_directories: false,
+        include_directories: [test_include_directories]
+    )
+)
