15257cf54a5810105bc4a75703a06740d756d8e8landley# ===========================================================================
25257cf54a5810105bc4a75703a06740d756d8e8landley# Kernel configuration targets
35257cf54a5810105bc4a75703a06740d756d8e8landley# These targets are used from top-level makefile
45257cf54a5810105bc4a75703a06740d756d8e8landley
55257cf54a5810105bc4a75703a06740d756d8e8landleyKCONFIG_TOP = Config.in
6217047b6b2a4ecfe87bda18fa425dc2df998f564Rob LandleyKCONFIG_PROJECT = ToyBox
75257cf54a5810105bc4a75703a06740d756d8e8landleyobj = ./kconfig
85257cf54a5810105bc4a75703a06740d756d8e8landleyPHONY += clean help oldconfig menuconfig config silentoldconfig \
9e35f2b831201cbe220e97d1b36f8fec3981a9065Rob Landley	randconfig allyesconfig allnoconfig allmodconfig defconfig
105257cf54a5810105bc4a75703a06740d756d8e8landley
112896480c4918f2accccb8301bec457a7bff7377eRob Landleymenuconfig: $(obj)/mconf $(KCONFIG_TOP)
125257cf54a5810105bc4a75703a06740d756d8e8landley	$< $(KCONFIG_TOP)
135257cf54a5810105bc4a75703a06740d756d8e8landley
142896480c4918f2accccb8301bec457a7bff7377eRob Landleyconfig: $(obj)/conf $(KCONFIG_TOP)
155257cf54a5810105bc4a75703a06740d756d8e8landley	$< $(KCONFIG_TOP)
165257cf54a5810105bc4a75703a06740d756d8e8landley
172896480c4918f2accccb8301bec457a7bff7377eRob Landleyoldconfig: $(obj)/conf $(KCONFIG_TOP)
185257cf54a5810105bc4a75703a06740d756d8e8landley	$< -o $(KCONFIG_TOP)
195257cf54a5810105bc4a75703a06740d756d8e8landley
202896480c4918f2accccb8301bec457a7bff7377eRob Landleysilentoldconfig: $(obj)/conf $(KCONFIG_TOP)
215257cf54a5810105bc4a75703a06740d756d8e8landley	$< -s $(KCONFIG_TOP)
225257cf54a5810105bc4a75703a06740d756d8e8landley
232896480c4918f2accccb8301bec457a7bff7377eRob Landleyrandconfig: $(obj)/conf $(KCONFIG_TOP)
24324e615106907c69e920b44e1a9c01c45e4d0e8cRob Landley	$< -r $(KCONFIG_TOP) > /dev/null
255257cf54a5810105bc4a75703a06740d756d8e8landley
262896480c4918f2accccb8301bec457a7bff7377eRob Landleyallyesconfig: $(obj)/conf $(KCONFIG_TOP)
27324e615106907c69e920b44e1a9c01c45e4d0e8cRob Landley	$< -y $(KCONFIG_TOP) > /dev/null
285257cf54a5810105bc4a75703a06740d756d8e8landley
292896480c4918f2accccb8301bec457a7bff7377eRob Landleyallnoconfig: $(obj)/conf $(KCONFIG_TOP)
30324e615106907c69e920b44e1a9c01c45e4d0e8cRob Landley	$< -n $(KCONFIG_TOP) > /dev/null
315257cf54a5810105bc4a75703a06740d756d8e8landley
322896480c4918f2accccb8301bec457a7bff7377eRob Landleydefconfig: $(obj)/conf $(KCONFIG_TOP)
33324e615106907c69e920b44e1a9c01c45e4d0e8cRob Landley	$< -D /dev/null $(KCONFIG_TOP) > /dev/null
345257cf54a5810105bc4a75703a06740d756d8e8landley
355257cf54a5810105bc4a75703a06740d756d8e8landley# Help text used by make help
36cd2edfd6a13848e387f836252464de4662a22205Rob Landleyhelp::
375257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  config	  - Update current config utilising a line-oriented program'
385257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  menuconfig	  - Update current config utilising a menu based program'
395257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  oldconfig	  - Update current config utilising a provided .config as base'
405257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  silentoldconfig - Same as oldconfig, but quietly'
415257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  randconfig	  - New config with random answer to all options'
425257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  defconfig	  - New config with default answer to all options'
43456b363175ae9a9bf2128d3e39a325552e1f0c43Rob Landley	@echo  '                    This is the maximum sane configuration.'
445257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  allyesconfig	  - New config where all options are accepted with yes'
45456b363175ae9a9bf2128d3e39a325552e1f0c43Rob Landley	@echo  "                    This may not actually compile, it's a starting point"
46456b363175ae9a9bf2128d3e39a325552e1f0c43Rob Landley	@echo  '                    for further configuration (probably with menuconfig)'
475257cf54a5810105bc4a75703a06740d756d8e8landley	@echo  '  allnoconfig	  - New config where all options are answered with no'
48456b363175ae9a9bf2128d3e39a325552e1f0c43Rob Landley	@echo  '                    (NOP binary, starting point for further configuration)'
495257cf54a5810105bc4a75703a06740d756d8e8landley
505257cf54a5810105bc4a75703a06740d756d8e8landley# Cheesy build
515257cf54a5810105bc4a75703a06740d756d8e8landley
525257cf54a5810105bc4a75703a06740d756d8e8landleySHIPPED = kconfig/zconf.tab.c kconfig/lex.zconf.c kconfig/zconf.hash.c
535257cf54a5810105bc4a75703a06740d756d8e8landley
545257cf54a5810105bc4a75703a06740d756d8e8landley%.c: %.c_shipped
555257cf54a5810105bc4a75703a06740d756d8e8landley	@ln -s $(notdir $<) $@
565257cf54a5810105bc4a75703a06740d756d8e8landley
575257cf54a5810105bc4a75703a06740d756d8e8landleygen_config.h: .config
585257cf54a5810105bc4a75703a06740d756d8e8landley
595257cf54a5810105bc4a75703a06740d756d8e8landleykconfig/mconf: $(SHIPPED)
60217047b6b2a4ecfe87bda18fa425dc2df998f564Rob Landley	$(HOSTCC) -o $@ kconfig/mconf.c kconfig/zconf.tab.c \
61217047b6b2a4ecfe87bda18fa425dc2df998f564Rob Landley		kconfig/lxdialog/*.c -lcurses -DCURSES_LOC="<ncurses.h>" \
62217047b6b2a4ecfe87bda18fa425dc2df998f564Rob Landley		-DKBUILD_NO_NLS=1 -DPROJECT_NAME=\"$(KCONFIG_PROJECT)\"
635257cf54a5810105bc4a75703a06740d756d8e8landley
645257cf54a5810105bc4a75703a06740d756d8e8landleykconfig/conf: $(SHIPPED)
659fdf465b913ee35a17cf8d9758292afb0cac8a9fRob Landley	$(HOSTCC) -o $@ kconfig/conf.c kconfig/zconf.tab.c -DKBUILD_NO_NLS=1 \
66217047b6b2a4ecfe87bda18fa425dc2df998f564Rob Landley		-DPROJECT_NAME=\"$(KCONFIG_PROJECT)\"
675257cf54a5810105bc4a75703a06740d756d8e8landley
685257cf54a5810105bc4a75703a06740d756d8e8landleyclean::
699fdf465b913ee35a17cf8d9758292afb0cac8a9fRob Landley	rm -f $(wildcard kconfig/*zconf*.c) kconfig/conf kconfig/mconf
70