Index: Makefile
===================================================================
--- Makefile	(revision 71069a96e3c8df27157482c2a2ef199464dca80a)
+++ Makefile	(revision 740e9527595cfbfad00f55ea5c977300666b8ab5)
@@ -79,5 +79,5 @@
 meson: $(COMMON_MAKEFILE) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(ERRNO_HEADER) $(BUILD_DIR)/build.ninja
 	PATH="$(CROSS_PATH):$$PATH" ninja -C $(BUILD_DIR)
-	PATH="$(CROSS_PATH):$$PATH" DESTDIR="$(BUILD_DIR)/dist" meson install --no-rebuild --only-changed -C $(BUILD_DIR) > $(BUILD_DIR)/install.log
+	PATH="$(CROSS_PATH):$$PATH" DESTDIR="$(BUILD_DIR)/dist" meson install --no-rebuild --only-changed -C $(BUILD_DIR)
 
 test-xcw: meson export-cross
Index: install.sh.in
===================================================================
--- install.sh.in	(revision 740e9527595cfbfad00f55ea5c977300666b8ab5)
+++ install.sh.in	(revision 740e9527595cfbfad00f55ea5c977300666b8ab5)
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+@text@
Index: kernel/meson.build
===================================================================
--- kernel/meson.build	(revision 71069a96e3c8df27157482c2a2ef199464dca80a)
+++ kernel/meson.build	(revision 740e9527595cfbfad00f55ea5c977300666b8ab5)
@@ -140,6 +140,4 @@
 		link_depends: kernel_ldscript,
 		link_whole: all_kernel_objects,
-		install: is_last,
-		install_dir: 'boot',
 		pie: false,
 	)
@@ -168,4 +166,6 @@
 endforeach
 
+install_files += [[ 'boot', kernel_elf.full_path(), 'kernel.elf' ]]
+
 kernel_disasm = custom_target(kernel_name + '.disasm',
 	command: [ objdump, '-S', '@INPUT@' ],
@@ -174,6 +174,8 @@
 	capture: true,
 	build_by_default: true,
-	# TODO: Add configuration option for installing debug files
-	install: false,
-	install_dir: 'debug' / 'kernel',
 )
+
+# TODO: Add configuration option for installing debug files
+if false
+	install_files += [[ 'boot', kernel_disasm.full_path(), 'kernel.elf.disasm' ]]
+endif
Index: meson.build
===================================================================
--- meson.build	(revision 71069a96e3c8df27157482c2a2ef199464dca80a)
+++ meson.build	(revision 740e9527595cfbfad00f55ea5c977300666b8ab5)
@@ -326,4 +326,7 @@
 subdir('meson' / 'arch' / UARCH)
 
+install_files = []
+install_deps = []
+
 subdir('kernel')
 subdir('uspace')
@@ -393,2 +396,22 @@
 
 install_data('Makefile.common', 'Makefile.config', install_dir: 'config')
+
+
+# Emit and register the install script.
+
+install_script_text = []
+
+foreach f : install_files
+	_cmd = 'mkdir -p "${MESON_INSTALL_DESTDIR_PREFIX}@0@" && cp -L -T "@1@" "${MESON_INSTALL_DESTDIR_PREFIX}@0@/@2@"'
+	install_script_text += _cmd.format(f[0], f[1], f[2])
+endforeach
+
+install_script_text += uspace_lib_install_script_text
+
+configure_file(
+	configuration: { 'text' : '\n'.join(install_script_text) },
+	input: 'install.sh.in',
+	output: 'install.sh',
+)
+
+meson.add_install_script(meson.current_build_dir() / 'install.sh')
Index: pace/install.sh.in
===================================================================
--- uspace/install.sh.in	(revision 71069a96e3c8df27157482c2a2ef199464dca80a)
+++ 	(revision )
@@ -1,3 +1,0 @@
-#!/bin/sh
-
-@text@
Index: uspace/lib/meson.build
===================================================================
--- uspace/lib/meson.build	(revision 71069a96e3c8df27157482c2a2ef199464dca80a)
+++ uspace/lib/meson.build	(revision 740e9527595cfbfad00f55ea5c977300666b8ab5)
@@ -317,4 +317,5 @@
 		cpp_args: arch_uspace_c_args,
 		link_args: arch_uspace_c_args + arch_uspace_link_args + _ldargs,
+		build_by_default: true,
 	)
 
@@ -328,10 +329,11 @@
 			output: _test_binname + '.disasm',
 			capture: true,
-			install: install_debug_files,
-			install_dir: 'debug' / 'test',
-		)
-
-		install_files += [[ 'debug/test', _disasm.full_path(), _test_binname + '.disasm' ]]
-		install_deps += [ _disasm ]
+			build_by_default: true,
+		)
+
+		if install_debug_files
+			install_files += [[ 'debug/test', _disasm.full_path(), _test_binname + '.disasm' ]]
+			install_deps += [ _disasm ]
+		endif
 	endif
 endforeach
Index: uspace/meson.build
===================================================================
--- uspace/meson.build	(revision 71069a96e3c8df27157482c2a2ef199464dca80a)
+++ uspace/meson.build	(revision 740e9527595cfbfad00f55ea5c977300666b8ab5)
@@ -6,7 +6,4 @@
 # This is currently disabled due to boot image size restrictions.
 install_debug_files = false
-
-install_files = []
-install_deps = []
 
 subdir('lib')
@@ -203,21 +200,2 @@
 	endif
 endforeach
-
-uspace_bin_install_script_text = []
-
-foreach f : install_files
-	_cmd = 'mkdir -p "${MESON_INSTALL_DESTDIR_PREFIX}@0@" && cp -L -T "@1@" "${MESON_INSTALL_DESTDIR_PREFIX}@0@/@2@"'
-	uspace_bin_install_script_text += _cmd.format(f[0], f[1], f[2])
-endforeach
-
-uspace_install_script_text = uspace_lib_install_script_text + uspace_bin_install_script_text
-
-# Emit and register the install script.
-
-configure_file(
-	configuration: { 'text' : '\n'.join(uspace_install_script_text) },
-	input: 'install.sh.in',
-	output: 'install.sh',
-)
-
-meson.add_install_script(meson.current_build_dir() / 'install.sh')
