Makefile (31d1b7710262fba12282b24083f20dc76e0efc93) Makefile (558e78e3ce844c61ceffe32775dbefacf167b023)
1# SPDX-License-Identifier: GPL-2.0
2# ===========================================================================
3# Kernel configuration targets
4# These targets are used from top-level makefile
5
6PHONY += xconfig gconfig menuconfig config localmodconfig localyesconfig \
7 build_menuconfig build_nconfig build_gconfig build_xconfig
8

--- 128 unchanged lines hidden (view full) ---

137 @echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
138 @echo ' default value without prompting'
139 @echo ' kvmconfig - Enable additional options for kvm guest kernel support'
140 @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support'
141 @echo ' tinyconfig - Configure the tiniest possible kernel'
142 @echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)'
143
144# ===========================================================================
1# SPDX-License-Identifier: GPL-2.0
2# ===========================================================================
3# Kernel configuration targets
4# These targets are used from top-level makefile
5
6PHONY += xconfig gconfig menuconfig config localmodconfig localyesconfig \
7 build_menuconfig build_nconfig build_gconfig build_xconfig
8

--- 128 unchanged lines hidden (view full) ---

137 @echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
138 @echo ' default value without prompting'
139 @echo ' kvmconfig - Enable additional options for kvm guest kernel support'
140 @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support'
141 @echo ' tinyconfig - Configure the tiniest possible kernel'
142 @echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)'
143
144# ===========================================================================
145# Shared Makefile for the various kconfig executables:
146# conf: Used for defconfig, oldconfig and related targets
147# object files used by all kconfig flavours
145# object files used by all kconfig flavours
146common-objs := confdata.o expr.o symbol.o preprocess.o zconf.tab.o
148
147
149conf-objs := conf.o zconf.tab.o
150
151hostprogs-y := conf
152
153targets += zconf.lex.c
154
155# generated files seem to need this to find local include files
156HOSTCFLAGS_zconf.lex.o := -I$(src)
157HOSTCFLAGS_zconf.tab.o := -I$(src)
158
148targets += zconf.lex.c
149
150# generated files seem to need this to find local include files
151HOSTCFLAGS_zconf.lex.o := -I$(src)
152HOSTCFLAGS_zconf.tab.o := -I$(src)
153
154# conf: Used for defconfig, oldconfig and related targets
155hostprogs-y += conf
156conf-objs := conf.o $(common-objs)
157
159# nconf: Used for the nconfig target based on ncurses
160hostprogs-y += nconf
158# nconf: Used for the nconfig target based on ncurses
159hostprogs-y += nconf
161nconf-objs := nconf.o zconf.tab.o nconf.gui.o
160nconf-objs := nconf.o nconf.gui.o $(common-objs)
162
163HOSTLDLIBS_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs)
164HOSTCFLAGS_nconf.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
165HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
166
167$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/.nconf-cfg
168
169# mconf: Used for the menuconfig target based on lxdialog
170hostprogs-y += mconf
171lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
161
162HOSTLDLIBS_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs)
163HOSTCFLAGS_nconf.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
164HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
165
166$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/.nconf-cfg
167
168# mconf: Used for the menuconfig target based on lxdialog
169hostprogs-y += mconf
170lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
172mconf-objs := mconf.o zconf.tab.o $(addprefix lxdialog/, $(lxdialog))
171mconf-objs := mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs)
173
174HOSTLDLIBS_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs)
175$(foreach f, mconf.o $(lxdialog), \
176 $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags)))
177
178$(obj)/mconf.o: $(obj)/.mconf-cfg
179$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/.mconf-cfg
180
181# qconf: Used for the xconfig target based on Qt
182hostprogs-y += qconf
183qconf-cxxobjs := qconf.o
172
173HOSTLDLIBS_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs)
174$(foreach f, mconf.o $(lxdialog), \
175 $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags)))
176
177$(obj)/mconf.o: $(obj)/.mconf-cfg
178$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/.mconf-cfg
179
180# qconf: Used for the xconfig target based on Qt
181hostprogs-y += qconf
182qconf-cxxobjs := qconf.o
184qconf-objs := zconf.tab.o
183qconf-objs := $(common-objs)
185
186HOSTLDLIBS_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs)
187HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/.qconf-cfg && echo $$cflags)
188
189$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc
190
191quiet_cmd_moc = MOC $@
192 cmd_moc = $(shell . $(obj)/.qconf-cfg && echo $$moc) -i $< -o $@
193
194$(obj)/%.moc: $(src)/%.h $(obj)/.qconf-cfg
195 $(call cmd,moc)
196
197# gconf: Used for the gconfig target based on GTK+
198hostprogs-y += gconf
184
185HOSTLDLIBS_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs)
186HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/.qconf-cfg && echo $$cflags)
187
188$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc
189
190quiet_cmd_moc = MOC $@
191 cmd_moc = $(shell . $(obj)/.qconf-cfg && echo $$moc) -i $< -o $@
192
193$(obj)/%.moc: $(src)/%.h $(obj)/.qconf-cfg
194 $(call cmd,moc)
195
196# gconf: Used for the gconfig target based on GTK+
197hostprogs-y += gconf
199gconf-objs := gconf.o zconf.tab.o
198gconf-objs := gconf.o $(common-objs)
200
201HOSTLDLIBS_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs)
202HOSTCFLAGS_gconf.o = $(shell . $(obj)/.gconf-cfg && echo $$cflags)
203
204$(obj)/gconf.o: $(obj)/.gconf-cfg
205
206$(obj)/zconf.tab.o: $(obj)/zconf.lex.c
207
208# check if necessary packages are available, and configure build flags
209define filechk_conf_cfg
210 $(CONFIG_SHELL) $<
211endef
212
213$(obj)/.%conf-cfg: $(src)/%conf-cfg.sh FORCE
214 $(call filechk,conf_cfg)
215
216clean-files += .*conf-cfg
199
200HOSTLDLIBS_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs)
201HOSTCFLAGS_gconf.o = $(shell . $(obj)/.gconf-cfg && echo $$cflags)
202
203$(obj)/gconf.o: $(obj)/.gconf-cfg
204
205$(obj)/zconf.tab.o: $(obj)/zconf.lex.c
206
207# check if necessary packages are available, and configure build flags
208define filechk_conf_cfg
209 $(CONFIG_SHELL) $<
210endef
211
212$(obj)/.%conf-cfg: $(src)/%conf-cfg.sh FORCE
213 $(call filechk,conf_cfg)
214
215clean-files += .*conf-cfg