diff --git a/Xext/meson.build b/Xext/meson.build
index 9968f2a9e312e569c7ac4d0de7c771512a11087b..a7217371871d5a81c9ad6396024eef37d9a527d4 100644
--- a/Xext/meson.build
+++ b/Xext/meson.build
@@ -8,12 +8,19 @@ srcs_xext = [
     'xtest.c',
 ]
 
+hdrs_xext = [
+    'geext.h',
+    'geint.h',
+    'syncsdk.h',
+]
+
 if build_dpms
     srcs_xext += 'dpms.c'
 endif
 
 if build_mitshm
     srcs_xext += 'shm.c'
+    hdrs_xext += ['shmint.h']
 endif
 
 if build_res
@@ -26,6 +33,7 @@ endif
 
 if build_xace
     srcs_xext += 'xace.c'
+    hdrs_xext += ['xace.h', 'xacestr.h']
 endif
 
 if build_xf86bigfont
@@ -34,6 +42,7 @@ endif
 
 if build_xinerama
     srcs_xext += ['panoramiX.c', 'panoramiXprocs.c', 'panoramiXSwap.c']
+    hdrs_xext += ['panoramiX.h', 'panoramiXsrv.h']
 endif
 
 if build_xsecurity
@@ -46,6 +55,7 @@ endif
 
 if build_xv
     srcs_xext += ['xvmain.c', 'xvdisp.c', 'xvmc.c']
+    hdrs_xext += ['xvdix.h', 'xvmcext.h']
 endif
 
 libxserver_xext = static_library('libxserver_xext',
@@ -59,3 +69,5 @@ libxserver_xext_vidmode = static_library('libxserver_xext_vidmode',
     include_directories: inc,
     dependencies: common_dep,
 )
+
+install_data(hdrs_xext, install_dir: xorgsdkdir)
diff --git a/composite/meson.build b/composite/meson.build
index 6c4a03fb80c2a135e315cbe172d0e78ab5ac6e8c..7547f0e7edce10b582f304469c81e4df689d2998 100644
--- a/composite/meson.build
+++ b/composite/meson.build
@@ -6,8 +6,14 @@ srcs_composite = [
 	'compwindow.c',
 ]
 
+hdrs_composite = [
+	'compositeext.h',
+]
+
 libxserver_composite = static_library('libxserver_composite',
 	srcs_composite,
 	include_directories: inc,
 	dependencies: common_dep,
 )
+
+install_data(hdrs_composite, install_dir: xorgsdkdir)
diff --git a/dbe/meson.build b/dbe/meson.build
index e10bde19913d1a6e4f60f68cb090f04025e6abfa..76a2d3f85d2b550d0f48870427b11e8522bc4161 100644
--- a/dbe/meson.build
+++ b/dbe/meson.build
@@ -3,8 +3,14 @@ srcs_dbe = [
 	'midbe.c',
 ]
 
+hdrs_dbe = [
+	'dbestruct.h',
+]
+
 libxserver_dbe = static_library('libxserver_dbe',
 	srcs_dbe,
 	include_directories: inc,
 	dependencies: common_dep,
 )
+
+install_data(hdrs_dbe, install_dir: xorgsdkdir)
diff --git a/dri3/meson.build b/dri3/meson.build
index 0deec32aafbea047da1b90108a2938164cba6dd7..48ce0d9d6aa15682f681dc18403421e43082d619 100644
--- a/dri3/meson.build
+++ b/dri3/meson.build
@@ -4,6 +4,10 @@ srcs_dri3 = [
 	'dri3_screen.c',
 ]
 
+hdrs_dri3 = [
+	'dri3.h',
+]
+
 libxserver_dri3 = []
 if build_dri3
     libxserver_dri3 = static_library('libxserver_dri3',
@@ -13,3 +17,5 @@ if build_dri3
         c_args: '-DHAVE_XORG_CONFIG_H'
         )
 endif
+
+install_data(hdrs_dri3, install_dir: xorgsdkdir)
diff --git a/fb/meson.build b/fb/meson.build
index bf85141f980f78331a12120cf9d444999d704a17..477ab047dfd647e0e5be063b1be0b32dc46fc06b 100644
--- a/fb/meson.build
+++ b/fb/meson.build
@@ -28,6 +28,14 @@ srcs_fb = [
 	'fbwindow.c',
 ]
 
+hdrs_fb = [
+	'fb.h',
+	'fboverlay.h',
+	'fbpict.h',
+	'fbrop.h',
+	'wfbrename.h'
+]
+
 libxserver_fb = static_library('libxserver_fb',
 	srcs_fb,
 	include_directories: inc,
@@ -45,3 +53,5 @@ libxserver_wfb = static_library('libxserver_wfb',
 	pic: true,
 	build_by_default: false,
 )
+
+install_data(hdrs_fb, install_dir: xorgsdkdir)
diff --git a/glx/meson.build b/glx/meson.build
index 5f93a75a5143bb78f86053e1071ebb79c3ce207b..dc7aab9625ee2fd802c1a59542f2bd7124ad1e43 100644
--- a/glx/meson.build
+++ b/glx/meson.build
@@ -61,6 +61,10 @@ srcs_vnd = [
     'vndservervendor.c',
 ]
 
+hdrs_vnd = [
+    'vndserver.h',
+]
+
 libglxvnd = ''
 if build_glx
     libglxvnd = static_library('libglxvnd',
@@ -73,4 +77,6 @@ if build_glx
             dependency('gl', version: '>= 9.2.0'),
         ],
     )
+
+    install_data(hdrs_vnd, install_dir : xorgsdkdir)
 endif
diff --git a/hw/xfree86/os-support/meson.build b/hw/xfree86/os-support/meson.build
index 2b96e7e4adee5ec88e09f95472e604f061ce98b4..9014227865869272c7fb4a668d7a95cbd2334def 100644
--- a/hw/xfree86/os-support/meson.build
+++ b/hw/xfree86/os-support/meson.build
@@ -4,6 +4,13 @@ srcs_xorg_os_support = [
     'shared/sigio.c',
     'shared/vidmem.c',
 ]
+
+hdrs_xorg_os_support = [
+    'bus/xf86Pci.h',
+    'xf86_OSlib.h',
+    'xf86_OSproc.h'
+]
+
 os_support_flags = ['-DUSESTDRES']
 
 if get_option('pciaccess')
@@ -135,4 +142,4 @@ xorg_os_support = static_library('xorg_os_support',
     c_args: xorg_c_args,
 )
 
-install_data('bus/xf86Pci.h', install_dir: xorgsdkdir)
+install_data(hdrs_xorg_os_support, install_dir: xorgsdkdir)
diff --git a/include/meson.build b/include/meson.build
index fdec1f306f598055bed216d40dd15ef266a28bc2..e454b21b9c6aeca0f4a9b0b5282471a2aa79f232 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -423,6 +423,7 @@ if build_xorg
             'xkbsrv.h',
             'xkbstr.h',
             'xkbrules.h',
+            'Xprintf.h',
             'xserver_poll.h',
             'xserver-properties.h',
         ],
diff --git a/mi/meson.build b/mi/meson.build
index 32fcec1d05febfc4fcb61868e16768ab72d44959..73b196ad0289d1d984e60901ab0e50fb6644c5ec 100644
--- a/mi/meson.build
+++ b/mi/meson.build
@@ -29,6 +29,19 @@ srcs_mi = [
     'mizerline.c',
 ]
 
+hdrs_mi = [
+  'micmap.h',
+  'micoord.h',
+  'migc.h',
+  'mi.h',
+  'miline.h',
+  'mioverlay.h',
+  'mipointer.h',
+  'mipointrst.h',
+  'mistruct.h',
+  'mizerarc.h',
+]
+
 libxserver_mi = static_library('libxserver_mi',
     srcs_mi,
     include_directories: inc,
@@ -37,3 +50,5 @@ libxserver_mi = static_library('libxserver_mi',
         m_dep,
     ],
 )
+
+install_data(hdrs_mi, install_dir: xorgsdkdir)
diff --git a/miext/damage/meson.build b/miext/damage/meson.build
index 2c51483964ab4a9d8a575977236122e904e3a8a2..1f6032c688eda9b35166d0905122cc294a5486bf 100644
--- a/miext/damage/meson.build
+++ b/miext/damage/meson.build
@@ -2,8 +2,15 @@ srcs_miext_damage = [
 	'damage.c',
 ]
 
+hdrs_miext_damage = [
+	'damage.h',
+	'damagestr.h',
+]
+
 libxserver_miext_damage = static_library('libxserver_miext_damage',
 	srcs_miext_damage,
 	include_directories: inc,
 	dependencies: common_dep,
 )
+
+install_data(hdrs_miext_damage, install_dir: xorgsdkdir)
diff --git a/miext/shadow/meson.build b/miext/shadow/meson.build
index 1b4ae8a47dd73a69885b58c661e631f0724c863d..7230df635284fab51cb70d26e0602c53fa0304a4 100644
--- a/miext/shadow/meson.build
+++ b/miext/shadow/meson.build
@@ -25,8 +25,14 @@ srcs_miext_shadow = [
     'shrotate.c',
 ]
 
+hdrs_miext_shadow = [
+    'shadow.h',
+]
+
 libxserver_miext_shadow = static_library('libxserver_miext_shadow',
     srcs_miext_shadow,
     include_directories: inc,
     dependencies: common_dep,
 )
+
+install_data(hdrs_miext_shadow, install_dir: xorgsdkdir)
diff --git a/miext/sync/meson.build b/miext/sync/meson.build
index da86fcc8493547ba062b7d6890a2467e3403696c..8b7ee4dba14d93a1ef36f819c3ea34c0d9951a5d 100644
--- a/miext/sync/meson.build
+++ b/miext/sync/meson.build
@@ -3,6 +3,13 @@ srcs_miext_sync = [
     'misyncfd.c',
 ]
 
+hdrs_miext_sync = [
+    'misync.h',
+    'misyncfd.h',
+    'misyncshm.h',
+    'misyncstr.h',
+]
+
 if build_dri3
     srcs_miext_sync += 'misyncshm.c'
 endif
@@ -15,3 +22,5 @@ libxserver_miext_sync = static_library('libxserver_miext_sync',
         xshmfence_dep,
     ],
 )
+
+install_data(hdrs_miext_sync, install_dir: xorgsdkdir)
diff --git a/present/meson.build b/present/meson.build
index 1bd3d381e3ed614131468e637b20f8189451ad1f..e316af20d076d5401b81ea476bb16a202a7f01f9 100644
--- a/present/meson.build
+++ b/present/meson.build
@@ -12,6 +12,11 @@ srcs_present = [
     'present_wnmd.c',
 ]
 
+hdrs_present = [
+    'present.h',
+    'presentext.h',
+]
+
 libxserver_present = static_library('libxserver_present',
     srcs_present,
     include_directories: inc,
@@ -21,3 +26,5 @@ libxserver_present = static_library('libxserver_present',
     ],
     c_args: '-DHAVE_XORG_CONFIG_H'
 )
+
+install_data(hdrs_present, install_dir: xorgsdkdir)
diff --git a/randr/meson.build b/randr/meson.build
index cc0e8efe9cc89c42227283fa116882362de15ae7..7090dde600e5ce342491155170b9ceb2d71632df 100644
--- a/randr/meson.build
+++ b/randr/meson.build
@@ -16,6 +16,11 @@ srcs_randr = [
     'rrtransform.c',
 ]
 
+hdrs_randr = [
+    'randrstr.h',
+    'rrtransform.h',
+]
+
 if build_xinerama
     srcs_randr += 'rrxinerama.c'
 endif
@@ -25,3 +30,5 @@ libxserver_randr = static_library('libxserver_randr',
     include_directories: inc,
     dependencies: common_dep,
 )
+
+install_data(hdrs_randr, install_dir: xorgsdkdir)
diff --git a/render/meson.build b/render/meson.build
index d976f36f3b34d43ee09894a36c68523d24d4bccc..cbd64741c9b29b5fd8e142ece1cdd8168ccb8772 100644
--- a/render/meson.build
+++ b/render/meson.build
@@ -12,8 +12,17 @@ srcs_render = [
     'render.c',
 ]
 
+hdrs_render = [
+    'glyphstr.h',
+    'mipict.h',
+    'picture.h',
+    'picturestr.h',
+]
+
 libxserver_render = static_library('libxserver_render',
     srcs_render,
     include_directories: inc,
     dependencies: common_dep,
 )
+
+install_data(hdrs_render, install_dir: xorgsdkdir)