Fixup the new buildsystem a bit.
diff --git a/Makefile b/Makefile
index 8cae385..864fa7d 100644
--- a/Makefile
+++ b/Makefile
@@ -200,6 +200,7 @@
 do-it-all:      menuconfig
 endif
 
+
 SUBDIRS =applets archival console-tools editors fileutils findutils init \
 	miscutils modutils networking pwd_grp shell shellutils sysklogd \
 	textutils util-linux libbb
@@ -209,7 +210,7 @@
 $(patsubst %, _dir_%, $(SUBDIRS)) : dummy include/config/MARKER
 	$(MAKE) CFLAGS="$(CFLAGS)" -C $(patsubst _dir_%, %, $@)
 
-busybox: bbsubdirs
+busybox: config.h depend bbsubdirs
 	$(CC) $(LDFLAGS) -o $@ $(shell find $(SUBDIRS) -name \*.a) $(LIBCONFIG_LIB) $(LIBRARIES)
 	$(STRIPCMD)
 
@@ -291,13 +292,19 @@
 scripts/split-include: scripts/split-include.c
 	$(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
 
-dep-files: scripts/mkdep #archdep
-	rm -f .depend .hdepend
-	scripts/mkdep -I $(TOPDIR)/include -- `find $(TOPDIR) -name \*.c -print` >> .depend
-	scripts/mkdep -I $(TOPDIR)/include -- `find $(TOPDIR) -name \*.h -print` >> .hdepend
-	$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
+dep-files: scripts/mkdep
+	if [ ! -f .depend ] ; then \
+		rm -f .depend .hdepend; \
+		mkdir -p $(TOPDIR)/include/config; \
+		scripts/mkdep -I $(TOPDIR)/include -- \
+			`find $(TOPDIR) -name \*.c -print` >> .depend; \
+		scripts/mkdep -I $(TOPDIR)/include -- \
+			`find $(TOPDIR) -name \*.h -print` >> .hdepend; \
+		$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)" ; \
+	fi;
 
-depend dep: dep-files
+
+depend dep: config.h dep-files
 	@ echo -e "\n\nNow run 'make' to build BusyBox\n\n"
 
 CONFIG_SHELL := ${shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -308,14 +315,22 @@
 	scripts/split-include include/config.h include/config
 	@ touch include/config/MARKER
 
+config.h:
+	@if [ ! -f include/config.h ] ; then \
+		make oldconfig; \
+	fi;
+
 menuconfig:
+	mkdir -p $(TOPDIR)/include/config
 	$(MAKE) -C scripts/lxdialog all
 	$(CONFIG_SHELL) scripts/Menuconfig sysdeps/$(TARGET_OS)/config.in
 
 config:
+	mkdir -p $(TOPDIR)/include/config
 	$(CONFIG_SHELL) scripts/Configure sysdeps/$(TARGET_OS)/config.in
 
 oldconfig:
+	mkdir -p $(TOPDIR)/include/config
 	$(CONFIG_SHELL) scripts/Configure -d sysdeps/$(TARGET_OS)/config.in
 
 
diff --git a/applets/busybox.mkll b/applets/busybox.mkll
index 4e15e16..5b6677d 100755
--- a/applets/busybox.mkll
+++ b/applets/busybox.mkll
@@ -10,8 +10,8 @@
 export LC_ALL=POSIX
 export LC_CTYPE=POSIX
 
-CONFIG_H=${1:-Config.h}
-APPLETS_H=${2:-applets.h}
+CONFIG_H=${1:-include/config.h}
+APPLETS_H=${2:-include/applets.h}
 gcc -E -DMAKE_LINKS -include $CONFIG_H $APPLETS_H |
   awk '/^[ \t]*LINK/{
 	dir=substr($2,8)
diff --git a/applets/busybox.sh b/applets/busybox.sh
deleted file mode 100755
index 6ac4e80..0000000
--- a/applets/busybox.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-export LC_ALL=POSIX
-export LC_CTYPE=POSIX
-
-RAW=` \
-    $CC -E -dM ${1:-Config.h} | \
-    sed -n -e '/^.*CONFIG_FEATURE.*$/d;s/^#define.*\<CONFIG_\(.*\)\>/\1.c/gp;' \
-    | tr A-Z a-z | sort
-`
-test "${RAW}" != "" ||  exit
-if [ -d "$CONFIG_SRC_DIR" ]; then cd $CONFIG_SRC_DIR; fi
-# By running $RAW through "ls", we avoid listing
-# source files that don't exist.
-ls $RAW 2>/dev/null | tr '\n' ' '
-