diff --git a/subprojects/libcr51sign/cr51_image_descriptor.h b/subprojects/libcr51sign/include/libcr51sign/cr51_image_descriptor.h
similarity index 100%
rename from subprojects/libcr51sign/cr51_image_descriptor.h
rename to subprojects/libcr51sign/include/libcr51sign/cr51_image_descriptor.h
diff --git a/subprojects/libcr51sign/libcr51sign.h b/subprojects/libcr51sign/include/libcr51sign/libcr51sign.h
similarity index 100%
rename from subprojects/libcr51sign/libcr51sign.h
rename to subprojects/libcr51sign/include/libcr51sign/libcr51sign.h
diff --git a/subprojects/libcr51sign/libcr51sign_support.h b/subprojects/libcr51sign/include/libcr51sign/libcr51sign_support.h
similarity index 100%
rename from subprojects/libcr51sign/libcr51sign_support.h
rename to subprojects/libcr51sign/include/libcr51sign/libcr51sign_support.h
diff --git a/subprojects/libcr51sign/include/meson.build b/subprojects/libcr51sign/include/meson.build
new file mode 100644
index 0000000..fc9ec3a
--- /dev/null
+++ b/subprojects/libcr51sign/include/meson.build
@@ -0,0 +1,20 @@
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+libcr51sign_includes = include_directories('.')
+
+install_subdir(
+  'libcr51sign',
+  install_dir: get_option('includedir'),
+  strip_directory: false)
diff --git a/subprojects/libcr51sign/meson.build b/subprojects/libcr51sign/meson.build
index a96a204..66f77f0 100644
--- a/subprojects/libcr51sign/meson.build
+++ b/subprojects/libcr51sign/meson.build
@@ -12,39 +12,16 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-project('libcr51sign', 'c',
-        version: '0.1', meson_version: '>=0.57.0',
-        default_options: [
-          'warning_level=2',
-          'werror=false',
-          'cpp_std=c++20'
-        ])
-
-# libssl part of openssl isn't used.
-openssl = dependency('libcrypto')
-
-libcr51sign_headers = include_directories('.')
-
-libcr51sign_lib = library(
+project(
   'libcr51sign',
-  'libcr51sign.c',
-  'libcr51sign_support.c',
-  include_directories: libcr51sign_headers,
-  dependencies: openssl,
-  implicit_include_directories: false,
-  version: meson.project_version(),
-  install: true)
+  'c',
+  version: '0.1',
+  meson_version: '>=0.57.0',
+  default_options: [
+    'warning_level=3',
+    'werror=false',
+    'c_std=c18',
+  ])
 
-pkg = import('pkgconfig')
-pkg.generate(
-  libcr51sign_lib,
-  name: 'libcr51sign',
-  description: 'CR51 signing verification utilities',
-  requires: openssl,
-  version: meson.project_version())
-
-install_headers(
-  'cr51_image_descriptor.h',
-  'libcr51sign.h',
-  'libcr51sign_support.h',
-  subdir: 'libcr51sign')
+subdir('include')
+subdir('src')
diff --git a/subprojects/libcr51sign/libcr51sign.c b/subprojects/libcr51sign/src/libcr51sign.c
similarity index 99%
rename from subprojects/libcr51sign/libcr51sign.c
rename to subprojects/libcr51sign/src/libcr51sign.c
index 7d2e1bb..9bd86b9 100644
--- a/subprojects/libcr51sign/libcr51sign.c
+++ b/subprojects/libcr51sign/src/libcr51sign.c
@@ -13,9 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "libcr51sign.h"
-
 #include <assert.h>
+#include <libcr51sign/libcr51sign.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/subprojects/libcr51sign/libcr51sign_support.c b/subprojects/libcr51sign/src/libcr51sign_support.c
similarity index 99%
rename from subprojects/libcr51sign/libcr51sign_support.c
rename to subprojects/libcr51sign/src/libcr51sign_support.c
index 3c968d3..81f05c5 100644
--- a/subprojects/libcr51sign/libcr51sign_support.c
+++ b/subprojects/libcr51sign/src/libcr51sign_support.c
@@ -13,8 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "libcr51sign_support.h"
-
+#include <libcr51sign/libcr51sign_support.h>
 #include <openssl/evp.h>
 #include <openssl/pem.h>
 #include <openssl/rsa.h>
diff --git a/subprojects/libcr51sign/src/meson.build b/subprojects/libcr51sign/src/meson.build
new file mode 100644
index 0000000..e85e65c
--- /dev/null
+++ b/subprojects/libcr51sign/src/meson.build
@@ -0,0 +1,48 @@
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+libcr51sign_deps = [
+  dependency('libcrypto'),
+]
+
+libcr51sign_pre = declare_dependency(
+  include_directories: libcr51sign_includes,
+  dependencies: libcr51sign_deps)
+
+libcr51sign_lib = library(
+  'cr51sign',
+  'libcr51sign.c',
+  'libcr51sign_support.c',
+  dependencies: libcr51sign_pre,
+  implicit_include_directories: false,
+  version: meson.project_version(),
+  install: true)
+
+libcr51sign_dep = declare_dependency(
+  link_with: libcr51sign_lib,
+  dependencies: libcr51sign_pre)
+
+libcr51sign_reqs = []
+foreach dep : libcr51sign_deps
+  if dep.type_name() == 'pkgconfig'
+    libcr51sign_reqs += dep
+  endif
+endforeach
+
+import('pkgconfig').generate(
+  libcr51sign_lib,
+  name: 'libcr51sign',
+  description: 'CR51 signing verification utilities',
+  requires: libcr51sign_reqs,
+  version: meson.project_version())
