diff --git a/spack.yaml b/spack.yaml
index 46bf6311c6086d4d28e1cfcc6985167dbf4a9c40..3a88281229e4d14e85d62ea58936e64f85931fbc 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -37,6 +37,7 @@ spack:
           +root7 +tmva +vc +xrootd +ssl 
     - spdlog@1.9.2
     - stow@2.3.1
+    - tensorflow-lite@2.8.0
     - xrootd@5.1.0 cxxstd=17 +python
   concretization: together
   packages:
diff --git a/spack/packages/tensorflow-lite/package.py b/spack/packages/tensorflow-lite/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..dbe92b5ca744d41c5bf97abcb825879982603ab3
--- /dev/null
+++ b/spack/packages/tensorflow-lite/package.py
@@ -0,0 +1,98 @@
+# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+
+
+class TensorflowLite(CMakePackage):
+    """TensorFlow Lite is TensorFlow's lightweight solution for mobile and
+    embedded devices. It enables low-latency inference of on-device machine
+    learning models with a small binary size and fast performance supporting
+    hardware acceleration."""
+
+    homepage = "https://www.tensorflow.org/lite/"
+    url      = "https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.8.0.tar.gz"
+
+    maintainers = ['wdconinc']
+
+    version('2.8.0', sha256='66b953ae7fba61fd78969a2e24e350b26ec116cf2e6a7eb93d02c63939c6f9f7')
+
+    variant('gpu', default=False, description='Enable GPU support')
+    variant('metal', default=False, description='Enable Metal support')
+    variant('xnnpack', default=True, description='Enable XNNPACK support')
+    variant('shared', default=False, description='Build shared libraries')
+
+    depends_on('cmake@3.16:', type='build')
+
+    # TODO this package still overrides the upstream software with its own FetchContent
+    depends_on('abseil-cpp')
+    depends_on('eigen')
+    depends_on('flatbuffers')
+    depends_on('fp16')
+    depends_on('gemmlowp')
+    depends_on('psimd')
+    depends_on('pthreadpool')
+    #depends_on(farmhash REQUIRED)
+    #depends_on(fft2d REQUIRED)
+    #depends_on(neon2sse REQUIRED)
+    #depends_on(clog REQUIRED)
+    #depends_on(cpuinfo REQUIRED)
+    #depends_on(ruy REQUIRED)
+
+    # GPU variant dependencies
+    depends_on('opencl', when='gpu')
+    #find_package(vulkan_headers REQUIRED)
+    #find_package(fp16_headers REQUIRED)
+    #find_package(opengl_headers REQUIRED)
+    #find_package(egl_headers REQUIRED)
+
+    # XNNPACK variant dependencies
+    depends_on('xnnpack', when='xnnpack')
+
+    root_cmakelists_dir = 'tensorflow/lite'
+
+    def patch(self):
+        # Two utilities in subdirectory pull headers from outside lite
+        filter_file("^add_subdirectory",
+                    "#add_subdirectory",
+                    "tensorflow/lite/CMakeLists.txt")
+
+    def cmake_args(self):
+        args = [
+            self.define_from_variant('TFLITE_ENABLE_GPU', 'gpu'),
+            self.define_from_variant('TFLITE_ENABLE_METAL', 'metal'),
+            self.define_from_variant('TFLITE_ENABLE_XNNPACK', 'xnnpack'),
+            self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
+            self.define('TFLITE_KERNEL_TEST', self.run_tests),
+        ]
+        return args
+
+    def install(self, spec, prefix):
+        # Currently no install target is defined, but allowing for future
+        super().install(spec, prefix)
+        
+        # Instal library
+        mkdirp(self.prefix.lib)
+        with working_dir(self.build_directory):
+            for l in find('.', 'libtensorflow-lite.*', recursive=False):
+                install(l, self.prefix.lib)
+        
+        # Install headers for tensorflow itself
+        mkdirp(self.prefix.include)
+        for h in find(join_path(self.stage.source_path, 'tensorflow/lite'),
+                      '*.h', recursive=True):
+            relpath = os.path.relpath(h)
+            dirname = os.path.dirname(relpath)
+            installdir = join_path(self.prefix.include, dirname)
+            mkdirp(installdir)
+            install(h, installdir)
+
+        # Install headers for vendored dependencies
+        for d in ['flatbuffers']:
+            install_tree(
+                join_path(self.build_directory, d, 'include'),
+                self.prefix.include
+            )