xref: /openbmc/u-boot/scripts/kconfig/Makefile (revision 0a9064fb47bb0a239c04b0b63edebfdd3a201fdc)
1*0a9064fbSMasahiro Yamada# ===========================================================================
2*0a9064fbSMasahiro Yamada# Kernel configuration targets
3*0a9064fbSMasahiro Yamada# These targets are used from top-level makefile
4*0a9064fbSMasahiro Yamada
5*0a9064fbSMasahiro YamadaPHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \
6*0a9064fbSMasahiro Yamada	localmodconfig localyesconfig
7*0a9064fbSMasahiro Yamada
8*0a9064fbSMasahiro Yamadaifdef KBUILD_KCONFIG
9*0a9064fbSMasahiro YamadaKconfig := $(KBUILD_KCONFIG)
10*0a9064fbSMasahiro Yamadaelse
11*0a9064fbSMasahiro YamadaKconfig := Kconfig
12*0a9064fbSMasahiro Yamadaendif
13*0a9064fbSMasahiro Yamada
14*0a9064fbSMasahiro Yamada# We need this, in case the user has it in its environment
15*0a9064fbSMasahiro Yamadaunexport CONFIG_
16*0a9064fbSMasahiro Yamada
17*0a9064fbSMasahiro Yamadaxconfig: $(obj)/qconf
18*0a9064fbSMasahiro Yamada	$< $(Kconfig)
19*0a9064fbSMasahiro Yamada
20*0a9064fbSMasahiro Yamadagconfig: $(obj)/gconf
21*0a9064fbSMasahiro Yamada	$< $(Kconfig)
22*0a9064fbSMasahiro Yamada
23*0a9064fbSMasahiro Yamadamenuconfig: $(obj)/mconf
24*0a9064fbSMasahiro Yamada	$< $(Kconfig)
25*0a9064fbSMasahiro Yamada
26*0a9064fbSMasahiro Yamadaconfig: $(obj)/conf
27*0a9064fbSMasahiro Yamada	$< --oldaskconfig $(Kconfig)
28*0a9064fbSMasahiro Yamada
29*0a9064fbSMasahiro Yamadanconfig: $(obj)/nconf
30*0a9064fbSMasahiro Yamada	$< $(Kconfig)
31*0a9064fbSMasahiro Yamada
32*0a9064fbSMasahiro Yamadaoldconfig: $(obj)/conf
33*0a9064fbSMasahiro Yamada	$< --$@ $(Kconfig)
34*0a9064fbSMasahiro Yamada
35*0a9064fbSMasahiro Yamadasilentoldconfig: $(obj)/conf
36*0a9064fbSMasahiro Yamada	$(Q)mkdir -p include/config include/generated
37*0a9064fbSMasahiro Yamada	$< --$@ $(Kconfig)
38*0a9064fbSMasahiro Yamada
39*0a9064fbSMasahiro Yamadalocalyesconfig localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
40*0a9064fbSMasahiro Yamada	$(Q)mkdir -p include/config include/generated
41*0a9064fbSMasahiro Yamada	$(Q)perl $< --$@ $(srctree) $(Kconfig) > .tmp.config
42*0a9064fbSMasahiro Yamada	$(Q)if [ -f .config ]; then 					\
43*0a9064fbSMasahiro Yamada			cmp -s .tmp.config .config ||			\
44*0a9064fbSMasahiro Yamada			(mv -f .config .config.old.1;			\
45*0a9064fbSMasahiro Yamada			 mv -f .tmp.config .config;			\
46*0a9064fbSMasahiro Yamada			 $(obj)/conf --silentoldconfig $(Kconfig);	\
47*0a9064fbSMasahiro Yamada			 mv -f .config.old.1 .config.old)		\
48*0a9064fbSMasahiro Yamada	else								\
49*0a9064fbSMasahiro Yamada			mv -f .tmp.config .config;			\
50*0a9064fbSMasahiro Yamada			$(obj)/conf --silentoldconfig $(Kconfig);	\
51*0a9064fbSMasahiro Yamada	fi
52*0a9064fbSMasahiro Yamada	$(Q)rm -f .tmp.config
53*0a9064fbSMasahiro Yamada
54*0a9064fbSMasahiro Yamada# Create new linux.pot file
55*0a9064fbSMasahiro Yamada# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
56*0a9064fbSMasahiro Yamadaupdate-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
57*0a9064fbSMasahiro Yamada	$(Q)echo "  GEN     config.pot"
58*0a9064fbSMasahiro Yamada	$(Q)xgettext --default-domain=linux                         \
59*0a9064fbSMasahiro Yamada	    --add-comments --keyword=_ --keyword=N_                 \
60*0a9064fbSMasahiro Yamada	    --from-code=UTF-8                                       \
61*0a9064fbSMasahiro Yamada	    --files-from=$(srctree)/scripts/kconfig/POTFILES.in     \
62*0a9064fbSMasahiro Yamada	    --directory=$(srctree) --directory=$(objtree)           \
63*0a9064fbSMasahiro Yamada	    --output $(obj)/config.pot
64*0a9064fbSMasahiro Yamada	$(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
65*0a9064fbSMasahiro Yamada	$(Q)(for i in `ls $(srctree)/arch/*/Kconfig      \
66*0a9064fbSMasahiro Yamada	    $(srctree)/arch/*/um/Kconfig`;               \
67*0a9064fbSMasahiro Yamada	    do                                           \
68*0a9064fbSMasahiro Yamada		echo "  GEN     $$i";                    \
69*0a9064fbSMasahiro Yamada		$(obj)/kxgettext $$i                     \
70*0a9064fbSMasahiro Yamada		     >> $(obj)/config.pot;               \
71*0a9064fbSMasahiro Yamada	    done )
72*0a9064fbSMasahiro Yamada	$(Q)echo "  GEN     linux.pot"
73*0a9064fbSMasahiro Yamada	$(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
74*0a9064fbSMasahiro Yamada	    --output $(obj)/linux.pot
75*0a9064fbSMasahiro Yamada	$(Q)rm -f $(obj)/config.pot
76*0a9064fbSMasahiro Yamada
77*0a9064fbSMasahiro YamadaPHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig
78*0a9064fbSMasahiro Yamada
79*0a9064fbSMasahiro Yamadaallnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf
80*0a9064fbSMasahiro Yamada	$< --$@ $(Kconfig)
81*0a9064fbSMasahiro Yamada
82*0a9064fbSMasahiro YamadaPHONY += listnewconfig olddefconfig oldnoconfig savedefconfig defconfig
83*0a9064fbSMasahiro Yamada
84*0a9064fbSMasahiro Yamadalistnewconfig olddefconfig: $(obj)/conf
85*0a9064fbSMasahiro Yamada	$< --$@ $(Kconfig)
86*0a9064fbSMasahiro Yamada
87*0a9064fbSMasahiro Yamada# oldnoconfig is an alias of olddefconfig, because people already are dependent
88*0a9064fbSMasahiro Yamada# on its behavior(sets new symbols to their default value but not 'n') with the
89*0a9064fbSMasahiro Yamada# counter-intuitive name.
90*0a9064fbSMasahiro Yamadaoldnoconfig: $(obj)/conf
91*0a9064fbSMasahiro Yamada	$< --olddefconfig $(Kconfig)
92*0a9064fbSMasahiro Yamada
93*0a9064fbSMasahiro Yamadasavedefconfig: $(obj)/conf
94*0a9064fbSMasahiro Yamada	$< --$@=defconfig $(Kconfig)
95*0a9064fbSMasahiro Yamada
96*0a9064fbSMasahiro Yamadadefconfig: $(obj)/conf
97*0a9064fbSMasahiro Yamadaifeq ($(KBUILD_DEFCONFIG),)
98*0a9064fbSMasahiro Yamada	$< --defconfig $(Kconfig)
99*0a9064fbSMasahiro Yamadaelse
100*0a9064fbSMasahiro Yamada	@echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
101*0a9064fbSMasahiro Yamada	$(Q)$< --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
102*0a9064fbSMasahiro Yamadaendif
103*0a9064fbSMasahiro Yamada
104*0a9064fbSMasahiro Yamada%_defconfig: $(obj)/conf
105*0a9064fbSMasahiro Yamada	$(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
106*0a9064fbSMasahiro Yamada
107*0a9064fbSMasahiro Yamada# Help text used by make help
108*0a9064fbSMasahiro Yamadahelp:
109*0a9064fbSMasahiro Yamada	@echo  '  config	  - Update current config utilising a line-oriented program'
110*0a9064fbSMasahiro Yamada	@echo  '  nconfig         - Update current config utilising a ncurses menu based program'
111*0a9064fbSMasahiro Yamada	@echo  '  menuconfig	  - Update current config utilising a menu based program'
112*0a9064fbSMasahiro Yamada	@echo  '  xconfig	  - Update current config utilising a QT based front-end'
113*0a9064fbSMasahiro Yamada	@echo  '  gconfig	  - Update current config utilising a GTK based front-end'
114*0a9064fbSMasahiro Yamada	@echo  '  oldconfig	  - Update current config utilising a provided .config as base'
115*0a9064fbSMasahiro Yamada	@echo  '  localmodconfig  - Update current config disabling modules not loaded'
116*0a9064fbSMasahiro Yamada	@echo  '  localyesconfig  - Update current config converting local mods to core'
117*0a9064fbSMasahiro Yamada	@echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
118*0a9064fbSMasahiro Yamada	@echo  '  defconfig	  - New config with default from ARCH supplied defconfig'
119*0a9064fbSMasahiro Yamada	@echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'
120*0a9064fbSMasahiro Yamada	@echo  '  allnoconfig	  - New config where all options are answered with no'
121*0a9064fbSMasahiro Yamada	@echo  '  allyesconfig	  - New config where all options are accepted with yes'
122*0a9064fbSMasahiro Yamada	@echo  '  allmodconfig	  - New config selecting modules when possible'
123*0a9064fbSMasahiro Yamada	@echo  '  alldefconfig    - New config with all symbols set to default'
124*0a9064fbSMasahiro Yamada	@echo  '  randconfig	  - New config with random answer to all options'
125*0a9064fbSMasahiro Yamada	@echo  '  listnewconfig   - List new options'
126*0a9064fbSMasahiro Yamada	@echo  '  olddefconfig	  - Same as silentoldconfig but sets new symbols to their default value'
127*0a9064fbSMasahiro Yamada
128*0a9064fbSMasahiro Yamada# lxdialog stuff
129*0a9064fbSMasahiro Yamadacheck-lxdialog  := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
130*0a9064fbSMasahiro Yamada
131*0a9064fbSMasahiro Yamada# Use recursively expanded variables so we do not call gcc unless
132*0a9064fbSMasahiro Yamada# we really need to do so. (Do not call gcc as part of make mrproper)
133*0a9064fbSMasahiro YamadaHOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
134*0a9064fbSMasahiro Yamada                    -DLOCALE
135*0a9064fbSMasahiro Yamada
136*0a9064fbSMasahiro Yamada# ===========================================================================
137*0a9064fbSMasahiro Yamada# Shared Makefile for the various kconfig executables:
138*0a9064fbSMasahiro Yamada# conf:	  Used for defconfig, oldconfig and related targets
139*0a9064fbSMasahiro Yamada# nconf:  Used for the nconfig target.
140*0a9064fbSMasahiro Yamada#         Utilizes ncurses
141*0a9064fbSMasahiro Yamada# mconf:  Used for the menuconfig target
142*0a9064fbSMasahiro Yamada#         Utilizes the lxdialog package
143*0a9064fbSMasahiro Yamada# qconf:  Used for the xconfig target
144*0a9064fbSMasahiro Yamada#         Based on QT which needs to be installed to compile it
145*0a9064fbSMasahiro Yamada# gconf:  Used for the gconfig target
146*0a9064fbSMasahiro Yamada#         Based on GTK which needs to be installed to compile it
147*0a9064fbSMasahiro Yamada# object files used by all kconfig flavours
148*0a9064fbSMasahiro Yamada
149*0a9064fbSMasahiro Yamadalxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o
150*0a9064fbSMasahiro Yamadalxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
151*0a9064fbSMasahiro Yamada
152*0a9064fbSMasahiro Yamadaconf-objs	:= conf.o  zconf.tab.o
153*0a9064fbSMasahiro Yamadamconf-objs     := mconf.o zconf.tab.o $(lxdialog)
154*0a9064fbSMasahiro Yamadanconf-objs     := nconf.o zconf.tab.o nconf.gui.o
155*0a9064fbSMasahiro Yamadakxgettext-objs	:= kxgettext.o zconf.tab.o
156*0a9064fbSMasahiro Yamadaqconf-cxxobjs	:= qconf.o
157*0a9064fbSMasahiro Yamadaqconf-objs	:= zconf.tab.o
158*0a9064fbSMasahiro Yamadagconf-objs	:= gconf.o zconf.tab.o
159*0a9064fbSMasahiro Yamada
160*0a9064fbSMasahiro Yamadahostprogs-y := conf
161*0a9064fbSMasahiro Yamada
162*0a9064fbSMasahiro Yamadaifeq ($(MAKECMDGOALS),nconfig)
163*0a9064fbSMasahiro Yamada	hostprogs-y += nconf
164*0a9064fbSMasahiro Yamadaendif
165*0a9064fbSMasahiro Yamada
166*0a9064fbSMasahiro Yamadaifeq ($(MAKECMDGOALS),menuconfig)
167*0a9064fbSMasahiro Yamada	hostprogs-y += mconf
168*0a9064fbSMasahiro Yamadaendif
169*0a9064fbSMasahiro Yamada
170*0a9064fbSMasahiro Yamadaifeq ($(MAKECMDGOALS),update-po-config)
171*0a9064fbSMasahiro Yamada	hostprogs-y += kxgettext
172*0a9064fbSMasahiro Yamadaendif
173*0a9064fbSMasahiro Yamada
174*0a9064fbSMasahiro Yamadaifeq ($(MAKECMDGOALS),xconfig)
175*0a9064fbSMasahiro Yamada	qconf-target := 1
176*0a9064fbSMasahiro Yamadaendif
177*0a9064fbSMasahiro Yamadaifeq ($(MAKECMDGOALS),gconfig)
178*0a9064fbSMasahiro Yamada	gconf-target := 1
179*0a9064fbSMasahiro Yamadaendif
180*0a9064fbSMasahiro Yamada
181*0a9064fbSMasahiro Yamada
182*0a9064fbSMasahiro Yamadaifeq ($(qconf-target),1)
183*0a9064fbSMasahiro Yamada	hostprogs-y += qconf
184*0a9064fbSMasahiro Yamadaendif
185*0a9064fbSMasahiro Yamada
186*0a9064fbSMasahiro Yamadaifeq ($(gconf-target),1)
187*0a9064fbSMasahiro Yamada	hostprogs-y += gconf
188*0a9064fbSMasahiro Yamadaendif
189*0a9064fbSMasahiro Yamada
190*0a9064fbSMasahiro Yamadaclean-files	:= qconf.moc .tmp_qtcheck .tmp_gtkcheck
191*0a9064fbSMasahiro Yamadaclean-files	+= zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h
192*0a9064fbSMasahiro Yamadaclean-files     += mconf qconf gconf nconf
193*0a9064fbSMasahiro Yamadaclean-files     += config.pot linux.pot
194*0a9064fbSMasahiro Yamada
195*0a9064fbSMasahiro Yamada# Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
196*0a9064fbSMasahiro YamadaPHONY += $(obj)/dochecklxdialog
197*0a9064fbSMasahiro Yamada$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
198*0a9064fbSMasahiro Yamada$(obj)/dochecklxdialog:
199*0a9064fbSMasahiro Yamada	$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf)
200*0a9064fbSMasahiro Yamada
201*0a9064fbSMasahiro Yamadaalways := dochecklxdialog
202*0a9064fbSMasahiro Yamada
203*0a9064fbSMasahiro Yamada# Add environment specific flags
204*0a9064fbSMasahiro YamadaHOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
205*0a9064fbSMasahiro Yamada
206*0a9064fbSMasahiro Yamada# generated files seem to need this to find local include files
207*0a9064fbSMasahiro YamadaHOSTCFLAGS_zconf.lex.o	:= -I$(src)
208*0a9064fbSMasahiro YamadaHOSTCFLAGS_zconf.tab.o	:= -I$(src)
209*0a9064fbSMasahiro Yamada
210*0a9064fbSMasahiro YamadaLEX_PREFIX_zconf	:= zconf
211*0a9064fbSMasahiro YamadaYACC_PREFIX_zconf	:= zconf
212*0a9064fbSMasahiro Yamada
213*0a9064fbSMasahiro YamadaHOSTLOADLIBES_qconf	= $(KC_QT_LIBS)
214*0a9064fbSMasahiro YamadaHOSTCXXFLAGS_qconf.o	= $(KC_QT_CFLAGS)
215*0a9064fbSMasahiro Yamada
216*0a9064fbSMasahiro YamadaHOSTLOADLIBES_gconf	= `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
217*0a9064fbSMasahiro YamadaHOSTCFLAGS_gconf.o	= `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
218*0a9064fbSMasahiro Yamada                          -Wno-missing-prototypes
219*0a9064fbSMasahiro Yamada
220*0a9064fbSMasahiro YamadaHOSTLOADLIBES_mconf   = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
221*0a9064fbSMasahiro Yamada
222*0a9064fbSMasahiro YamadaHOSTLOADLIBES_nconf	= $(shell \
223*0a9064fbSMasahiro Yamada				pkg-config --libs menu panel ncurses 2>/dev/null \
224*0a9064fbSMasahiro Yamada				|| echo "-lmenu -lpanel -lncurses"  )
225*0a9064fbSMasahiro Yamada$(obj)/qconf.o: $(obj)/.tmp_qtcheck
226*0a9064fbSMasahiro Yamada
227*0a9064fbSMasahiro Yamadaifeq ($(qconf-target),1)
228*0a9064fbSMasahiro Yamada$(obj)/.tmp_qtcheck: $(src)/Makefile
229*0a9064fbSMasahiro Yamada-include $(obj)/.tmp_qtcheck
230*0a9064fbSMasahiro Yamada
231*0a9064fbSMasahiro Yamada# QT needs some extra effort...
232*0a9064fbSMasahiro Yamada$(obj)/.tmp_qtcheck:
233*0a9064fbSMasahiro Yamada	@set -e; echo "  CHECK   qt"; dir=""; pkg=""; \
234*0a9064fbSMasahiro Yamada	if ! pkg-config --exists QtCore 2> /dev/null; then \
235*0a9064fbSMasahiro Yamada	    echo "* Unable to find the QT4 tool qmake. Trying to use QT3"; \
236*0a9064fbSMasahiro Yamada	    pkg-config --exists qt 2> /dev/null && pkg=qt; \
237*0a9064fbSMasahiro Yamada	    pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
238*0a9064fbSMasahiro Yamada	    if [ -n "$$pkg" ]; then \
239*0a9064fbSMasahiro Yamada	      cflags="\$$(shell pkg-config $$pkg --cflags)"; \
240*0a9064fbSMasahiro Yamada	      libs="\$$(shell pkg-config $$pkg --libs)"; \
241*0a9064fbSMasahiro Yamada	      moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
242*0a9064fbSMasahiro Yamada	      dir="$$(pkg-config $$pkg --variable=prefix)"; \
243*0a9064fbSMasahiro Yamada	    else \
244*0a9064fbSMasahiro Yamada	      for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
245*0a9064fbSMasahiro Yamada	        if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
246*0a9064fbSMasahiro Yamada	      done; \
247*0a9064fbSMasahiro Yamada	      if [ -z "$$dir" ]; then \
248*0a9064fbSMasahiro Yamada	        echo >&2 "*"; \
249*0a9064fbSMasahiro Yamada	        echo >&2 "* Unable to find any QT installation. Please make sure that"; \
250*0a9064fbSMasahiro Yamada	        echo >&2 "* the QT4 or QT3 development package is correctly installed and"; \
251*0a9064fbSMasahiro Yamada	        echo >&2 "* either qmake can be found or install pkg-config or set"; \
252*0a9064fbSMasahiro Yamada	        echo >&2 "* the QTDIR environment variable to the correct location."; \
253*0a9064fbSMasahiro Yamada	        echo >&2 "*"; \
254*0a9064fbSMasahiro Yamada	        false; \
255*0a9064fbSMasahiro Yamada	      fi; \
256*0a9064fbSMasahiro Yamada	      libpath=$$dir/lib; lib=qt; osdir=""; \
257*0a9064fbSMasahiro Yamada	      $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
258*0a9064fbSMasahiro Yamada	        osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
259*0a9064fbSMasahiro Yamada	      test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
260*0a9064fbSMasahiro Yamada	      test -f $$libpath/libqt-mt.so && lib=qt-mt; \
261*0a9064fbSMasahiro Yamada	      cflags="-I$$dir/include"; \
262*0a9064fbSMasahiro Yamada	      libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
263*0a9064fbSMasahiro Yamada	      moc="$$dir/bin/moc"; \
264*0a9064fbSMasahiro Yamada	    fi; \
265*0a9064fbSMasahiro Yamada	    if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
266*0a9064fbSMasahiro Yamada	      echo "*"; \
267*0a9064fbSMasahiro Yamada	      echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
268*0a9064fbSMasahiro Yamada	      echo "*"; \
269*0a9064fbSMasahiro Yamada	      moc="/usr/bin/moc"; \
270*0a9064fbSMasahiro Yamada	    fi; \
271*0a9064fbSMasahiro Yamada	else \
272*0a9064fbSMasahiro Yamada	  cflags="\$$(shell pkg-config QtCore QtGui Qt3Support --cflags)"; \
273*0a9064fbSMasahiro Yamada	  libs="\$$(shell pkg-config QtCore QtGui Qt3Support --libs)"; \
274*0a9064fbSMasahiro Yamada	  moc="\$$(shell pkg-config QtCore --variable=moc_location)"; \
275*0a9064fbSMasahiro Yamada	  [ -n "$$moc" ] || moc="\$$(shell pkg-config QtCore --variable=prefix)/bin/moc"; \
276*0a9064fbSMasahiro Yamada	fi; \
277*0a9064fbSMasahiro Yamada	echo "KC_QT_CFLAGS=$$cflags" > $@; \
278*0a9064fbSMasahiro Yamada	echo "KC_QT_LIBS=$$libs" >> $@; \
279*0a9064fbSMasahiro Yamada	echo "KC_QT_MOC=$$moc" >> $@
280*0a9064fbSMasahiro Yamadaendif
281*0a9064fbSMasahiro Yamada
282*0a9064fbSMasahiro Yamada$(obj)/gconf.o: $(obj)/.tmp_gtkcheck
283*0a9064fbSMasahiro Yamada
284*0a9064fbSMasahiro Yamadaifeq ($(gconf-target),1)
285*0a9064fbSMasahiro Yamada-include $(obj)/.tmp_gtkcheck
286*0a9064fbSMasahiro Yamada
287*0a9064fbSMasahiro Yamada# GTK needs some extra effort, too...
288*0a9064fbSMasahiro Yamada$(obj)/.tmp_gtkcheck:
289*0a9064fbSMasahiro Yamada	@if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then		\
290*0a9064fbSMasahiro Yamada		if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then			\
291*0a9064fbSMasahiro Yamada			touch $@;								\
292*0a9064fbSMasahiro Yamada		else									\
293*0a9064fbSMasahiro Yamada			echo >&2 "*"; 							\
294*0a9064fbSMasahiro Yamada			echo >&2 "* GTK+ is present but version >= 2.0.0 is required.";	\
295*0a9064fbSMasahiro Yamada			echo >&2 "*";							\
296*0a9064fbSMasahiro Yamada			false;								\
297*0a9064fbSMasahiro Yamada		fi									\
298*0a9064fbSMasahiro Yamada	else										\
299*0a9064fbSMasahiro Yamada		echo >&2 "*"; 								\
300*0a9064fbSMasahiro Yamada		echo >&2 "* Unable to find the GTK+ installation. Please make sure that"; 	\
301*0a9064fbSMasahiro Yamada		echo >&2 "* the GTK+ 2.0 development package is correctly installed..."; 	\
302*0a9064fbSMasahiro Yamada		echo >&2 "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; 		\
303*0a9064fbSMasahiro Yamada		echo >&2 "*"; 								\
304*0a9064fbSMasahiro Yamada		false;									\
305*0a9064fbSMasahiro Yamada	fi
306*0a9064fbSMasahiro Yamadaendif
307*0a9064fbSMasahiro Yamada
308*0a9064fbSMasahiro Yamada$(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c
309*0a9064fbSMasahiro Yamada
310*0a9064fbSMasahiro Yamada$(obj)/qconf.o: $(obj)/qconf.moc
311*0a9064fbSMasahiro Yamada
312*0a9064fbSMasahiro Yamadaquiet_cmd_moc = MOC     $@
313*0a9064fbSMasahiro Yamada      cmd_moc = $(KC_QT_MOC) -i $< -o $@
314*0a9064fbSMasahiro Yamada
315*0a9064fbSMasahiro Yamada$(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck
316*0a9064fbSMasahiro Yamada	$(call cmd,moc)
317*0a9064fbSMasahiro Yamada
318*0a9064fbSMasahiro Yamada# Extract gconf menu items for I18N support
319*0a9064fbSMasahiro Yamada$(obj)/gconf.glade.h: $(obj)/gconf.glade
320*0a9064fbSMasahiro Yamada	$(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \
321*0a9064fbSMasahiro Yamada	$(obj)/gconf.glade
322