-include $(TOPDIR)/rules.mk
-
-TARGETS-y:=kernel-headers libnotimpl
-TARGETS-$(CONFIG_GDB) += gdb
-ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
- TARGETS-y+=binutils gcc uClibc
-endif
-
-TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y))
-TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y))
-TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y))
+# Steps:
+# 1) toolchain/binutils/compile
+# build & install binutils
+# 2) toolchain/gcc/minimal/compile
+# build & install a minimal gcc, needed for steps 3 & 4
+# 3) toolchain/kernel-headers/compile
+# install kernel headers, needed for step 4
+# 4) toolchain/libc/headers/compile
+# build & install libc headers & support files, needed for step 5
+# 5) toolchain/gcc/initial/compile
+# build & install an initial gcc, needed for step 6
+# 6) toolchain/libc/compile
+# build & install the final libc
+# 7) toolchain/gcc/final/compile
+# build & install the final gcc
+# 8) toolchain/libc/utils/compile
+# build & install libc utilities
+#
+# For musl, steps 2 and 4 are skipped, and step 3 is done after 5