blob: 1713b8d0eb9e150329abc936ec4af4cdeca8f980 [file] [log] [blame]
Patrick Georgi0588d192009-08-12 15:00:51 +00001# ===========================================================================
2# Kernel configuration targets
3# These targets are used from top-level makefile
4
Patrick Georgi4647bb12015-06-11 09:45:00 +02005export LC_ALL=C
6export LANG=C
7
Patrick Georgidb6dd812015-06-11 09:55:43 +02008DEFCONFIG?=defconfig
9
Patrick Georgid5208402014-04-11 20:24:06 +020010PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \
11 localmodconfig localyesconfig
Patrick Georgi0588d192009-08-12 15:00:51 +000012
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000013xconfig: $(objk)/qconf
Patrick Georgid5208402014-04-11 20:24:06 +020014 $< $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000015
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000016gconfig: $(objk)/gconf
Uwe Hermann6113c1c2012-04-12 21:39:27 +020017 cp -f $(srck)/gconf.glade $(objk)/gconf.glade
Patrick Georgid5208402014-04-11 20:24:06 +020018 $< $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000019
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000020menuconfig: $(objk)/mconf
Patrick Georgid5208402014-04-11 20:24:06 +020021 $< $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000022
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000023config: $(objk)/conf
Patrick Georgid5208402014-04-11 20:24:06 +020024 $< --oldaskconfig $(Kconfig)
25
26nconfig: $(objk)/nconf
27 $< $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000028
Patrick Georgi4ed5cb32016-02-11 22:04:55 +010029# Disable strict mode because oldconfig is typically used to clean up
30# templates and the like. The second invocation should already have sane data.
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000031oldconfig: $(objk)/conf
Patrick Georgi4ed5cb32016-02-11 22:04:55 +010032 KCONFIG_STRICT= $< --$@ $(Kconfig)
Patrick Georgid5208402014-04-11 20:24:06 +020033 $< --silentoldconfig $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000034
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000035silentoldconfig: $(objk)/conf
Patrick Georgid5208402014-04-11 20:24:06 +020036 $< --$@ $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000037
38# --- UNUSED, ignore ----------------------------------------------------------
Patrick Georgid5208402014-04-11 20:24:06 +020039localyesconfig localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
40 $(Q)mkdir -p include/generated
41 $(Q)perl $< --$@ $(srctree) $(Kconfig) > .tmp.config
42 $(Q)if [ -f .config ]; then \
43 cmp -s .tmp.config .config || \
44 (mv -f .config .config.old.1; \
45 mv -f .tmp.config .config; \
46 $(obj)/conf --silentoldconfig $(Kconfig); \
47 mv -f .config.old.1 .config.old) \
48 else \
49 mv -f .tmp.config .config; \
50 $(obj)/conf --silentoldconfig $(Kconfig); \
51 fi
52 $(Q)rm -f .tmp.config
53
Patrick Georgi0588d192009-08-12 15:00:51 +000054# Create new linux.pot file
55# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
Patrick Georgi0588d192009-08-12 15:00:51 +000056update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
Patrick Georgid5208402014-04-11 20:24:06 +020057 $(Q)echo " GEN config.pot"
58 $(Q)xgettext --default-domain=linux \
59 --add-comments --keyword=_ --keyword=N_ \
60 --from-code=UTF-8 \
61 --files-from=$(srctree)/scripts/kconfig/POTFILES.in \
62 --directory=$(srctree) --directory=$(objtree) \
Patrick Georgi0588d192009-08-12 15:00:51 +000063 --output $(obj)/config.pot
Patrick Georgid5208402014-04-11 20:24:06 +020064 $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
65 $(Q)(for i in `ls $(srctree)/arch/*/Kconfig \
66 $(srctree)/arch/*/um/Kconfig`; \
Patrick Georgi0588d192009-08-12 15:00:51 +000067 do \
Patrick Georgid5208402014-04-11 20:24:06 +020068 echo " GEN $$i"; \
69 $(obj)/kxgettext $$i \
Patrick Georgi0588d192009-08-12 15:00:51 +000070 >> $(obj)/config.pot; \
71 done )
Patrick Georgid5208402014-04-11 20:24:06 +020072 $(Q)echo " GEN linux.pot"
73 $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
Patrick Georgi0588d192009-08-12 15:00:51 +000074 --output $(obj)/linux.pot
Patrick Georgid5208402014-04-11 20:24:06 +020075 $(Q)rm -f $(obj)/config.pot
Patrick Georgi0588d192009-08-12 15:00:51 +000076# --- UNUSED, ignore ----------------------------------------------------------
77
Martin Rothf099e1b2015-06-07 20:30:28 -060078PHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig savedefconfig
Patrick Georgi0588d192009-08-12 15:00:51 +000079
Patrick Georgid5208402014-04-11 20:24:06 +020080allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(objk)/conf
81 $< --$@ $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000082
Martin Rothf099e1b2015-06-07 20:30:28 -060083savedefconfig: $(objk)/conf
Patrick Georgidb6dd812015-06-11 09:55:43 +020084 $< --$@=$(DEFCONFIG) $(Kconfig)
Martin Rothf099e1b2015-06-07 20:30:28 -060085
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000086defconfig: $(objk)/conf
Patrick Georgi0588d192009-08-12 15:00:51 +000087ifeq ($(KBUILD_DEFCONFIG),)
Stefan Reinauerb12a4482015-06-29 16:45:57 -070088 $< --defconfig $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000089else
90 @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
Stefan Reinauerb12a4482015-06-29 16:45:57 -070091 $< --defconfig=$(KBUILD_DEFCONFIG) $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000092endif
93
Martin Roth56354d52015-08-18 14:30:27 -060094olddefconfig: $(objk)/conf
95 $< --olddefconfig $(Kconfig)
96
Patrick Georgi9ebd65d2010-04-27 09:23:33 +000097%_defconfig: $(objk)/conf
Stefan Reinauerb12a4482015-06-29 16:45:57 -070098 $< --defconfig=configs/$@ $(Kconfig)
Patrick Georgi0588d192009-08-12 15:00:51 +000099
100# Help text used by make help
Martin Rothc24f3d62015-11-25 12:50:25 -0700101help_kconfig help::
102 @echo '*** Kconfig Targets ***'
Patrick Georgi0588d192009-08-12 15:00:51 +0000103 @echo ' config - Update current config utilising a line-oriented program'
Patrick Georgid5208402014-04-11 20:24:06 +0200104 @echo ' nconfig - Update current config utilising a ncurses menu based program'
Patrick Georgi0588d192009-08-12 15:00:51 +0000105 @echo ' menuconfig - Update current config utilising a menu based program'
106 @echo ' xconfig - Update current config utilising a QT based front-end'
107 @echo ' gconfig - Update current config utilising a GTK based front-end'
108 @echo ' oldconfig - Update current config utilising a provided .config as base'
Martin Rothbfe6f6a2016-06-22 13:34:42 -0600109 @echo ' olddefconfig - Same as oldconfig, but with default answer to all new options'
Martin Roth76f14b22015-11-18 13:09:23 -0700110 #@echo ' localmodconfig - Update current config disabling modules not loaded'
111 #@echo ' localyesconfig - Update current config converting local mods to core'
Patrick Georgid5208402014-04-11 20:24:06 +0200112 @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
Patrick Georgi0588d192009-08-12 15:00:51 +0000113 @echo ' defconfig - New config with default answer to all options'
Martin Rothf099e1b2015-06-07 20:30:28 -0600114 @echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
Martin Roth76f14b22015-11-18 13:09:23 -0700115 #@echo ' allnoconfig - New config where all options are answered with no'
116 #@echo ' allyesconfig - New config where all options are accepted with yes'
117 #@echo ' allmodconfig - New config selecting modules when possible'
118 #@echo ' randconfig - New config with random answer to all options'
119 @echo
Patrick Georgi0588d192009-08-12 15:00:51 +0000120
121# lxdialog stuff
122check-lxdialog := $(srck)/lxdialog/check-lxdialog.sh
123
124# Use recursively expanded variables so we do not call gcc unless
125# we really need to do so. (Do not call gcc as part of make mrproper)
Patrick Georgid5208402014-04-11 20:24:06 +0200126HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
127 -DLOCALE
Werner Zeh622a28d2019-04-01 12:52:30 +0200128HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) \
129 -ldflags $(HOSTCC)) -ltinfo
Patrick Georgi0588d192009-08-12 15:00:51 +0000130
Patrick Georgi0588d192009-08-12 15:00:51 +0000131
132# ===========================================================================
133# Shared Makefile for the various kconfig executables:
134# conf: Used for defconfig, oldconfig and related targets
Patrick Georgid5208402014-04-11 20:24:06 +0200135# nconf: Used for the nconfig target.
136# Utilizes ncurses
137# mconf: Used for the menuconfig target
Patrick Georgi0588d192009-08-12 15:00:51 +0000138# Utilizes the lxdialog package
139# qconf: Used for the xconfig target
140# Based on QT which needs to be installed to compile it
141# gconf: Used for the gconfig target
142# Based on GTK which needs to be installed to compile it
143# object files used by all kconfig flavours
144
145lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o
146lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
147
Patrick Georgi26774f22009-11-21 19:54:02 +0000148conf-objs := conf.o zconf.tab.o $(regex-objs)
Patrick Georgid5208402014-04-11 20:24:06 +0200149mconf-objs := mconf.o zconf.tab.o $(lxdialog) $(regex-objs)
150nconf-objs := nconf.o zconf.tab.o nconf.gui.o
Patrick Georgi0588d192009-08-12 15:00:51 +0000151kxgettext-objs := kxgettext.o zconf.tab.o
Patrick Georgid5208402014-04-11 20:24:06 +0200152qconf-cxxobjs := qconf.o
153qconf-objs := zconf.tab.o
154gconf-objs := gconf.o zconf.tab.o
Patrick Georgi0588d192009-08-12 15:00:51 +0000155
Patrick Georgid5208402014-04-11 20:24:06 +0200156hostprogs-y := conf
157
158ifeq ($(MAKECMDGOALS),nconfig)
159 hostprogs-y += nconf
160endif
Patrick Georgi0588d192009-08-12 15:00:51 +0000161
162ifeq ($(MAKECMDGOALS),menuconfig)
163 hostprogs-y += mconf
164endif
165
Patrick Georgid5208402014-04-11 20:24:06 +0200166ifeq ($(MAKECMDGOALS),update-po-config)
167 hostprogs-y += kxgettext
168endif
169
Patrick Georgi0588d192009-08-12 15:00:51 +0000170ifeq ($(MAKECMDGOALS),xconfig)
171 qconf-target := 1
172endif
173ifeq ($(MAKECMDGOALS),gconfig)
174 gconf-target := 1
175endif
176
177
178ifeq ($(qconf-target),1)
Patrick Georgid5208402014-04-11 20:24:06 +0200179 hostprogs-y += qconf
Patrick Georgi0588d192009-08-12 15:00:51 +0000180endif
181
182ifeq ($(gconf-target),1)
Patrick Georgid5208402014-04-11 20:24:06 +0200183 hostprogs-y += gconf
Patrick Georgi0588d192009-08-12 15:00:51 +0000184endif
185
Patrick Georgid5208402014-04-11 20:24:06 +0200186clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck
187clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h
188clean-files += mconf qconf gconf nconf
189clean-files += config.pot linux.pot
Patrick Georgi0588d192009-08-12 15:00:51 +0000190
191# Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
192PHONY += $(objk)/dochecklxdialog
193$(addprefix $(obj)/,$(lxdialog)): $(objk)/dochecklxdialog
194$(objk)/dochecklxdialog:
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000195 $(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
Patrick Georgi0588d192009-08-12 15:00:51 +0000196
197always := dochecklxdialog
198
199# Add environment specific flags
200HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srck)/check.sh $(HOSTCC) $(HOSTCFLAGS))
201
202# generated files seem to need this to find local include files
Patrick Georgid5208402014-04-11 20:24:06 +0200203HOSTCFLAGS_zconf.lex.o := -I$(src)
Patrick Georgi0588d192009-08-12 15:00:51 +0000204HOSTCFLAGS_zconf.tab.o := -I$(src)
205
Patrick Georgid5208402014-04-11 20:24:06 +0200206LEX_PREFIX_zconf := zconf
207YACC_PREFIX_zconf := zconf
208
Patrick Georgi0588d192009-08-12 15:00:51 +0000209HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl
Patrick Georgid5208402014-04-11 20:24:06 +0200210HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS)
Patrick Georgi0588d192009-08-12 15:00:51 +0000211
212HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
213HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
Patrick Georgid5208402014-04-11 20:24:06 +0200214 -Wno-missing-prototypes
215
216HOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
217
218HOSTLOADLIBES_nconf = $(shell \
219 pkg-config --libs menu panel ncurses 2>/dev/null \
220 || echo "-lmenu -lpanel -lncurses" )
Patrick Georgi0588d192009-08-12 15:00:51 +0000221
222$(objk)/qconf.o: $(objk)/.tmp_qtcheck
223
224ifeq ($(qconf-target),1)
225$(objk)/.tmp_qtcheck: $(srck)/Makefile
226-include $(objk)/.tmp_qtcheck
227
228# QT needs some extra effort...
Patrick Georgi9ebd65d2010-04-27 09:23:33 +0000229$(objk)/.tmp_qtcheck:
Patrick Georgid5208402014-04-11 20:24:06 +0200230 @set -e; echo " CHECK qt"; dir=""; pkg=""; \
zbao11a262c2016-01-22 18:54:22 +0800231 if pkg-config --exists Qt5Core; then \
232 cflags="-std=c++11 -fPIC `pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets`"; \
233 libs=`pkg-config --libs Qt5Core Qt5Gui Qt5Widgets`; \
234 moc=`pkg-config --variable=host_bins Qt5Core`/moc; \
235 elif pkg-config --exists QtCore; then \
236 cflags=`pkg-config --cflags QtCore QtGui`; \
237 libs=`pkg-config --libs QtCore QtGui`; \
238 moc=`pkg-config --variable=moc_location QtCore`; \
Patrick Georgi0588d192009-08-12 15:00:51 +0000239 else \
zbao11a262c2016-01-22 18:54:22 +0800240 echo >&2 "*"; \
241 echo >&2 "* Could not find Qt via pkg-config."; \
242 echo >&2 "* Please install either Qt 4.8 or 5.x. and make sure it's in PKG_CONFIG_PATH"; \
243 echo >&2 "*"; \
244 exit 1; \
Patrick Georgi0588d192009-08-12 15:00:51 +0000245 fi; \
246 echo "KC_QT_CFLAGS=$$cflags" > $@; \
247 echo "KC_QT_LIBS=$$libs" >> $@; \
248 echo "KC_QT_MOC=$$moc" >> $@
249endif
250
251$(objk)/gconf.o: $(objk)/.tmp_gtkcheck
252
253ifeq ($(gconf-target),1)
254-include $(objk)/.tmp_gtkcheck
255
256# GTK needs some extra effort, too...
Patrick Georgi9ebd65d2010-04-27 09:23:33 +0000257$(objk)/.tmp_gtkcheck:
Patrick Georgi0588d192009-08-12 15:00:51 +0000258 @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \
259 if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \
260 touch $@; \
261 else \
Patrick Georgid5208402014-04-11 20:24:06 +0200262 echo >&2 "*"; \
263 echo >&2 "* GTK+ is present but version >= 2.0.0 is required."; \
264 echo >&2 "*"; \
Patrick Georgi0588d192009-08-12 15:00:51 +0000265 false; \
266 fi \
267 else \
Patrick Georgid5208402014-04-11 20:24:06 +0200268 echo >&2 "*"; \
269 echo >&2 "* Unable to find the GTK+ installation. Please make sure that"; \
270 echo >&2 "* the GTK+ 2.0 development package is correctly installed..."; \
271 echo >&2 "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \
272 echo >&2 "*"; \
Patrick Georgi0588d192009-08-12 15:00:51 +0000273 false; \
274 fi
275endif
276
277# --- UNUSED, ignore ----------------------------------------------------------
278ifdef UNUSED
Patrick Georgid5208402014-04-11 20:24:06 +0200279$(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c
Patrick Georgi0588d192009-08-12 15:00:51 +0000280
281$(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h
282
283$(obj)/gconf.o: $(obj)/lkc_defs.h
284
Patrick Georgid5208402014-04-11 20:24:06 +0200285$(obj)/%.moc: $(srck)/%.h
Patrick Georgi0588d192009-08-12 15:00:51 +0000286 $(KC_QT_MOC) -i $< -o $@
287
288$(obj)/lkc_defs.h: $(src)/lkc_proto.h
289 sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
290
291# Extract gconf menu items for I18N support
292$(obj)/gconf.glade.h: $(obj)/gconf.glade
293 intltool-extract --type=gettext/glade $(obj)/gconf.glade
294endif
295# --- UNUSED, ignore ----------------------------------------------------------
296
297###
298# The following requires flex/bison/gperf
299# By default we use the _shipped versions, uncomment the following line if
300# you are modifying the flex/bison src.
301# LKC_GENPARSER := 1
302
303ifdef LKC_GENPARSER
304
305# --- UNUSED, ignore ----------------------------------------------------------
306$(obj)/zconf.tab.c: $(src)/zconf.y
Patrick Georgid5208402014-04-11 20:24:06 +0200307$(obj)/zconf.lex.c: $(src)/zconf.l
Patrick Georgi0588d192009-08-12 15:00:51 +0000308$(obj)/zconf.hash.c: $(src)/zconf.gperf
309
310%.tab.c: %.y
Stefan Reinauerf78a09b2015-04-03 20:01:38 +0200311 bison -t -l -b $* -p $(notdir $*) $<
Patrick Georgi39618342015-05-10 17:58:48 +0200312
313%.tab.c_shipped: %.tab.c
314 cp $< $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000315
Stefan Reinauerf78a09b2015-04-03 20:01:38 +0200316%.lex.c: %.l
Patrick Georgi0588d192009-08-12 15:00:51 +0000317 flex -L -P$(notdir $*) -o$@ $<
Patrick Georgi39618342015-05-10 17:58:48 +0200318
319%.lex.c_shipped: %.lex.c
320 cp $< $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000321
322%.hash.c: %.gperf
323 gperf < $< > $@
324 cp $@ $@_shipped
325# --- UNUSED, ignore ----------------------------------------------------------
326
327endif
328
329$(objk)/qconf: $(patsubst %,$(objk)/%,$(qconf-cxxobjs)) \
330 $(patsubst %,$(objk)/%,$(qconf-objs))
Patrick Georgid5208402014-04-11 20:24:06 +0200331 $(HOSTCXX) $(HOSTCXXFLAGS) -o $@ $^ $(HOSTLOADLIBES_qconf)
Patrick Georgi0588d192009-08-12 15:00:51 +0000332$(objk)/gconf: $(patsubst %,$(objk)/%,$(gconf-objs))
Patrick Georgid5208402014-04-11 20:24:06 +0200333 $(HOSTCC) $(HOSTCFLAGS) -o $@ $^ $(HOSTLOADLIBES_gconf)
Patrick Georgi0588d192009-08-12 15:00:51 +0000334$(objk)/mconf: $(patsubst %,$(objk)/%,$(mconf-objs))
Patrick Georgid5208402014-04-11 20:24:06 +0200335 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $^ -o $@ $(HOST_LOADLIBES)
336$(objk)/nconf: $(patsubst %,$(objk)/%,$(nconf-objs))
337 $(HOSTCC) $(HOSTCFLAGS) -o $@ $^ $(HOSTLOADLIBES_nconf)
Patrick Georgi0588d192009-08-12 15:00:51 +0000338$(objk)/conf: $(patsubst %,$(objk)/%,$(conf-objs))
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000339 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -o $@ $^
Patrick Georgi0588d192009-08-12 15:00:51 +0000340
341$(objk)/mconf.o: $(srck)/mconf.c
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000342 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<
Patrick Georgid5208402014-04-11 20:24:06 +0200343$(objk)/nconf.o: $(srck)/nconf.c
344 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<
345$(objk)/nconf.gui.o: $(srck)/nconf.gui.c
346 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<
Patrick Georgi0588d192009-08-12 15:00:51 +0000347$(objk)/conf.o: $(srck)/conf.c
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000348 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $<
Patrick Georgi0588d192009-08-12 15:00:51 +0000349
Patrick Georgid5208402014-04-11 20:24:06 +0200350$(objk)/zconf.tab.o: $(objk)/zconf.tab.c $(objk)/zconf.lex.c \
Patrick Georgi0588d192009-08-12 15:00:51 +0000351 $(objk)/zconf.hash.c
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000352 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) -c -o $@ $(objk)/zconf.tab.c
Patrick Georgi0588d192009-08-12 15:00:51 +0000353$(objk)/qconf.o: $(srck)/qconf.cc $(objk)/qconf.moc $(objk)/lkc_defs.h
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000354 $(HOSTCXX) $(HOSTCXXFLAGS) $(HOSTCXXFLAGS_qconf.o) -c -o $@ $<
Patrick Georgi0588d192009-08-12 15:00:51 +0000355$(objk)/gconf.o: $(srck)/gconf.c $(objk)/lkc_defs.h
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000356 $(HOSTCC) $(HOSTCFLAGS) $(HOSTCFLAGS_gconf.o) -c -o $@ $<
Patrick Georgi0588d192009-08-12 15:00:51 +0000357$(objk)/%.moc: $(srck)/%.h
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000358 $(KC_QT_MOC) -i $< -o $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000359$(objk)/lkc_defs.h: $(srck)/lkc_proto.h
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000360 sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
Patrick Georgi0588d192009-08-12 15:00:51 +0000361
Patrick Georgid5208402014-04-11 20:24:06 +0200362$(objk)/zconf.lex.c: $(srck)/zconf.lex.c_shipped
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000363 cp $< $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000364$(objk)/zconf.hash.c: $(srck)/zconf.hash.c_shipped
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000365 cp $< $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000366$(objk)/zconf.tab.c: $(srck)/zconf.tab.c_shipped
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000367 cp $< $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000368
369$(objk)/lxdialog/lxdialog: $(objk)/dochecklxdialog \
370 $(patsubst %,$(objk)/lxdialog/%,$(lxdialog))
Christian Ruppert74b65992011-12-17 21:56:05 +0100371 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
372 $(patsubst %,$(objk)/lxdialog/%,$(lxdialog)) $(HOST_LOADLIBES) -o $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000373$(objk)/lxdialog/%.o: $(srck)/lxdialog/%.c
Patrick Georgi2b7418e2009-08-25 19:38:46 +0000374 $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $^ -c -o $@
Patrick Georgi0588d192009-08-12 15:00:51 +0000375
Patrick Georgib3a18ac2012-09-13 22:13:33 +0200376$(objk)/%.o: HOSTCFLAGS+=-I$(srck) -I$(objk)
377$(objk)/%.o: HOSTCXXFLAGS+=-I$(srck) -I$(objk)