Index: boot/arch/amd64/Makefile.inc
===================================================================
--- boot/arch/amd64/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/amd64/Makefile.inc	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -58,16 +58,16 @@
 build: $(BASE)/image.iso
 
-$(BASE)/image.iso: arch/$(ARCH)/grub/stage2_eltorito arch/$(ARCH)/grub/menu.lst $(KERNELDIR)/kernel.bin $(INIT_TASKS) $(RD_SRVS) $(RD_APPS)
-	mkdir -p arch/$(ARCH)/iso/boot/grub
-	cp arch/$(ARCH)/grub/stage2_eltorito arch/$(ARCH)/iso/boot/grub/
+$(BASE)/image.iso: arch/$(BARCH)/grub/stage2_eltorito arch/$(BARCH)/grub/menu.lst $(KERNELDIR)/kernel.bin $(INIT_TASKS) $(RD_SRVS) $(RD_APPS)
+	mkdir -p arch/$(BARCH)/iso/boot/grub
+	cp arch/$(BARCH)/grub/stage2_eltorito arch/$(BARCH)/iso/boot/grub/
 ifneq ($(RDFMT),tmpfs)
-	cat arch/$(ARCH)/grub/menu.lst | grep -v "tmpfs" >arch/$(ARCH)/iso/boot/grub/menu.lst
+	cat arch/$(BARCH)/grub/menu.lst | grep -v "tmpfs" >arch/$(BARCH)/iso/boot/grub/menu.lst
 endif
 ifneq ($(RDFMT),fat)
-	cat arch/$(ARCH)/grub/menu.lst | grep -v "fat" >arch/$(ARCH)/iso/boot/grub/menu.lst
+	cat arch/$(BARCH)/grub/menu.lst | grep -v "fat" >arch/$(BARCH)/iso/boot/grub/menu.lst
 endif
-	cp $(KERNELDIR)/kernel.bin arch/$(ARCH)/iso/boot/
+	cp $(KERNELDIR)/kernel.bin arch/$(BARCH)/iso/boot/
 	for task in $(INIT_TASKS) ; do \
-		cp $$task arch/$(ARCH)/iso/boot/ ; \
+		cp $$task arch/$(BARCH)/iso/boot/ ; \
 	done
 	for file in $(RD_SRVS) ; do \
@@ -78,12 +78,12 @@
 	done
 ifeq ($(RDFMT),tmpfs)
-	$(BASE)/tools/mktmpfs.py $(USPACEDIR)/dist/ arch/$(ARCH)/iso/boot/initrd.fs
+	$(BASE)/tools/mktmpfs.py $(USPACEDIR)/dist/ arch/$(BARCH)/iso/boot/initrd.fs
 endif
 ifeq ($(RDFMT),fat)
-	$(BASE)/tools/mkfat.py $(USPACEDIR)/dist/ arch/$(ARCH)/iso/boot/initrd.fs
+	$(BASE)/tools/mkfat.py $(USPACEDIR)/dist/ arch/$(BARCH)/iso/boot/initrd.fs
 endif
-	$(BASE)/tools/mkhord.py 4096 arch/$(ARCH)/iso/boot/initrd.fs arch/$(ARCH)/iso/boot/initrd.img
-	rm arch/$(ARCH)/iso/boot/initrd.fs
-	mkisofs -J -r -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o $(BASE)/image.iso arch/$(ARCH)/iso/
+	$(BASE)/tools/mkhord.py 4096 arch/$(BARCH)/iso/boot/initrd.fs arch/$(BARCH)/iso/boot/initrd.img
+	rm arch/$(BARCH)/iso/boot/initrd.fs
+	mkisofs -J -r -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o $(BASE)/image.iso arch/$(BARCH)/iso/
 
 clean:
@@ -94,4 +94,4 @@
 		rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
 	done
-	-rm -fr arch/$(ARCH)/iso
+	-rm -fr arch/$(BARCH)/iso
 	-rm -f $(BASE)/image.iso
Index: boot/arch/arm32/Makefile.inc
===================================================================
--- boot/arch/arm32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/arm32/Makefile.inc	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -29,14 +29,14 @@
 build: $(BASE)/image.boot
 
-$(BASE)/image.boot: depend arch/$(ARCH)/loader/image.boot
-	cp arch/$(ARCH)/loader/image.boot $(BASE)/image.boot
+$(BASE)/image.boot: depend arch/$(BARCH)/loader/image.boot
+	cp arch/$(BARCH)/loader/image.boot $(BASE)/image.boot
 
 depend:
-	-rm arch/$(ARCH)/loader/image.boot
+	-rm arch/$(BARCH)/loader/image.boot
 
-arch/$(ARCH)/loader/image.boot:
-	make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) IMAGE=$(IMAGE)
+arch/$(BARCH)/loader/image.boot:
+	make -C arch/$(BARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 
 clean:
-	make -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) IMAGE=$(IMAGE)
+	make -C arch/$(BARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 	-rm -f $(BASE)/image.boot
Index: boot/arch/arm32/loader/Makefile
===================================================================
--- boot/arch/arm32/loader/Makefile	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/arm32/loader/Makefile	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -28,5 +28,5 @@
 
 include ../../../../version
-include ../../../../Makefile.config
+-include ../../../../Makefile.config
 
 ## Toolchain configuration
@@ -58,17 +58,5 @@
 endif
 
-CFLAGS = -DRELEASE=\"$(RELEASE)\" -I. -I../../../generic -I../../.. -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -pipe
-
-ifdef REVISION
-	CFLAGS += "-DREVISION=\"$(REVISION)\""
-endif
-
-ifdef TIMESTAMP
-	CFLAGS += "-DTIMESTAMP=\"$(TIMESTAMP)\""
-endif
-
-ifdef MACHINE
-	CFLAGS += "-DMACHINE=$(MACHINE)"
-endif
+CFLAGS = -DRELEASE=$(RELEASE) -I. -I../../../generic -I../../.. -imacros ../../../../config.h -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -pipe
 
 SOURCES = \
Index: boot/arch/arm32/loader/main.c
===================================================================
--- boot/arch/arm32/loader/main.c	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/arm32/loader/main.c	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -36,8 +36,9 @@
 
 
-#include "main.h" 
+#include "main.h"
 #include "asm.h"
 #include "_components.h"
 #include <printf.h>
+#include <macros.h>
 
 #include "mm.h"
@@ -47,8 +48,8 @@
 
 
-char *release = RELEASE;
+char *release = STRING(RELEASE);
 
 #ifdef REVISION
-	char *revision = ", revision " REVISION;
+	char *revision = ", revision " STRING(REVISION);
 #else
 	char *revision = "";
@@ -56,5 +57,5 @@
 
 #ifdef TIMESTAMP
-	char *timestamp = "\nBuilt on " TIMESTAMP;
+	char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
 #else
 	char *timestamp = "";
Index: boot/arch/ia32/Makefile.inc
===================================================================
--- boot/arch/ia32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ia32/Makefile.inc	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -57,16 +57,16 @@
 build: $(BASE)/image.iso
 
-$(BASE)/image.iso: arch/$(ARCH)/grub/stage2_eltorito arch/$(ARCH)/grub/menu.lst $(KERNELDIR)/kernel.bin $(INIT_TASKS) $(RD_SRVS) $(RD_APPS)
-	mkdir -p arch/$(ARCH)/iso/boot/grub
-	cp arch/$(ARCH)/grub/stage2_eltorito arch/$(ARCH)/iso/boot/grub/
+$(BASE)/image.iso: arch/$(BARCH)/grub/stage2_eltorito arch/$(BARCH)/grub/menu.lst $(KERNELDIR)/kernel.bin $(INIT_TASKS) $(RD_SRVS) $(RD_APPS)
+	mkdir -p arch/$(BARCH)/iso/boot/grub
+	cp arch/$(BARCH)/grub/stage2_eltorito arch/$(BARCH)/iso/boot/grub/
 ifneq ($(RDFMT),tmpfs)
-	cat arch/$(ARCH)/grub/menu.lst | grep -v "tmpfs" >arch/$(ARCH)/iso/boot/grub/menu.lst
+	cat arch/$(BARCH)/grub/menu.lst | grep -v "tmpfs" >arch/$(BARCH)/iso/boot/grub/menu.lst
 endif
 ifneq ($(RDFMT),fat)
-	cat arch/$(ARCH)/grub/menu.lst | grep -v "fat" >arch/$(ARCH)/iso/boot/grub/menu.lst
+	cat arch/$(BARCH)/grub/menu.lst | grep -v "fat" >arch/$(BARCH)/iso/boot/grub/menu.lst
 endif
-	cp $(KERNELDIR)/kernel.bin arch/$(ARCH)/iso/boot/
+	cp $(KERNELDIR)/kernel.bin arch/$(BARCH)/iso/boot/
 	for task in $(INIT_TASKS) ; do \
-		cp $$task arch/$(ARCH)/iso/boot/ ; \
+		cp $$task arch/$(BARCH)/iso/boot/ ; \
 	done
 	for file in $(RD_SRVS) ; do \
@@ -77,12 +77,12 @@
 	done
 ifeq ($(RDFMT),tmpfs)
-	$(BASE)/tools/mktmpfs.py $(USPACEDIR)/dist/ arch/$(ARCH)/iso/boot/initrd.fs
+	$(BASE)/tools/mktmpfs.py $(USPACEDIR)/dist/ arch/$(BARCH)/iso/boot/initrd.fs
 endif
 ifeq ($(RDFMT),fat)
-	$(BASE)/tools/mkfat.py $(USPACEDIR)/dist/ arch/$(ARCH)/iso/boot/initrd.fs
+	$(BASE)/tools/mkfat.py $(USPACEDIR)/dist/ arch/$(BARCH)/iso/boot/initrd.fs
 endif
-	$(BASE)/tools/mkhord.py 4096 arch/$(ARCH)/iso/boot/initrd.fs arch/$(ARCH)/iso/boot/initrd.img
-	rm arch/$(ARCH)/iso/boot/initrd.fs
-	mkisofs -J -r -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o $(BASE)/image.iso arch/$(ARCH)/iso/
+	$(BASE)/tools/mkhord.py 4096 arch/$(BARCH)/iso/boot/initrd.fs arch/$(BARCH)/iso/boot/initrd.img
+	rm arch/$(BARCH)/iso/boot/initrd.fs
+	mkisofs -J -r -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o $(BASE)/image.iso arch/$(BARCH)/iso/
 
 clean:
@@ -93,4 +93,4 @@
 		rm -f $(USPACEDIR)/dist/app/`basename $$file` ; \
 	done
-	-rm -fr arch/$(ARCH)/iso
+	-rm -fr arch/$(BARCH)/iso
 	-rm -f $(BASE)/image.iso
Index: boot/arch/ia64/Makefile.inc
===================================================================
--- boot/arch/ia64/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ia64/Makefile.inc	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -27,21 +27,16 @@
 #
 
-#ifeq ($(MACHINE),ski)
-
 build: $(BASE)/image.boot
 
-$(BASE)/image.boot: depend arch/$(ARCH)/loader/image.boot
-	cp arch/$(ARCH)/loader/image.boot $(BASE)/image.boot
+$(BASE)/image.boot: depend arch/$(BARCH)/loader/image.boot
+	cp arch/$(BARCH)/loader/image.boot $(BASE)/image.boot
 
 depend:
-	-rm arch/$(ARCH)/loader/image.boot
+	-rm arch/$(BARCH)/loader/image.boot
 
-arch/$(ARCH)/loader/image.boot:
-	make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)"
+arch/$(BARCH)/loader/image.boot:
+	make -C arch/$(BARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 
 clean: generic_clean
-	make -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)"
+	make -C arch/$(BARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 	-rm -f $(BASE)/image.boot
-
-#endif
-
Index: boot/arch/ia64/loader/Makefile
===================================================================
--- boot/arch/ia64/loader/Makefile	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ia64/loader/Makefile	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -28,5 +28,5 @@
 
 include ../../../../version
-include ../../../../Makefile.config
+-include ../../../../Makefile.config
 
 ## Toolchain configuration
@@ -48,5 +48,5 @@
 	OBJCOPY = objcopy
 	OBJDUMP = objdump
-	GEFI_PREXIX = 
+	GEFI_PREFIX =
 endif
 
@@ -69,13 +69,5 @@
 
 #-mno-pic means do not use gp + imm22 to address data
-CFLAGS = -DRELEASE=\"$(RELEASE)\" -I. -I../../../generic -I../../../genarch -I../../../../kernel/generic/include -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -fno-unwind-tables -mfixed-range=f32-f127 -mno-pic -pipe
-
-ifdef REVISION
-	CFLAGS += "-DREVISION=\"$(REVISION)\""
-endif
-
-ifdef TIMESTAMP
-	CFLAGS += "-DTIMESTAMP=\"$(TIMESTAMP)\""
-endif
+CFLAGS = -DRELEASE=$(RELEASE) -I. -I../../../generic -I../../../genarch -I../../../../kernel/generic/include -imacros ../../../../config.h -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -fno-unwind-tables -mfixed-range=f32-f127 -mno-pic -pipe
 
 SOURCES = \
@@ -131,5 +123,4 @@
 	make -C gefi/HelenOS PREFIX=$(GEFI_PREFIX)
 	cp gefi/HelenOS/hello.efi ../../../../
-#	cp gefi/HelenOS/hello.efi /boot/efi/
 	cp gefi/HelenOS/image.bin ../../../../
 
Index: boot/arch/ia64/loader/gefi/Make.defaults
===================================================================
--- boot/arch/ia64/loader/gefi/Make.defaults	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ia64/loader/gefi/Make.defaults	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -28,29 +28,18 @@
 INSTALLROOT=/usr/local
 
-TOPDIR    := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
+TOPDIR    := $(shell pwd)
 
-ARCH	   = $(shell uname -m | sed s,i[3456789]86,ia32,)
-INCDIR	   = -I. -I$(CDIR)/inc -I$(CDIR)/inc/$(ARCH) -I$(CDIR)/inc/protocol 
+ARCH       = ia64
+INCDIR     = -I. -I$(CDIR)/inc -I$(CDIR)/inc/$(ARCH) -I$(CDIR)/inc/protocol 
 CPPFLAGS   = -DCONFIG_$(ARCH)
-CFLAGS	   = -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants
-LDFLAGS	   = -nostdlib
-INSTALL	   = install
+CFLAGS     = -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -frename-registers -mfixed-range=f32-f127
+LDFLAGS    = -nostdlib
+INSTALL    = install
 
-GCC_VERSION=$(shell $(CROSS_COMPILE)$(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')
-
-#  prefix	=
-CC		= $(prefix)gcc
-AS		= $(prefix)as
-LD		= $(prefix)ld
-AR		= $(prefix)ar
-RANLIB	= $(prefix)ranlib
-OBJCOPY	= $(prefix)objcopy
-OBJDUMP	= $(prefix)objdump
-
-
-ifneq ($(GCC_VERSION),2)
-        CFLAGS += -frename-registers
-endif
-
-CFLAGS += -mfixed-range=f32-f127
-
+CC         = $(prefix)gcc
+AS         = $(prefix)as
+LD         = $(prefix)ld
+AR         = $(prefix)ar
+RANLIB     = $(prefix)ranlib
+OBJCOPY    = $(prefix)objcopy
+OBJDUMP    = $(prefix)objdump
Index: boot/arch/ia64/loader/gefi/Makefile
===================================================================
--- boot/arch/ia64/loader/gefi/Makefile	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ia64/loader/gefi/Makefile	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -26,5 +26,5 @@
 SUBDIRS = lib gnuefi inc
 
-all:	check_gcc $(SUBDIRS)
+all: $(SUBDIRS)
 
 $(SUBDIRS):
@@ -40,12 +40,3 @@
 .PHONY:	$(SUBDIRS) clean depend
 
-#
-# on both platforms you must use gcc 3.0 or higher 
-#
-check_gcc:
-ifeq ($(GCC_VERSION),2)
-	@echo "you need to use a version of gcc >= 3.0, you are using `$(CC) --version`"
-	@exit 1
-endif
-
 include Make.rules
Index: boot/arch/ia64/loader/main.c
===================================================================
--- boot/arch/ia64/loader/main.c	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ia64/loader/main.c	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -1,5 +1,5 @@
 /*
  * Copyright (c) 2005 Martin Decky
- * Copyright (c) 2006 Jakub Jermar 
+ * Copyright (c) 2006 Jakub Jermar
  * All rights reserved.
  *
@@ -34,9 +34,10 @@
 #include <align.h>
 #include <balloc.h>
+#include <macros.h>
 
 extern bootinfo_t binfo;
 component_t components[COMPONENTS];
 
-char *release = RELEASE;
+char *release = STRING(RELEASE);
 
 void write(const char *str, const int len)
@@ -54,5 +55,5 @@
 
 #ifdef REVISION
-	char *revision = ", revision " REVISION;
+	char *revision = ", revision " STRING(REVISION);
 #else
 	char *revision = "";
@@ -60,5 +61,5 @@
 
 #ifdef TIMESTAMP
-	char *timestamp = "\nBuilt on " TIMESTAMP;
+	char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
 #else
 	char *timestamp = "";
Index: boot/arch/mips32/Makefile.inc
===================================================================
--- boot/arch/mips32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/mips32/Makefile.inc	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -29,14 +29,14 @@
 build: $(BASE)/image.boot
 
-$(BASE)/image.boot: depend arch/$(ARCH)/loader/image.boot
-	cp arch/$(ARCH)/loader/image.boot $(BASE)/image.boot
+$(BASE)/image.boot: depend arch/$(BARCH)/loader/image.boot
+	cp arch/$(BARCH)/loader/image.boot $(BASE)/image.boot
 
 depend:
-	-rm arch/$(ARCH)/loader/image.boot
+	-rm arch/$(BARCH)/loader/image.boot
 
-arch/$(ARCH)/loader/image.boot:
-	make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) IMAGE=$(IMAGE)
+arch/$(BARCH)/loader/image.boot:
+	make -C arch/$(BARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 
 clean:
-	make -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) IMAGE=$(IMAGE)
+	make -C arch/$(BARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 	-rm -f $(BASE)/image.boot
Index: boot/arch/mips32/loader/Makefile
===================================================================
--- boot/arch/mips32/loader/Makefile	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/mips32/loader/Makefile	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -28,5 +28,5 @@
 
 include ../../../../version
-include ../../../../Makefile.config
+-include ../../../../Makefile.config
 
 ## Toolchain configuration
@@ -40,7 +40,9 @@
 	LD_IN = binary
 endif
+
 ifeq ($(IMAGE),ecoff)
 	LD_IN = ecoff
 endif
+
 BFD_NAME = elf32-tradlittlemips
 BFD_ARCH = mips
@@ -64,13 +66,5 @@
 endif
 
-CFLAGS = -DRELEASE=\"$(RELEASE)\" -I. -I../../../generic -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mno-abicalls -G 0 -fno-zero-initialized-in-bss -mhard-float -mips3 -pipe
-
-ifdef REVISION
-	CFLAGS += "-DREVISION=\"$(REVISION)\""
-endif
-
-ifdef TIMESTAMP
-	CFLAGS += "-DTIMESTAMP=\"$(TIMESTAMP)\""
-endif
+CFLAGS = -DRELEASE=$(RELEASE) -I. -I../../../generic -imacros ../../../../config.h -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mno-abicalls -G 0 -fno-zero-initialized-in-bss -mhard-float -mips3 -pipe
 
 SOURCES = \
Index: boot/arch/mips32/loader/main.c
===================================================================
--- boot/arch/mips32/loader/main.c	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/mips32/loader/main.c	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -29,4 +29,5 @@
 #include "main.h" 
 #include <printf.h>
+#include <macros.h>
 #include "msim.h"
 #include "asm.h"
@@ -35,8 +36,8 @@
 #define KERNEL_VIRTUAL_ADDRESS 0x80100000
 
-char *release = RELEASE;
+char *release = STRING(RELEASE);
 
 #ifdef REVISION
-	char *revision = ", revision " REVISION;
+	char *revision = ", revision " STRING(REVISION);
 #else
 	char *revision = "";
@@ -44,5 +45,5 @@
 
 #ifdef TIMESTAMP
-	char *timestamp = "\nBuilt on " TIMESTAMP;
+	char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
 #else
 	char *timestamp = "";
Index: boot/arch/ppc32/Makefile.inc
===================================================================
--- boot/arch/ppc32/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ppc32/Makefile.inc	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -29,14 +29,14 @@
 build: $(BASE)/image.boot
 
-$(BASE)/image.boot: depend arch/$(ARCH)/loader/image.boot
-	cp arch/$(ARCH)/loader/image.boot $(BASE)/image.boot
+$(BASE)/image.boot: depend arch/$(BARCH)/loader/image.boot
+	cp arch/$(BARCH)/loader/image.boot $(BASE)/image.boot
 
 depend:
-	-rm arch/$(ARCH)/loader/image.boot
+	-rm arch/$(BARCH)/loader/image.boot
 
-arch/$(ARCH)/loader/image.boot:
-	make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)"
+arch/$(BARCH)/loader/image.boot:
+	make -C arch/$(BARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 
 clean: generic_clean
-	make -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)"
+	make -C arch/$(BARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 	-rm -f $(BASE)/image.boot
Index: boot/arch/ppc32/loader/Makefile
===================================================================
--- boot/arch/ppc32/loader/Makefile	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ppc32/loader/Makefile	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -28,5 +28,5 @@
 
 include ../../../../version
-include ../../../../Makefile.config
+-include ../../../../Makefile.config
 
 ## Toolchain configuration
@@ -58,13 +58,5 @@
 endif
 
-CFLAGS = -DRELEASE=\"$(RELEASE)\" -I. -I../../../generic -I../../../genarch -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mcpu=powerpc -msoft-float -m32 -pipe
-
-ifdef REVISION
-	CFLAGS += "-DREVISION=\"$(REVISION)\""
-endif
-
-ifdef TIMESTAMP
-	CFLAGS += "-DTIMESTAMP=\"$(TIMESTAMP)\""
-endif
+CFLAGS = -DRELEASE=$(RELEASE) -I. -I../../../generic -I../../../genarch -imacros ../../../../config.h -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mcpu=powerpc -msoft-float -m32 -pipe
 
 SOURCES = \
Index: boot/arch/ppc32/loader/_link.ld.in
===================================================================
--- boot/arch/ppc32/loader/_link.ld.in	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ppc32/loader/_link.ld.in	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -1,8 +1,8 @@
-OUTPUT_FORMAT("elf32-powerpc") 
-OUTPUT_ARCH(powerpc:common) 
-ENTRY(start) 
- 
+OUTPUT_FORMAT("elf32-powerpc")
+OUTPUT_ARCH(powerpc:common)
+ENTRY(start)
+
 SECTIONS {
-	.boot 0x01000000: AT (0) { 
+	.boot 0x01000000: AT (0) {
 		*(BOOTSTRAP);
 		*(REALMODE);
@@ -11,10 +11,10 @@
 		*(.rodata);
 		*(.rodata.*);
-		*(.data);		/* initialized data */
+		*(.data);       /* initialized data */
 		*(.sdata);
 		*(.sdata2);
 		*(.sbss);
-		*(.bss);		/* uninitialized static variables */	
-		*(COMMON); 		/* global variables */
+		*(.bss);        /* uninitialized static variables */
+		*(COMMON);      /* global variables */
 [[COMPONENTS]]
 	}
Index: boot/arch/ppc32/loader/main.c
===================================================================
--- boot/arch/ppc32/loader/main.c	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/ppc32/loader/main.c	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -33,4 +33,5 @@
 #include <ofw.h>
 #include <align.h>
+#include <macros.h>
 
 #define HEAP_GAP 1024000
@@ -73,8 +74,8 @@
 }
 
-char *release = RELEASE;
+char *release = STRING(RELEASE);
 
 #ifdef REVISION
-	char *revision = ", revision " REVISION;
+	char *revision = ", revision " STRING(REVISION);
 #else
 	char *revision = "";
@@ -82,5 +83,5 @@
 
 #ifdef TIMESTAMP
-	char *timestamp = "\nBuilt on " TIMESTAMP;
+	char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
 #else
 	char *timestamp = "";
Index: boot/arch/sparc64/Makefile.inc
===================================================================
--- boot/arch/sparc64/Makefile.inc	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/sparc64/Makefile.inc	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -29,41 +29,37 @@
 TMP = distroot
 
-ifeq ($(CONFIG_AOUT_ISOFS_B),n)
-	SILO_PACKAGE=silo.patched.tar.gz
-endif
-
 ifeq ($(CONFIG_AOUT_ISOFS_B),y)
-	SILO_PACKAGE=silo.tar.gz
+	SILO_PACKAGE = silo.tar.gz
+else
+	SILO_PACKAGE = silo.patched.tar.gz
 endif
 
 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
+$(BASE)/image.iso: depend arch/$(BARCH)/loader/image.boot
 	mkdir -p $(TMP)/boot
 	mkdir -p $(TMP)/HelenOS
-	cat arch/$(ARCH)/silo/$(SILO_PACKAGE) | (cd $(TMP)/boot; tar xvfz -)
-	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
+	cat arch/$(BARCH)/silo/$(SILO_PACKAGE) | (cd $(TMP)/boot; tar xvfz -)
+	cp arch/$(BARCH)/silo/README arch/$(BARCH)/silo/COPYING $(TMP)/boot
+ifeq ($(CONFIG_RD_EXTERNAL),y)
+	cp arch/$(BARCH)/silo/silo.conf $(TMP)/boot/silo.conf
+else
+	cat arch/$(BARCH)/silo/silo.conf | grep -v initrd > $(TMP)/boot/silo.conf
+endif
+	cp arch/$(BARCH)/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
+	cp arch/$(BARCH)/loader/initrd.img $(TMP)/HelenOS/initrd.img
 endif
 	mkisofs -f -G $(TMP)/boot/isofs.b -B ... -r -o $(BASE)/image.iso $(TMP)/
 
 depend:
-	-rm arch/$(ARCH)/loader/image.boot
+	-rm arch/$(BARCH)/loader/image.boot
 
-arch/$(ARCH)/loader/image.boot:
-	$(MAKE) -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)"
+arch/$(BARCH)/loader/image.boot:
+	$(MAKE) -C arch/$(BARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 
 clean: generic_clean
-	$(MAKE) -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
+	$(MAKE) -C arch/$(BARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
 	-rm -fr $(TMP)
 	-rm -f $(BASE)/image.iso
Index: boot/arch/sparc64/loader/Makefile
===================================================================
--- boot/arch/sparc64/loader/Makefile	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/sparc64/loader/Makefile	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -28,5 +28,5 @@
 
 include ../../../../version
-include ../../../../Makefile.config
+-include ../../../../Makefile.config
 
 ## Toolchain configuration
@@ -58,13 +58,5 @@
 endif
 
-CFLAGS = -DRELEASE=\"$(RELEASE)\" -I. -I../../../generic -I../../../genarch -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mcpu=ultrasparc -m64 -mno-fpu -pipe
-
-ifdef REVISION
-	CFLAGS += "-DREVISION=\"$(REVISION)\""
-endif
-
-ifdef TIMESTAMP
-	CFLAGS += "-DTIMESTAMP=\"$(TIMESTAMP)\""
-endif
+CFLAGS = -DRELEASE=$(RELEASE) -I. -I../../../generic -I../../../genarch -imacros ../../../../config.h -nostdinc -nostdlib -fno-builtin -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -mcpu=ultrasparc -m64 -mno-fpu -pipe
 
 SOURCES = \
Index: boot/arch/sparc64/loader/main.c
===================================================================
--- boot/arch/sparc64/loader/main.c	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/sparc64/loader/main.c	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -37,4 +37,5 @@
 #include "ofwarch.h"
 #include <align.h>
+#include <macros.h>
 #include <string.h>
 
@@ -43,8 +44,8 @@
 component_t components[COMPONENTS];
 
-char *release = RELEASE;
+char *release = STRING(RELEASE);
 
 #ifdef REVISION
-	char *revision = ", revision " REVISION;
+	char *revision = ", revision " STRING(REVISION);
 #else
 	char *revision = "";
@@ -52,5 +53,5 @@
 
 #ifdef TIMESTAMP
-	char *timestamp = "\nBuilt on " TIMESTAMP;
+	char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
 #else
 	char *timestamp = "";
Index: boot/arch/sparc64/loader/ofwarch.c
===================================================================
--- boot/arch/sparc64/loader/ofwarch.c	(revision 0fcfa488af4d5256b39dbabfae819c9a889745c1)
+++ boot/arch/sparc64/loader/ofwarch.c	(revision 98a4e76b4160ea2db9e82981125a143f0b747421)
@@ -33,5 +33,5 @@
  */
 
-#include <ofwarch.h>  
+#include <ofwarch.h>
 #include <ofw.h>
 #include <printf.h>
