diff --git a/meson.build b/meson.build
index 9453bbc..b429dd8 100644
--- a/meson.build
+++ b/meson.build
@@ -1,3 +1,4 @@
+# OpenBMC openpower-libhei project, see README.md for details.
 project('openpower-libhei', 'cpp',
         version: '0.1', meson_version: '>=0.50.0',
         default_options: [
@@ -7,6 +8,10 @@
             'cpp_args=-Wno-unused-parameter'
        ])
 
+#-------------------------------------------------------------------------------
+# libhei library
+#-------------------------------------------------------------------------------
+
 incdir = include_directories('src')
 
 libhei_src = [
@@ -46,8 +51,19 @@
                  filebase : 'hei',
                  description : 'Openpower Hardware Error Isolator')
 
+#-------------------------------------------------------------------------------
+# Chip Data Files
+#-------------------------------------------------------------------------------
+
+subdir('xml')
+
+#-------------------------------------------------------------------------------
+# Test
+#-------------------------------------------------------------------------------
+
 build_tests = get_option('tests')
 
 if not build_tests.disabled()
   subdir('test')
 endif
+
diff --git a/xml/build_chip_data_binary b/xml/build_chip_data_binary
index 6eb76ee..aa82ea3 100755
--- a/xml/build_chip_data_binary
+++ b/xml/build_chip_data_binary
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 
 use warnings;
 use strict;
@@ -28,7 +28,6 @@
 # This is a map of all currently supported models/ECs and their IDs.
 my $SUPPORTED_MODEL_EC =
 {
-    SAMPLE_10   => 0xdeadbeef, # Sample binary for libhei
     EXPLORER_10 => 0x160D2000, # Explorer Chip DD1.0
     P10_10      => 0x120DA049, # P10 Chip DD1.0
 };
diff --git a/xml/meson.build b/xml/meson.build
new file mode 100644
index 0000000..23a9ca0
--- /dev/null
+++ b/xml/meson.build
@@ -0,0 +1,45 @@
+#-------------------------------------------------------------------------------
+# Chip Data Files
+#-------------------------------------------------------------------------------
+
+build_cdb = find_program('build_chip_data_binary')
+
+# The key for each entry in this dictionary is a subdirectory containing XML for
+# a chip model. The value for each entry contains the expected output files that
+# will be produced for each chip model. It is important to note that the script
+# will generate all output files, regardless of what is listed, when the script
+# is run. However, this list must be kept in sync with the expected output so
+# that meson will know to run the script when an output file has changed or is
+# missing.
+cdb_files = {
+    'p10' :
+    [
+        'chip_data_p10_10.cdb',
+    ],
+
+    'explorer' :
+    [
+        'chip_data_explorer_10.cdb',
+    ],
+}
+
+foreach chip_dir, out_files : cdb_files
+
+    source_dir = meson.current_source_dir() + '/' + chip_dir
+    build_dir  = meson.current_build_dir()
+
+    # Get all XML files in the chip directory. This is a bit of a workaround
+    # because meson does not allow wildcards.
+    xml_list = run_command('xml_list.sh', source_dir)
+    in_files = xml_list.stdout().strip().split('\n')
+
+    custom_target('build_cdb_' + chip_dir, build_by_default : true,
+                  input : in_files, output : out_files,
+                  command : [ build_cdb, '-i', source_dir, '-o', build_dir ],
+                  install : true,
+                  install_dir : join_paths(get_option('prefix'),
+                                           get_option('datadir'),
+                                           meson.project_name()))
+
+endforeach
+
diff --git a/xml/xml_list.sh b/xml/xml_list.sh
new file mode 100755
index 0000000..ca598cc
--- /dev/null
+++ b/xml/xml_list.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Verify input.
+if [ ! -d "$1" ]; then
+    echo "Invalid directory: $1" 1>&2
+    exit 1
+fi
+
+# Simply list out all of the XML files in the given directory.
+for i in "$1"/*.xml; do
+    if [ -f "$i" ]; then
+        echo "$i"
+    fi
+done
+
