Index: boot/meson.build
===================================================================
--- boot/meson.build	(revision 2e2cefdb40a3bb2e685f7101a4fdb532a280b3de)
+++ boot/meson.build	(revision 19c2b4456ed2d8dc6553f2dcf60adb98369f5702)
@@ -81,4 +81,12 @@
 	endif
 
+	boot_files = static_library('bootfiles', boot_src,
+		include_directories: boot_include_dirs,
+		implicit_include_directories: false,
+		c_args: boot_c_args,
+		pic: false,
+		build_by_default: true,
+	)
+
 	# Preprocess linker script using C preprocessor.
 	boot_ldscript = custom_target('_link.ld',
@@ -97,4 +105,5 @@
 		],
 		capture: true,
+		build_by_default: true
 	)
 
@@ -133,7 +142,6 @@
 	boot_image_map_path = meson.current_build_dir()/boot_image_name + '.map'
 
-	boot_elf = executable(boot_image_name + '.elf', boot_src, boot_comps_o,
+	boot_elf = executable(boot_image_name + '.elf', boot_comps_o,
 		include_directories: boot_include_dirs,
-		implicit_include_directories: false,
 		c_args: boot_c_args,
 		link_args: boot_c_args + boot_link_args + [
@@ -141,7 +149,7 @@
 		],
 		link_depends: boot_ldscript,
-		install: true,
-		install_dir: 'boot',
+		link_whole: boot_files,
 		pie: false,
+		build_by_default: false,
 	)
 
@@ -160,8 +168,4 @@
 endif
 
-if POSTBUILD == 'none'
-	POST_INPUT = disabler()
-endif
-
 if POSTBUILD == 'raw'
 	POST_INPUT = boot_image
