diff --git a/meson.build b/meson.build
index 68a303a..5359e97 100644
--- a/meson.build
+++ b/meson.build
@@ -7,10 +7,8 @@
             'cpp_args=-Wno-unused-parameter'
        ])
 
-incdir = [include_directories('src')]
+incdir = include_directories('src')
 
-# libhei_dep provides dependencies needed to build with libhei as a subproject
-# rather than a base project.
 libhei_src = ['src/isolator/hei_isolator.cpp',
               'src/isolator/hei_isolation_node.cpp',
               'src/register/hei_hardware_register.cpp',
@@ -19,9 +17,48 @@
 libhei_dep = declare_dependency(include_directories : incdir,
                                 sources : libhei_src)
 
+# build static library libhei.a (note that the libray name is hei, the
+# resulting filename will be libhei.a)
+libhei_static = static_library('hei',
+                                dependencies: libhei_dep,
+                                install: true)
+
+install_headers('src/hei_chip.hpp',
+                'src/hei_includes.hpp',
+                'src/hei_isolation_data.hpp',
+                'src/hei_macros.hpp',
+                'src/hei_main.hpp',
+                'src/hei_return_code.hpp',
+                'src/hei_types.hpp',
+                'src/hei_user_interface.hpp',
+                subdir : 'libhei')
+
+install_headers('src/isolator/hei_signature.hpp',
+                'src/isolator/hei_isolator.hpp',
+                'src/isolator/hei_isolation_node.hpp',
+                subdir : 'libhei/isolator')
+
+install_headers('src/register/hei_hardware_register.hpp',
+                'src/register/hei_operator_register.hpp',
+                'src/register/hei_scom_register.hpp',
+                'src/register/hei_register.hpp',
+                subdir : 'libhei/register')
+
+install_headers('src/util/hei_bit_string.hpp',
+                'src/util/hei_flyweight.hpp',
+                subdir : 'libhei/util')
+
+pkg_mod = import('pkgconfig')
+
+pkg_mod.generate(libraries : libhei_static,
+                 version : '0.1',
+                 name : 'libhei',
+                 subdirs: 'libhei',
+                 filebase : 'hei',
+                 description : 'Openpower Hardware Error Isolator')
+
 build_tests = get_option('tests')
 
 if not build_tests.disabled()
-  incdir += include_directories('test')
   subdir('test')
 endif
diff --git a/src/chip_data/hei_chip_data_stream.hpp b/src/chip_data/hei_chip_data_stream.hpp
index c9cbde7..e9cfc75 100644
--- a/src/chip_data/hei_chip_data_stream.hpp
+++ b/src/chip_data/hei_chip_data_stream.hpp
@@ -4,6 +4,7 @@
 #include <string.h>
 
 #include <hei_includes.hpp>
+#include <hei_macros.hpp>
 
 namespace libhei
 {
diff --git a/src/hei_includes.hpp b/src/hei_includes.hpp
index 2f225f1..bf771e5 100644
--- a/src/hei_includes.hpp
+++ b/src/hei_includes.hpp
@@ -23,7 +23,6 @@
 //  Assertion (at a minimum should work like assert() from <cassert>):
 //      HEI_ASSERT(expression)
 //
-#include <hei_user_defines.hpp>
 
 // Internal includes
 #include <hei_chip.hpp>
diff --git a/src/hei_macros.hpp b/src/hei_macros.hpp
new file mode 100644
index 0000000..cada4d7
--- /dev/null
+++ b/src/hei_macros.hpp
@@ -0,0 +1,20 @@
+#pragma once
+
+#include <assert.h>
+#include <inttypes.h> // for PRIu64
+
+#include <hei_user_interface.hpp>
+
+/** @brief Common defines used throughout this library */
+
+#define HEI_INF(...)                                                           \
+    {                                                                          \
+        libhei::hei_inf((char*)__VA_ARGS__);                                   \
+    }
+
+#define HEI_ERR(...)                                                           \
+    {                                                                          \
+        libhei::hei_err((char*)__VA_ARGS__);                                   \
+    }
+
+#define HEI_ASSERT(expression) assert(expression);
diff --git a/src/hei_user_interface.hpp b/src/hei_user_interface.hpp
index 9849ca1..9fa908d 100644
--- a/src/hei_user_interface.hpp
+++ b/src/hei_user_interface.hpp
@@ -6,6 +6,41 @@
  * The method for actions like hardware register access will vary per user
  * application. Therefore, the user application must define all of the APIs
  * listed below.
+ *
+ *  1.  ReturnCode libhei::registerRead(const Chip& i_chip, void* o_buffer,
+ *                      size_t& io_bufSize, uint64_t i_regType,
+ *                      uint64_t i_address);
+ *
+ *  2.  ReturnCode libhei::registerWrite(const Chip& i_chip, void* i_buffer,
+ *                            size_t& io_bufSize, uint64_t i_regType,
+ *                            uint64_t i_address);
+ *
+ *  3. void libhei::hei_inf(...)
+ *  4. void libhei::hei_err(...)
+ *
+ *  Example user application implementation of hei_inf(...) and hei_err(...)
+ *
+ *  void hei_inf(char* format, ...)
+ *  {
+ *      va_list args;
+ *
+ *      printf("I> ");
+ *      va_start(args, format);
+ *      vprintf(format, args);
+ *      va_end(args);
+ *      printf("\n");
+ *  }
+ *
+ *  void hei_err(char* format, ...)
+ *  {
+ *      va_list args;
+ *
+ *      printf("E> ");
+ *      va_start(args, format);
+ *      vprintf(format, args);
+ *      va_end(args);
+ *      printf("\n");
+ *  }
  */
 
 #include <hei_includes.hpp>
@@ -77,6 +112,12 @@
 ReturnCode registerWrite(const Chip& i_chip, void* i_buffer, size_t& io_bufSize,
                          uint64_t i_regType, uint64_t i_address);
 
+// used by HEI_INF macro in this library
+void hei_inf(char* format, ...); // implemented in user application
+
+// used by HEI_ERR macro in this library
+void hei_err(char* format, ...); // implemented in user application
+
 #endif
 
 } // end namespace libhei
diff --git a/src/isolator/hei_isolation_node.cpp b/src/isolator/hei_isolation_node.cpp
index e2bf61a..7f8422a 100644
--- a/src/isolator/hei_isolation_node.cpp
+++ b/src/isolator/hei_isolation_node.cpp
@@ -1,3 +1,4 @@
+#include <hei_macros.hpp>
 #include <isolator/hei_isolation_node.hpp>
 
 namespace libhei
diff --git a/src/register/hei_hardware_register.hpp b/src/register/hei_hardware_register.hpp
index ee57b2a..d8edfd8 100644
--- a/src/register/hei_hardware_register.hpp
+++ b/src/register/hei_hardware_register.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <hei_includes.hpp>
+#include <hei_macros.hpp>
 #include <register/hei_register.hpp>
 #include <util/hei_bit_string.hpp>
 
diff --git a/src/register/prdfCaptureData.C b/src/register/prdfCaptureData.C
index d6777aa..a984f24 100755
--- a/src/register/prdfCaptureData.C
+++ b/src/register/prdfCaptureData.C
@@ -32,6 +32,7 @@
 //  Includes
 //----------------------------------------------------------------------
 
+#include <hei_macros.hpp>
 #include <register/hei_hardware_register.hpp>
 #include <util/hei_bit_string.hpp>
 
diff --git a/src/util/hei_bit_string.cpp b/src/util/hei_bit_string.cpp
index 8fc0776..2795cf1 100644
--- a/src/util/hei_bit_string.cpp
+++ b/src/util/hei_bit_string.cpp
@@ -2,7 +2,7 @@
  *  @brief BitString and BitStringBuffer class definitions
  */
 
-#include <hei_user_defines.hpp>
+#include <hei_macros.hpp>
 #include <util/hei_bit_string.hpp>
 
 #include <algorithm>
diff --git a/test/bit_string_test.cpp b/test/bit_string_test.cpp
index aaf5b90..c763cf6 100644
--- a/test/bit_string_test.cpp
+++ b/test/bit_string_test.cpp
@@ -1,4 +1,4 @@
-#include <hei_user_defines.hpp>
+#include <hei_macros.hpp>
 #include <util/hei_bit_string.hpp>
 
 #include "gtest/gtest.h"
diff --git a/test/hei_user_defines.cpp b/test/hei_user_defines.cpp
new file mode 100644
index 0000000..f6e39f0
--- /dev/null
+++ b/test/hei_user_defines.cpp
@@ -0,0 +1,30 @@
+#include <assert.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+namespace libhei
+{
+
+void hei_inf(char* format, ...)
+{
+    va_list args;
+
+    printf("I> ");
+    va_start(args, format);
+    vprintf(format, args);
+    va_end(args);
+    printf("\n");
+}
+
+void hei_err(char* format, ...)
+{
+    va_list args;
+
+    printf("E> ");
+    va_start(args, format);
+    vprintf(format, args);
+    va_end(args);
+    printf("\n");
+}
+
+} // namespace libhei
diff --git a/test/hei_user_defines.hpp b/test/hei_user_defines.hpp
deleted file mode 100644
index 08ddda9..0000000
--- a/test/hei_user_defines.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#pragma once
-
-/**
- * @file hei_user_defines.hpp
- * @brief The purpose of this file is to create common defines that
- *        will be used throughout this library.
- */
-
-#include <assert.h>
-#include <inttypes.h>
-#include <stdio.h>
-
-#define HEI_INF(...)                                                           \
-    {                                                                          \
-        printf("I> " __VA_ARGS__);                                             \
-        printf("\n");                                                          \
-    }
-
-#define HEI_ERR(...)                                                           \
-    {                                                                          \
-        printf("E> " __VA_ARGS__);                                             \
-        printf("\n");                                                          \
-    }
-
-#define HEI_ASSERT(expression) assert(expression);
diff --git a/test/meson.build b/test/meson.build
index ce1e5da..209bad3 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -2,7 +2,8 @@
 subdir('simulator')
 
 # supporting files that need compiled/linked
-test_src = ['../src/util/hei_bit_string.cpp']
+test_src = ['../src/util/hei_bit_string.cpp',
+               'hei_user_defines.cpp']
 
 # build g-test framework unit tests
 gtests = [
diff --git a/test/simulator/user_interface.cpp b/test/simulator/hei_user_interface.cpp
similarity index 98%
rename from test/simulator/user_interface.cpp
rename to test/simulator/hei_user_interface.cpp
index 9f841bb..658a1ef 100644
--- a/test/simulator/user_interface.cpp
+++ b/test/simulator/hei_user_interface.cpp
@@ -7,6 +7,7 @@
 
 #include <endian.h>
 
+#include <hei_macros.hpp>
 #include <hei_user_interface.hpp>
 
 namespace libhei
diff --git a/test/simulator/meson.build b/test/simulator/meson.build
index 0f96bb3..ec5410f 100644
--- a/test/simulator/meson.build
+++ b/test/simulator/meson.build
@@ -1,28 +1,22 @@
 # Simulator sources
-sim_src = [
+sim_libhei = [
     'simulator.cpp',
-    'user_interface.cpp',
-]
-
-# Isolator sources
-iso_src = [
-    '../../src/isolator/hei_isolator.cpp',
-    '../../src/isolator/hei_isolation_chip.cpp',
-    '../../src/isolator/hei_isolation_node.cpp',
-    '../../src/register/hei_hardware_register.cpp',
-    '../../src/util/hei_bit_string.cpp',
+    'hei_user_interface.cpp',
+    '../hei_user_defines.cpp'
 ]
 
 # Test cases
-test_src = [
+test_libhei = [
     'sample_test_case.cpp',
 ]
 
 gtest = dependency('gtest', main : true, required : false, method : 'system')
 
+# Build simulator linked locally
 if gtest.found()
-    test('simulator', \
-         executable('simulator', sim_src, iso_src, test_src, \
-                    dependencies : gtest, include_directories: incdir))
+    test('simulator',
+         executable('simulator', sim_libhei, test_libhei,
+                    dependencies : gtest,
+                    link_with : libhei_static,
+                    include_directories: incdir))
 endif
-
