Index: boot/Makefile
===================================================================
--- boot/Makefile	(revision b446b02d16cef27e33c81855d516b2f1a5ce70b2)
+++ boot/Makefile	(revision 4761f54ee981ed05e6708beb4639428d34b524c8)
@@ -126,6 +126,7 @@
 	$(MAKE) -r -f $(POSTBUILD) clean PRECHECK=$(PRECHECK)
 endif
-	rm -f $(POST_OUTPUT) $(BOOT_OUTPUT) $(DEPEND) $(DEPEND_PREV) arch/*/include/common.h
+	rm -f $(POST_OUTPUT) $(BOOT_OUTPUT) arch/*/include/common.h
 	find generic/src/ arch/*/src/ genarch/src/ -name '*.o' -follow -exec rm \{\} \;
+	find generic/src/ arch/*/src/ genarch/src/ -name '*.d' -follow -exec rm \{\} \;
 
 clean_dist:
Index: boot/Makefile.build
===================================================================
--- boot/Makefile.build	(revision b446b02d16cef27e33c81855d516b2f1a5ce70b2)
+++ boot/Makefile.build	(revision 4761f54ee981ed05e6708beb4639428d34b524c8)
@@ -27,5 +27,5 @@
 #
 
-.PHONY: all clean
+.PHONY: all clean depend
 
 include Makefile.common
@@ -64,35 +64,19 @@
 endif
 
-ifeq ($(COMPILER),gcc_native)
-	CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS) $(EXTRA_CFLAGS)
-	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
-endif
-
-ifeq ($(COMPILER),gcc_cross)
-	CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS) $(EXTRA_CFLAGS)
-	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
-endif
-
-ifeq ($(COMPILER),gcc_helenos)
-	CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS) $(EXTRA_CFLAGS)
-	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
-endif
-
 ifeq ($(COMPILER),clang)
 	CFLAGS = $(COMMON_CFLAGS) $(CLANG_CFLAGS) $(EXTRA_CFLAGS)
-	DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
+else
+	CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS) $(EXTRA_CFLAGS)
 endif
 
 OBJECTS := $(addsuffix .o,$(basename $(SOURCES)))
+DEPENDS := $(addsuffix .d,$(basename $(SOURCES)))
 
 all: $(VERSION_DEF) $(COMMON_MAKEFILE) $(COMMON_HEADER) $(CONFIG_MAKEFILE) $(CONFIG_HEADER) $(BOOT_OUTPUT)
-	-[ -f $(DEPEND) ] && cp -a $(DEPEND) $(DEPEND_PREV)
 
 clean:
 	rm -f $(RAW) $(MAP) $(ARCH_INCLUDE) $(GENARCH_INCLUDE)
 
-ifneq ($(MAKECMDGOALS),clean)
--include $(DEPEND)
-endif
+-include $(DEPENDS)
 
 AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
@@ -104,28 +88,26 @@
 	$(LD) -n $(LFLAGS) -T $(LINK) -M -Map $(MAP) -o $@ $(OBJECTS)
 
-$(LINK): $(DEPEND)
+$(LINK): | depend
 	$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -D__LINKER__ -E -x c $(LINK).in | grep -v "^\#" > $(LINK)
 
-%.o: %.S $(DEPEND)
-	$(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c $< -o $@
+%.o: %.S | depend
+	$(CC) -MD $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c $< -o $@
 ifeq ($(PRECHECK),y)
 	$(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
 endif
 
-%.o: %.c $(DEPEND)
-	$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
+%.o: %.c | depend
+	$(CC) -MD $(DEFS) $(CFLAGS) -c $< -o $@
 ifeq ($(PRECHECK),y)
 	$(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS)
 endif
 
-%.o: %.s $(DEPEND)
-	$(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c $< -o $@
+%.o: %.s | depend
+	$(CC) -MD $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c $< -o $@
 ifeq ($(PRECHECK),y)
 	$(JOBFILE) $(JOB) $< $@ as asm
 endif
 
-$(DEPEND): $(ARCH_INCLUDE) $(GENARCH_INCLUDE) $(COMMON_HEADER_ARCH) $(PRE_DEPEND)
-	makedepend -f - -- $(DEPEND_DEFS) $(CFLAGS) -- $(SOURCES) > $@ 2> /dev/null
-	-[ -f $(DEPEND_PREV) ] && diff -q $(DEPEND_PREV) $@ && mv -f $(DEPEND_PREV) $@
+depend: $(ARCH_INCLUDE) $(GENARCH_INCLUDE) $(COMMON_HEADER_ARCH) $(PRE_DEPEND)
 
 $(COMPS).s: $(COMPS).zip
Index: boot/Makefile.common
===================================================================
--- boot/Makefile.common	(revision b446b02d16cef27e33c81855d516b2f1a5ce70b2)
+++ boot/Makefile.common	(revision 4761f54ee981ed05e6708beb4639428d34b524c8)
@@ -63,6 +63,4 @@
 GENARCH_INCLUDE = generic/include/genarch
 
-DEPEND = Makefile.depend
-DEPEND_PREV = $(DEPEND).prev
 DISTROOT = distroot
 INITRD = initrd
