Index: boot/arch/ppc32/Makefile.inc
===================================================================
--- boot/arch/ppc32/Makefile.inc	(revision 57977e431278bc0966bfc450b1dd07d3f760ff46)
+++ boot/arch/ppc32/Makefile.inc	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
@@ -27,34 +27,5 @@
 #
 
-BOOT_OUTPUT = image.boot
-POST_OUTPUT = $(ROOT_PATH)/image.iso
-POSTBUILD = Makefile.yaboot
+BUILD = Makefile.empty
+POSTBUILD = Makefile.empty
 
-BFD_NAME = elf32-powerpc
-BFD_OUTPUT = $(BFD_NAME)
-
-BITS = 32
-ENDIANESS = BE
-EXTRA_CFLAGS = -mcpu=powerpc -msoft-float -m32
-
-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 \
-	genarch/src/division.c \
-	genarch/src/multiplication.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/ppc32/_link.ld.in
===================================================================
--- boot/arch/ppc32/_link.ld.in	(revision 57977e431278bc0966bfc450b1dd07d3f760ff46)
+++ boot/arch/ppc32/_link.ld.in	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
@@ -7,4 +7,5 @@
 		*(BOOTSTRAP);
 		*(.text);
+		*(.text.*);
 	}
 	.data : {
Index: boot/arch/ppc32/meson.build
===================================================================
--- boot/arch/ppc32/meson.build	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
+++ boot/arch/ppc32/meson.build	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
@@ -0,0 +1,27 @@
+BUILD = true
+POSTBUILD = 'yaboot'
+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',
+	'../../genarch/src/division.c',
+	'../../genarch/src/multiplication.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 57977e431278bc0966bfc450b1dd07d3f760ff46)
+++ boot/meson.build	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
@@ -168,4 +168,8 @@
 endif
 
+if POSTBUILD == 'yaboot'
+	subdir('yaboot')
+endif
+
 if POSTBUILD == 'uboot'
 	IMAGE_NAME = 'HelenOS-' + HELENOS_RELEASE
@@ -185,4 +189,2 @@
 	)
 endif
-
-
Index: boot/yaboot/build_dist.sh
===================================================================
--- boot/yaboot/build_dist.sh	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
+++ boot/yaboot/build_dist.sh	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+BOOT_OUTPUT="$1"
+SRCDIR="$2"
+DESTDIR="$3"
+
+rm -rf ${DESTDIR}
+
+mkdir -p ${DESTDIR}/boot
+cp -t ${DESTDIR}/boot \
+	${SRCDIR}/ofboot.b \
+	${SRCDIR}/yaboot \
+	${SRCDIR}/yaboot.conf
+cp ${BOOT_OUTPUT} ${DESTDIR}/boot/image.boot
+
+mkdir -p ${DESTDIR}/ppc
+cp -t ${DESTDIR}/ppc \
+	${SRCDIR}/bootinfo.txt
Index: boot/yaboot/meson.build
===================================================================
--- boot/yaboot/meson.build	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
+++ boot/yaboot/meson.build	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
@@ -0,0 +1,32 @@
+
+yaboot_distdir = custom_target('yaboot_dist',
+	output: 'yaboot_dist',
+	input: [
+		'build_dist.sh',
+		boot_image,
+		'ofboot.b',
+		'bootinfo.txt',
+		'yaboot',
+		'yaboot.conf',
+	],
+	command: [ sh, '@INPUT0@', '@INPUT1@', meson.current_source_dir(), '@OUTPUT@' ],
+)
+
+image_iso = custom_target('image.iso',
+	output: 'image.iso',
+	input: [ yaboot_distdir, 'maps' ],
+	command: [
+		genisoimage,
+		'-hfs',
+		'-part',
+		'-map', '@INPUT1@',
+		'-no-desktop',
+		'-hfs-volid', 'HelenOS',
+		'-hfs-bless', '@INPUT0@/boot',
+		'-r',
+		'-o', '@OUTPUT@',
+		'@INPUT0@',
+	],
+)
+
+POST_INPUT = image_iso
Index: meson/arch/ppc32/meson.build
===================================================================
--- meson/arch/ppc32/meson.build	(revision 57977e431278bc0966bfc450b1dd07d3f760ff46)
+++ meson/arch/ppc32/meson.build	(revision 8684e346eaa5bac88522301324eb2cebb94b52a0)
@@ -5,6 +5,8 @@
 arch_kernel_c_args = _common_c_args + [ '-msoft-float', '-fno-function-sections' ]
 arch_uspace_c_args = _common_c_args + [ CONFIG_FPU ? '-mhard-float' : '-msoft-float' ]
+arch_boot_c_args = arch_kernel_c_args
 arch_kernel_link_args = [ '-nostdlib', '-Wl,-z,max-page-size=0x1000', '-Wl,--no-check-sections', '-Wl,--no-gc-sections' ]
 arch_uspace_link_args = [ '-nostdlib', '-lgcc', '-Wl,-z,max-page-size=0x1000' ]
+arch_boot_link_args = []
 
 
