diff --git a/include/toplevel.mk b/include/toplevel.mk
index 23d70ac81a1d3d092ab68bbc2a3aa16644d0241d..10b81049c5439b70d85b049d618096932f58fe27 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -156,6 +156,15 @@ prereq:: prepare-tmpinfo .config
 	@+$(MAKE) -r -s tmp/.prereq-build $(PREP_MK)
 	@+$(NO_TRACE_MAKE) -r -s $@
 
+ifeq ($(SDK),1)
+
+%::
+	@+$(PREP_MK) $(NO_TRACE_MAKE) -r -s prereq
+	@./scripts/config/conf --defconfig=.config Config.in
+	@+$(ULIMIT_FIX) $(SUBMAKE) -r $@
+
+else
+
 %::
 	@+$(PREP_MK) $(NO_TRACE_MAKE) -r -s prereq
 	@( \
@@ -167,6 +176,8 @@ prereq:: prepare-tmpinfo .config
 	)
 	@+$(ULIMIT_FIX) $(SUBMAKE) -r $@
 
+endif
+
 help:
 	cat README
 
diff --git a/package/Makefile b/package/Makefile
index d46cb2ca0e3f63ea5e743e0d1c06869d9a3bbd65..3b4eecdf0bf8801a4457063b758faf3f60b0290e 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -10,11 +10,8 @@ curdir:=package
 -include $(TMP_DIR)/.packagedeps
 $(curdir)/builddirs:=$(sort $(package-) $(package-y) $(package-m))
 $(curdir)/builddirs-install:=.
-ifeq ($(SDK),1)
-else
-  $(curdir)/builddirs-default:=. $(sort $(package-y) $(package-m))
-  $(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m))
-endif
+$(curdir)/builddirs-default:=. $(sort $(package-y) $(package-m))
+$(curdir)/builddirs-prereq:=. $(sort $(prereq-y) $(prereq-m))
 ifneq ($(IGNORE_ERRORS),)
   package-y-filter := $(package-y)
   package-m-filter := $(filter-out $(package-y),$(package-m))
diff --git a/target/sdk/convert-config.pl b/target/sdk/convert-config.pl
index 9fd2c362e6b2ea5b3c4e1fc69747e91b1ffe1d24..243de0b87b419376962961bfbeef1408b9aafe46 100755
--- a/target/sdk/convert-config.pl
+++ b/target/sdk/convert-config.pl
@@ -1,6 +1,13 @@
 #!/usr/bin/env perl
 use strict;
 
+print <<EOF;
+config ALL
+	bool
+	default y
+
+EOF
+
 while (<>) {
 	chomp;
 	next unless /^CONFIG_([^=]+)=(.*)$/;
@@ -9,6 +16,8 @@ while (<>) {
 	my $val = $2;
 	my $type;
 
+	next if $var eq 'ALL';
+
 	if ($val eq 'y') {
 		$type = "bool";
 	} elsif ($val eq 'm') {