Index: boot/arch/sparc64/Makefile.inc
===================================================================
--- boot/arch/sparc64/Makefile.inc	(revision 356e17e093ea30596640858cbf8afc9b7858be9a)
+++ boot/arch/sparc64/Makefile.inc	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
@@ -27,32 +27,5 @@
 #
 
-BOOT_OUTPUT = image.boot
-POST_OUTPUT = $(ROOT_PATH)/image.iso
-POSTBUILD = Makefile.silo
+BUILD = Makefile.empty
+POSTBUILD = Makefile.empty
 
-BFD_NAME = elf64-sparc
-BFD_OUTPUT = $(BFD_NAME)
-
-BITS = 64
-ENDIANESS = BE
-EXTRA_CFLAGS = -mcpu=ultrasparc -m64 -mno-fpu -mcmodel=medlow
-
-SOURCES = \
-	arch/$(BARCH)/src/asm.S \
-	arch/$(BARCH)/src/main.c \
-	arch/$(BARCH)/src/ofw.c \
-	$(COMPS).o \
-	genarch/src/ofw.c \
-	genarch/src/ofw_tree.c \
-	generic/src/balloc.c \
-	generic/src/memstr.c \
-	generic/src/printf_core.c \
-	generic/src/vprintf.c \
-	generic/src/printf.c \
-	generic/src/str.c \
-	generic/src/version.c \
-	generic/src/inflate.c \
-	generic/src/gzip.c \
-	generic/src/tar.c \
-	generic/src/kernel.c \
-	generic/src/payload.c
Index: boot/arch/sparc64/_link.ld.in
===================================================================
--- boot/arch/sparc64/_link.ld.in	(revision 356e17e093ea30596640858cbf8afc9b7858be9a)
+++ boot/arch/sparc64/_link.ld.in	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
@@ -6,5 +6,5 @@
 		loader_start = .;
 		*(BOOTSTRAP);
-		*(.text);
+		*(.text.*);
 
 		*(.data);       /* initialized data */
Index: boot/arch/sparc64/meson.build
===================================================================
--- boot/arch/sparc64/meson.build	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
+++ boot/arch/sparc64/meson.build	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
@@ -0,0 +1,25 @@
+BUILD = true
+POSTBUILD = 'silo'
+POST_OUTPUT = 'image.iso'
+boot_image_format = 'elf'
+
+boot_src = files(
+	'src/asm.S',
+	'src/main.c',
+	'src/ofw.c',
+
+	'../../genarch/src/ofw.c',
+	'../../genarch/src/ofw_tree.c',
+	'../../generic/src/balloc.c',
+	'../../generic/src/memstr.c',
+	'../../generic/src/printf_core.c',
+	'../../generic/src/vprintf.c',
+	'../../generic/src/printf.c',
+	'../../generic/src/str.c',
+	'../../generic/src/version.c',
+	'../../generic/src/inflate.c',
+	'../../generic/src/gzip.c',
+	'../../generic/src/tar.c',
+	'../../generic/src/kernel.c',
+	'../../generic/src/payload.c',
+)
Index: boot/meson.build
===================================================================
--- boot/meson.build	(revision 356e17e093ea30596640858cbf8afc9b7858be9a)
+++ boot/meson.build	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
@@ -1,5 +1,5 @@
 subdir('arch' / BARCH)
 
-if POSTBUILD == 'uimage'
+if POSTBUILD == 'uboot'
 	boot_image_format = 'binary'
 endif
@@ -172,4 +172,8 @@
 endif
 
+if POSTBUILD == 'silo'
+	subdir('silo')
+endif
+
 if POSTBUILD == 'uboot'
 	IMAGE_NAME = 'HelenOS-' + HELENOS_RELEASE
Index: boot/silo/build_dist.sh
===================================================================
--- boot/silo/build_dist.sh	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
+++ boot/silo/build_dist.sh	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+BOOT_OUTPUT="$1"
+SRCDIR="$2"
+DESTDIR="$3"
+
+rm -rf ${DESTDIR}
+
+mkdir -p ${DESTDIR}/boot
+cp -t ${DESTDIR}/boot \
+	${SRCDIR}/a.out/isofs.b \
+	${SRCDIR}/a.out/second.b \
+	${SRCDIR}/silo.conf
+
+mkdir -p ${DESTDIR}/HelenOS
+cp ${BOOT_OUTPUT} ${DESTDIR}/HelenOS/image.boot
Index: boot/silo/meson.build
===================================================================
--- boot/silo/meson.build	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
+++ boot/silo/meson.build	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
@@ -0,0 +1,28 @@
+distdir = custom_target('distdir',
+	output: 'distdir',
+	input: [
+		'build_dist.sh',
+		boot_image,
+		'a.out/isofs.b',
+		'a.out/second.b',
+		'silo.conf'
+
+	],
+	command: [ sh, '@INPUT0@', '@INPUT1@', meson.current_source_dir(), '@OUTPUT@' ],
+)
+
+image_iso = custom_target('image.iso',
+	output: 'image.iso',
+	input: [ distdir, 'a.out/isofs.b' ],
+	command: [
+		genisoimage,
+		'-f',
+		'-G', '@INPUT1@',
+		'-B', '...',
+		'-r',
+		'-o', '@OUTPUT@',
+		'@INPUT0@',
+	],
+)
+
+POST_INPUT = image_iso
Index: boot/yaboot/meson.build
===================================================================
--- boot/yaboot/meson.build	(revision 356e17e093ea30596640858cbf8afc9b7858be9a)
+++ boot/yaboot/meson.build	(revision 5631c9c892f7f04b5ec56fa60ad8039803e0d5ab)
@@ -1,5 +1,4 @@
-
-yaboot_distdir = custom_target('yaboot_dist',
-	output: 'yaboot_dist',
+distdir = custom_target('distdir',
+	output: 'distdir',
 	input: [
 		'build_dist.sh',
@@ -15,5 +14,5 @@
 image_iso = custom_target('image.iso',
 	output: 'image.iso',
-	input: [ yaboot_distdir, 'maps' ],
+	input: [ distdir, 'maps' ],
 	command: [
 		genisoimage,
