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