-
-# always needed
-# ---------------------------------------------------------------------------
-
-all: fixdep split-include docproc __chmod
-
-# The following temporary rule will make sure that people's
-# trees get updated to the right permissions, since patch(1)
-# can't do it
-# ---------------------------------------------------------------------------
-
-.PHONY: __chmod
-
-__chmod: kernel-doc mkcompile_h makelst
- @chmod a+x $^
-
-# xconfig
-# ---------------------------------------------------------------------------
-
-HEADER=header.tk
-TAIL=tail.tk
-# Previous versions always remade kconfig.tk because they always depended
-# on soundscript. This runs fairly fast, and I can't find all the
-# Config.in files to depend on anyways. So I'll force it to remake.
-
-kconfig.tk: $(TOPDIR)/arch/$(ARCH)/config.in tkparse $(HEADER) $(TAIL) FORCE
- @echo ' Generating $@'
- @( \
- if [ -f /usr/local/bin/wish ]; then \
- echo '#!'"/usr/local/bin/wish -f"; \
- else \
- echo '#!'"/usr/bin/wish -f"; \
- fi; \
- cat $(HEADER); \
- ./tkparse < $<; \
- echo "set defaults \"arch/${ARCH}/defconfig\""; \
- echo "set ARCH \"${ARCH}\""; \
- cat $(TAIL) \
- ) > $@
- chmod 755 $@
-
-# ---------------------------------------------------------------------------
-
-.PHONY: lxdialog
-
-lxdialog:
- $(MAKE) -C lxdialog all
-
+###
+# scripts contains sources for various helper programs used throughout
+# the kernel for the build process.
# ---------------------------------------------------------------------------
-
-host-progs := fixdep split-include docproc tkparse
-
-tkparse-objs := tkparse.o tkcond.o tkgen.o
-
-# fixdep is needed to compile other host programs
-
-split-include docproc $(tkparse-objs) lxdialog: fixdep
-
-
-include $(TOPDIR)/Rules.make
+# kallsyms: Find all symbols in vmlinux
+# pnmttologo: Convert pnm files to logo files
+# conmakehash: Create chartable
+# conmakehash: Create arrays for initializing the kernel console tables
+# docproc: Used in Documentation/DocBook
+
+HOST_EXTRACFLAGS += -I$(srctree)/tools/include
+
+hostprogs-$(CONFIG_KALLSYMS) += kallsyms
+hostprogs-$(CONFIG_LOGO) += pnmtologo
+hostprogs-$(CONFIG_VT) += conmakehash
+hostprogs-$(CONFIG_IKCONFIG) += bin2c
+hostprogs-$(BUILD_C_RECORDMCOUNT) += recordmcount
+
+always := $(hostprogs-y) $(hostprogs-m)
+
+# The following hostprogs-y programs are only build on demand
+hostprogs-y += unifdef docproc
+
+# These targets are used internally to avoid "is up to date" messages
+PHONY += build_unifdef
+build_unifdef: scripts/unifdef FORCE
+ @:
+build_docproc: scripts/docproc FORCE
+ @:
+
+subdir-$(CONFIG_MODVERSIONS) += genksyms
+subdir-y += mod
+subdir-$(CONFIG_SECURITY_SELINUX) += selinux
+subdir-$(CONFIG_DTC) += dtc
+
+# Let clean descend into subdirs
+subdir- += basic kconfig package selinux