Index: kernel/Makefile
===================================================================
--- kernel/Makefile	(revision 1167520724b9b526c27b67f2d4bc447ef626240c)
+++ kernel/Makefile	(revision 231fcb23cee33316ea3e310a65aa685ed0fc8538)
@@ -27,21 +27,9 @@
 #
 
-## Kernel release
-#
-
-VERSION = 0
-PATCHLEVEL = 2
-SUBLEVEL = 0
-EXTRAVERSION = 2
-NAME = Daylight
-ifdef EXTRAVERSION
-RELEASE = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL).$(EXTRAVERSION)
-else
-RELEASE = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)
-endif
 
 ## Include configuration
 #
 
+-include ../version
 -include Makefile.config
 
@@ -50,5 +38,5 @@
 
 DEFS = -D$(ARCH) -DARCH=\"$(ARCH)\" -DRELEASE=\"$(RELEASE)\" "-DNAME=\"$(NAME)\"" -DKERNEL
-CFLAGS = -fno-builtin -fomit-frame-pointer -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -nostdlib -nostdinc -Igeneric/include/ 
+CFLAGS = -fno-builtin -fomit-frame-pointer -Wall -Werror-implicit-function-declaration -Wmissing-prototypes -Werror -O3 -nostdlib -nostdinc -Igeneric/include/
 LFLAGS = -M
 AFLAGS =
@@ -71,38 +59,47 @@
 	DEFS += -DCONFIG_DEBUG
 endif
+
 ifeq ($(CONFIG_DEBUG_SPINLOCK),y)
 	DEFS += -DCONFIG_DEBUG_SPINLOCK
 endif
+
 ifeq ($(CONFIG_DEBUG_AS_WATCHPOINT),y)
 	DEFS += -DCONFIG_DEBUG_AS_WATCHPOINT
 endif
+
 ifeq ($(CONFIG_FPU_LAZY),y)
 	DEFS += -DCONFIG_FPU_LAZY
 endif
+
 ifeq ($(CONFIG_DEBUG_ALLREGS),y)
 	DEFS += -DCONFIG_DEBUG_ALLREGS
 endif
+
 ifeq ($(CONFIG_VHPT),y)
 	DEFS += -DCONFIG_VHPT
 endif
+
 ifeq ($(CONFIG_POWEROFF),y)
 	DEFS += -DCONFIG_POWEROFF
 endif
+
 ifeq ($(CONFIG_FB),y)
-ifeq ($(ARCH),ia32)
-	DEFS += -DCONFIG_VESA_WIDTH=$(CONFIG_VESA_WIDTH)
-	DEFS += -DCONFIG_VESA_HEIGHT=$(CONFIG_VESA_HEIGHT)
-	DEFS += -DCONFIG_VESA_BPP=$(CONFIG_VESA_BPP)
-endif
-ifeq ($(ARCH),amd64)
-	DEFS += -DCONFIG_VESA_WIDTH=$(CONFIG_VESA_WIDTH)
-	DEFS += -DCONFIG_VESA_HEIGHT=$(CONFIG_VESA_HEIGHT)
-	DEFS += -DCONFIG_VESA_BPP=$(CONFIG_VESA_BPP)
-endif
-ifeq ($(ARCH),xen32)
-	DEFS += -DCONFIG_VESA_WIDTH=$(CONFIG_VESA_WIDTH)
-	DEFS += -DCONFIG_VESA_HEIGHT=$(CONFIG_VESA_HEIGHT)
-	DEFS += -DCONFIG_VESA_BPP=$(CONFIG_VESA_BPP)
-endif
+	ifeq ($(ARCH),ia32)
+		DEFS += -DCONFIG_VESA_WIDTH=$(CONFIG_VESA_WIDTH)
+		DEFS += -DCONFIG_VESA_HEIGHT=$(CONFIG_VESA_HEIGHT)
+		DEFS += -DCONFIG_VESA_BPP=$(CONFIG_VESA_BPP)
+	endif
+	
+	ifeq ($(ARCH),amd64)
+		DEFS += -DCONFIG_VESA_WIDTH=$(CONFIG_VESA_WIDTH)
+		DEFS += -DCONFIG_VESA_HEIGHT=$(CONFIG_VESA_HEIGHT)
+		DEFS += -DCONFIG_VESA_BPP=$(CONFIG_VESA_BPP)
+	endif
+	
+	ifeq ($(ARCH),xen32)
+		DEFS += -DCONFIG_VESA_WIDTH=$(CONFIG_VESA_WIDTH)
+		DEFS += -DCONFIG_VESA_HEIGHT=$(CONFIG_VESA_HEIGHT)
+		DEFS += -DCONFIG_VESA_BPP=$(CONFIG_VESA_BPP)
+	endif
 endif
 
@@ -205,10 +202,5 @@
 
 all:
-	tools/config.py default $(NARCH)
-ifdef NARCH
- ifneq ($(ARCH), $(NARCH))
-	$(MAKE) -C . clean
- endif
-endif
+	../tools/config.py kernel.config default $(ARCH) $(COMPILER) $(CONFIG_DEBUG) $(MACHINE)
 	$(MAKE) -C . build
 
@@ -217,5 +209,5 @@
 config:
 	-rm Makefile.depend
-	tools/config.py
+	tools/config.py kernel.config
 
 -include Makefile.depend
@@ -227,7 +219,7 @@
 	-rm -f kernel.bin kernel.raw kernel.map kernel.map.pre kernel.objdump kernel.disasm generic/src/debug/real_map.bin Makefile.depend* generic/include/arch generic/include/genarch arch/$(ARCH)/_link.ld
 	find generic/src/ arch/*/src/ genarch/src/ test/ -name '*.o' -follow -exec rm \{\} \;
-	for arch in arch/*; do \
-	    [ -e $$arch/_link.ld ] && rm $$arch/_link.ld 2>/dev/null;\
-	done;exit 0
+	for arch in arch/* ; do \
+	    [ -e $$arch/_link.ld ] && rm $$arch/_link.ld 2>/dev/null ; \
+	done ; exit 0
 
 archlinks:
