Index: boot/arch/sparc64/Makefile.inc
===================================================================
--- boot/arch/sparc64/Makefile.inc	(revision 6198611cbf70bcaf84b60380a0ea21b394608275)
+++ boot/arch/sparc64/Makefile.inc	(revision 05e69c59b06df4165bbd86304590e9d5f3964437)
@@ -27,7 +27,13 @@
 #
 
-TMP=distroot
+TMP = distroot
 
 build: $(BASE)/image.iso
+
+ifeq ($(CONFIG_RD_EXTERNAL),y)
+SILO_CONF_FILTER = cat
+else
+SILO_CONF_FILTER = grep -v initrd
+endif
 
 $(BASE)/image.iso: depend arch/$(ARCH)/loader/image.boot
@@ -35,8 +41,11 @@
 	mkdir -p $(TMP)/HelenOS
 	cat arch/$(ARCH)/silo/silo.tar.gz | (cd $(TMP)/boot; tar xvfz -)
-	cp arch/$(ARCH)/silo/README arch/$(ARCH)/silo/COPYING arch/$(ARCH)/silo/silo.conf $(TMP)/boot
+	cp arch/$(ARCH)/silo/README arch/$(ARCH)/silo/COPYING $(TMP)/boot
+	cat arch/$(ARCH)/silo/silo.conf | $(SILO_CONF_FILTER) >$(TMP)/boot/silo.conf
 	cp arch/$(ARCH)/loader/image.boot $(TMP)/HelenOS/image.boot
 	gzip -f $(TMP)/HelenOS/image.boot
+ifeq ($(CONFIG_RD_EXTERNAL),y)
 	cp arch/$(ARCH)/loader/initrd.img $(TMP)/HelenOS/initrd.img
+endif
 	mkisofs -f -G $(TMP)/boot/isofs.b -B ... -r -o $(BASE)/image.iso $(TMP)/
 
Index: boot/arch/sparc64/loader/Makefile
===================================================================
--- boot/arch/sparc64/loader/Makefile	(revision 6198611cbf70bcaf84b60380a0ea21b394608275)
+++ boot/arch/sparc64/loader/Makefile	(revision 05e69c59b06df4165bbd86304590e9d5f3964437)
@@ -80,4 +80,7 @@
 	boot.S
 
+#
+# All components that go to image.boot without the ramdisk.
+#
 COMPONENTS = \
 	$(KERNELDIR)/kernel.bin \
@@ -93,4 +96,12 @@
 ifeq ($(RDFMT),fat)
 	COMPONENTS += $(USPACEDIR)/srv/fs/fat/fat
+endif
+
+#
+# Final list of all components that go to image.boot.
+#
+ALL_COMPONENTS = $(COMPONENTS)
+ifeq ($(CONFIG_RD_EXTERNAL),n)
+	ALL_COMPONENTS += ./initrd.img
 endif
 
@@ -110,5 +121,5 @@
 
 OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
-COMPONENT_OBJECTS := $(addsuffix .o,$(basename $(notdir $(COMPONENTS))))
+ALL_COMPONENT_OBJECTS := $(addsuffix .o,$(basename $(notdir $(ALL_COMPONENTS))))
 
 .PHONY: all clean depend
@@ -118,6 +129,6 @@
 -include Makefile.depend
 
-image.boot: depend _components.h _link.ld $(COMPONENT_OBJECTS) $(OBJECTS)
-	$(LD) -Map image.map -no-check-sections -N -T _link.ld $(COMPONENT_OBJECTS) $(OBJECTS) -o $@
+image.boot: depend _components.h _link.ld $(ALL_COMPONENT_OBJECTS) $(OBJECTS)
+	$(LD) -Map image.map -no-check-sections -N -T _link.ld $(ALL_COMPONENT_OBJECTS) $(OBJECTS) -o $@
 
 depend:
@@ -131,7 +142,7 @@
 		rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
 	done
-	-rm -f _components.h _components.c _link.ld $(COMPONENT_OBJECTS) $(OBJECTS) initrd.img image.boot image.map image.disasm Makefile.depend
+	-rm -f _components.h _components.c _link.ld $(ALL_COMPONENT_OBJECTS) $(OBJECTS) initrd.img image.boot image.map image.disasm Makefile.depend
 
-_components.h _components.c _link.ld $(COMPONENT_OBJECTS) initrd.o: $(COMPONENTS) $(RD_SRVS) $(RD_APPS) _link.ld.in
+_components.h _components.c _link.ld $(ALL_COMPONENT_OBJECTS): $(COMPONENTS) $(RD_SRVS) $(RD_APPS) _link.ld.in
 	for file in $(RD_SRVS) ; do \
 		cp $$file $(USPACEDIR)/dist/srv/ ; \
@@ -148,5 +159,5 @@
 	../../../../tools/mkhord.py 16384 initrd.fs initrd.img
 	rm initrd.fs
-	../../../tools/pack.py $(OBJCOPY) $(BFD_NAME) $(BFD_ARCH) 1 "unsigned long" $(COMPONENTS)
+	../../../tools/pack.py $(OBJCOPY) $(BFD_NAME) $(BFD_ARCH) 1 "unsigned long" $(ALL_COMPONENTS)
 
 %.o: %.S
