1*53ee8cc1Swenshuai.xi# =========================================================================== 2*53ee8cc1Swenshuai.xi# Kernel configuration targets 3*53ee8cc1Swenshuai.xi# These targets are used from top-level makefile 4*53ee8cc1Swenshuai.xi 5*53ee8cc1Swenshuai.xiPHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \ 6*53ee8cc1Swenshuai.xi localmodconfig localyesconfig 7*53ee8cc1Swenshuai.xi 8*53ee8cc1Swenshuai.xiifdef KBUILD_KCONFIG 9*53ee8cc1Swenshuai.xiKconfig := $(KBUILD_KCONFIG) 10*53ee8cc1Swenshuai.xielse 11*53ee8cc1Swenshuai.xiKconfig := Kconfig 12*53ee8cc1Swenshuai.xiendif 13*53ee8cc1Swenshuai.xi 14*53ee8cc1Swenshuai.xixconfig: $(obj)/qconf 15*53ee8cc1Swenshuai.xi $< $(Kconfig) 16*53ee8cc1Swenshuai.xi 17*53ee8cc1Swenshuai.xigconfig: $(obj)/gconf 18*53ee8cc1Swenshuai.xi $< $(Kconfig) 19*53ee8cc1Swenshuai.xi 20*53ee8cc1Swenshuai.ximenuconfig: $(obj)/mconf 21*53ee8cc1Swenshuai.xi $< $(Kconfig) 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xiconfig: $(obj)/conf 24*53ee8cc1Swenshuai.xi $< --oldaskconfig $(Kconfig) 25*53ee8cc1Swenshuai.xi 26*53ee8cc1Swenshuai.xinconfig: $(obj)/nconf 27*53ee8cc1Swenshuai.xi $< $(Kconfig) 28*53ee8cc1Swenshuai.xi 29*53ee8cc1Swenshuai.xioldconfig: $(obj)/conf 30*53ee8cc1Swenshuai.xi $< --$@ $(Kconfig) 31*53ee8cc1Swenshuai.xi 32*53ee8cc1Swenshuai.xisilentoldconfig: $(obj)/conf 33*53ee8cc1Swenshuai.xi $(Q)mkdir -p include/generated 34*53ee8cc1Swenshuai.xi $< --$@ $(Kconfig) 35*53ee8cc1Swenshuai.xi 36*53ee8cc1Swenshuai.xi# if no path is given, then use src directory to find file 37*53ee8cc1Swenshuai.xiifdef LSMOD 38*53ee8cc1Swenshuai.xiLSMOD_F := $(LSMOD) 39*53ee8cc1Swenshuai.xiifeq ($(findstring /,$(LSMOD)),) 40*53ee8cc1Swenshuai.xi LSMOD_F := $(objtree)/$(LSMOD) 41*53ee8cc1Swenshuai.xiendif 42*53ee8cc1Swenshuai.xiendif 43*53ee8cc1Swenshuai.xi 44*53ee8cc1Swenshuai.xilocalmodconfig: $(obj)/streamline_config.pl $(obj)/conf 45*53ee8cc1Swenshuai.xi $(Q)mkdir -p include/generated 46*53ee8cc1Swenshuai.xi $(Q)perl $< $(srctree) $(Kconfig) $(LSMOD_F) > .tmp.config 47*53ee8cc1Swenshuai.xi $(Q)if [ -f .config ]; then \ 48*53ee8cc1Swenshuai.xi cmp -s .tmp.config .config || \ 49*53ee8cc1Swenshuai.xi (mv -f .config .config.old.1; \ 50*53ee8cc1Swenshuai.xi mv -f .tmp.config .config; \ 51*53ee8cc1Swenshuai.xi $(obj)/conf --silentoldconfig $(Kconfig); \ 52*53ee8cc1Swenshuai.xi mv -f .config.old.1 .config.old) \ 53*53ee8cc1Swenshuai.xi else \ 54*53ee8cc1Swenshuai.xi mv -f .tmp.config .config; \ 55*53ee8cc1Swenshuai.xi $(obj)/conf --silentoldconfig $(Kconfig); \ 56*53ee8cc1Swenshuai.xi fi 57*53ee8cc1Swenshuai.xi $(Q)rm -f .tmp.config 58*53ee8cc1Swenshuai.xi 59*53ee8cc1Swenshuai.xilocalyesconfig: $(obj)/streamline_config.pl $(obj)/conf 60*53ee8cc1Swenshuai.xi $(Q)mkdir -p include/generated 61*53ee8cc1Swenshuai.xi $(Q)perl $< $(srctree) $(Kconfig) $(LSMOD_F) > .tmp.config 62*53ee8cc1Swenshuai.xi $(Q)sed -i s/=m/=y/ .tmp.config 63*53ee8cc1Swenshuai.xi $(Q)if [ -f .config ]; then \ 64*53ee8cc1Swenshuai.xi cmp -s .tmp.config .config || \ 65*53ee8cc1Swenshuai.xi (mv -f .config .config.old.1; \ 66*53ee8cc1Swenshuai.xi mv -f .tmp.config .config; \ 67*53ee8cc1Swenshuai.xi $(obj)/conf --silentoldconfig $(Kconfig); \ 68*53ee8cc1Swenshuai.xi mv -f .config.old.1 .config.old) \ 69*53ee8cc1Swenshuai.xi else \ 70*53ee8cc1Swenshuai.xi mv -f .tmp.config .config; \ 71*53ee8cc1Swenshuai.xi $(obj)/conf --silentoldconfig $(Kconfig); \ 72*53ee8cc1Swenshuai.xi fi 73*53ee8cc1Swenshuai.xi $(Q)rm -f .tmp.config 74*53ee8cc1Swenshuai.xi 75*53ee8cc1Swenshuai.xi# Create new linux.pot file 76*53ee8cc1Swenshuai.xi# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files 77*53ee8cc1Swenshuai.xi# The symlink is used to repair a deficiency in arch/um 78*53ee8cc1Swenshuai.xiupdate-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h 79*53ee8cc1Swenshuai.xi $(Q)echo " GEN config" 80*53ee8cc1Swenshuai.xi $(Q)xgettext --default-domain=linux \ 81*53ee8cc1Swenshuai.xi --add-comments --keyword=_ --keyword=N_ \ 82*53ee8cc1Swenshuai.xi --from-code=UTF-8 \ 83*53ee8cc1Swenshuai.xi --files-from=$(srctree)/scripts/kconfig/POTFILES.in \ 84*53ee8cc1Swenshuai.xi --directory=$(srctree) --directory=$(objtree) \ 85*53ee8cc1Swenshuai.xi --output $(obj)/config.pot 86*53ee8cc1Swenshuai.xi $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot 87*53ee8cc1Swenshuai.xi $(Q)ln -fs Kconfig.x86 arch/um/Kconfig 88*53ee8cc1Swenshuai.xi $(Q)(for i in `ls $(srctree)/arch/*/Kconfig`; \ 89*53ee8cc1Swenshuai.xi do \ 90*53ee8cc1Swenshuai.xi echo " GEN $$i"; \ 91*53ee8cc1Swenshuai.xi $(obj)/kxgettext $$i \ 92*53ee8cc1Swenshuai.xi >> $(obj)/config.pot; \ 93*53ee8cc1Swenshuai.xi done ) 94*53ee8cc1Swenshuai.xi $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \ 95*53ee8cc1Swenshuai.xi --output $(obj)/linux.pot 96*53ee8cc1Swenshuai.xi $(Q)rm -f $(srctree)/arch/um/Kconfig 97*53ee8cc1Swenshuai.xi $(Q)rm -f $(obj)/config.pot 98*53ee8cc1Swenshuai.xi 99*53ee8cc1Swenshuai.xiPHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig 100*53ee8cc1Swenshuai.xi 101*53ee8cc1Swenshuai.xiallnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf 102*53ee8cc1Swenshuai.xi $< --$@ $(Kconfig) 103*53ee8cc1Swenshuai.xi 104*53ee8cc1Swenshuai.xiPHONY += listnewconfig oldnoconfig savedefconfig defconfig 105*53ee8cc1Swenshuai.xi 106*53ee8cc1Swenshuai.xilistnewconfig oldnoconfig: $(obj)/conf 107*53ee8cc1Swenshuai.xi $< --$@ $(Kconfig) 108*53ee8cc1Swenshuai.xi 109*53ee8cc1Swenshuai.xisavedefconfig: $(obj)/conf 110*53ee8cc1Swenshuai.xi $< --$@=defconfig $(Kconfig) 111*53ee8cc1Swenshuai.xi 112*53ee8cc1Swenshuai.xidefconfig: $(obj)/conf 113*53ee8cc1Swenshuai.xi @echo "*** Default configuration is based on '$(PROJ)/.config'" 114*53ee8cc1Swenshuai.xi $(Q)$< --defconfig=$(PROJ)/.config $(Kconfig) 115*53ee8cc1Swenshuai.xi 116*53ee8cc1Swenshuai.xi%_defconfig: $(obj)/conf 117*53ee8cc1Swenshuai.xi $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig) 118*53ee8cc1Swenshuai.xi 119*53ee8cc1Swenshuai.xi# Help text used by make help 120*53ee8cc1Swenshuai.xihelp: 121*53ee8cc1Swenshuai.xi @echo ' config - Update current config utilising a line-oriented program' 122*53ee8cc1Swenshuai.xi @echo ' nconfig - Update current config utilising a ncurses menu based program' 123*53ee8cc1Swenshuai.xi @echo ' menuconfig - Update current config utilising a menu based program' 124*53ee8cc1Swenshuai.xi @echo ' xconfig - Update current config utilising a QT based front-end' 125*53ee8cc1Swenshuai.xi @echo ' gconfig - Update current config utilising a GTK based front-end' 126*53ee8cc1Swenshuai.xi @echo ' oldconfig - Update current config utilising a provided .config as base' 127*53ee8cc1Swenshuai.xi @echo ' localmodconfig - Update current config disabling modules not loaded' 128*53ee8cc1Swenshuai.xi @echo ' localyesconfig - Update current config converting local mods to core' 129*53ee8cc1Swenshuai.xi @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps' 130*53ee8cc1Swenshuai.xi @echo ' defconfig - New config with default from ARCH supplied defconfig' 131*53ee8cc1Swenshuai.xi @echo ' savedefconfig - Save current config as ./defconfig (minimal config)' 132*53ee8cc1Swenshuai.xi @echo ' allnoconfig - New config where all options are answered with no' 133*53ee8cc1Swenshuai.xi @echo ' allyesconfig - New config where all options are accepted with yes' 134*53ee8cc1Swenshuai.xi @echo ' allmodconfig - New config selecting modules when possible' 135*53ee8cc1Swenshuai.xi @echo ' alldefconfig - New config with all symbols set to default' 136*53ee8cc1Swenshuai.xi @echo ' randconfig - New config with random answer to all options' 137*53ee8cc1Swenshuai.xi @echo ' listnewconfig - List new options' 138*53ee8cc1Swenshuai.xi @echo ' oldnoconfig - Same as silentoldconfig but set new symbols to n (unset)' 139*53ee8cc1Swenshuai.xi 140*53ee8cc1Swenshuai.xi# lxdialog stuff 141*53ee8cc1Swenshuai.xicheck-lxdialog := $(srctree)/$(src)/lxdialog/check-lxdialog.sh 142*53ee8cc1Swenshuai.xi 143*53ee8cc1Swenshuai.xi# Use recursively expanded variables so we do not call gcc unless 144*53ee8cc1Swenshuai.xi# we really need to do so. (Do not call gcc as part of make mrproper) 145*53ee8cc1Swenshuai.xiHOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \ 146*53ee8cc1Swenshuai.xi -DLOCALE 147*53ee8cc1Swenshuai.xi 148*53ee8cc1Swenshuai.xi# =========================================================================== 149*53ee8cc1Swenshuai.xi# Shared Makefile for the various kconfig executables: 150*53ee8cc1Swenshuai.xi# conf: Used for defconfig, oldconfig and related targets 151*53ee8cc1Swenshuai.xi# nconf: Used for the nconfig target. 152*53ee8cc1Swenshuai.xi# Utilizes ncurses 153*53ee8cc1Swenshuai.xi# mconf: Used for the menuconfig target 154*53ee8cc1Swenshuai.xi# Utilizes the lxdialog package 155*53ee8cc1Swenshuai.xi# qconf: Used for the xconfig target 156*53ee8cc1Swenshuai.xi# Based on QT which needs to be installed to compile it 157*53ee8cc1Swenshuai.xi# gconf: Used for the gconfig target 158*53ee8cc1Swenshuai.xi# Based on GTK which needs to be installed to compile it 159*53ee8cc1Swenshuai.xi# object files used by all kconfig flavours 160*53ee8cc1Swenshuai.xi 161*53ee8cc1Swenshuai.xilxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o 162*53ee8cc1Swenshuai.xilxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o 163*53ee8cc1Swenshuai.xi 164*53ee8cc1Swenshuai.xiconf-objs := conf.o zconf.tab.o 165*53ee8cc1Swenshuai.ximconf-objs := mconf.o zconf.tab.o $(lxdialog) 166*53ee8cc1Swenshuai.xinconf-objs := nconf.o zconf.tab.o nconf.gui.o 167*53ee8cc1Swenshuai.xikxgettext-objs := kxgettext.o zconf.tab.o 168*53ee8cc1Swenshuai.xiqconf-cxxobjs := qconf.o 169*53ee8cc1Swenshuai.xiqconf-objs := kconfig_load.o zconf.tab.o 170*53ee8cc1Swenshuai.xigconf-objs := gconf.o kconfig_load.o zconf.tab.o 171*53ee8cc1Swenshuai.xi 172*53ee8cc1Swenshuai.xihostprogs-y := conf 173*53ee8cc1Swenshuai.xi 174*53ee8cc1Swenshuai.xiifeq ($(MAKECMDGOALS),nconfig) 175*53ee8cc1Swenshuai.xi hostprogs-y += nconf 176*53ee8cc1Swenshuai.xiendif 177*53ee8cc1Swenshuai.xi 178*53ee8cc1Swenshuai.xiifeq ($(MAKECMDGOALS),menuconfig) 179*53ee8cc1Swenshuai.xi hostprogs-y += mconf 180*53ee8cc1Swenshuai.xiendif 181*53ee8cc1Swenshuai.xi 182*53ee8cc1Swenshuai.xiifeq ($(MAKECMDGOALS),update-po-config) 183*53ee8cc1Swenshuai.xi hostprogs-y += kxgettext 184*53ee8cc1Swenshuai.xiendif 185*53ee8cc1Swenshuai.xi 186*53ee8cc1Swenshuai.xiifeq ($(MAKECMDGOALS),xconfig) 187*53ee8cc1Swenshuai.xi qconf-target := 1 188*53ee8cc1Swenshuai.xiendif 189*53ee8cc1Swenshuai.xiifeq ($(MAKECMDGOALS),gconfig) 190*53ee8cc1Swenshuai.xi gconf-target := 1 191*53ee8cc1Swenshuai.xiendif 192*53ee8cc1Swenshuai.xi 193*53ee8cc1Swenshuai.xi 194*53ee8cc1Swenshuai.xiifeq ($(qconf-target),1) 195*53ee8cc1Swenshuai.xi hostprogs-y += qconf 196*53ee8cc1Swenshuai.xiendif 197*53ee8cc1Swenshuai.xi 198*53ee8cc1Swenshuai.xiifeq ($(gconf-target),1) 199*53ee8cc1Swenshuai.xi hostprogs-y += gconf 200*53ee8cc1Swenshuai.xiendif 201*53ee8cc1Swenshuai.xi 202*53ee8cc1Swenshuai.xiclean-files := lkc_defs.h qconf.moc .tmp_qtcheck .tmp_gtkcheck 203*53ee8cc1Swenshuai.xiclean-files += zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h 204*53ee8cc1Swenshuai.xiclean-files += mconf qconf gconf nconf 205*53ee8cc1Swenshuai.xiclean-files += config.pot linux.pot 206*53ee8cc1Swenshuai.xi 207*53ee8cc1Swenshuai.xi# Check that we have the required ncurses stuff installed for lxdialog (menuconfig) 208*53ee8cc1Swenshuai.xiPHONY += $(obj)/dochecklxdialog 209*53ee8cc1Swenshuai.xi$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog 210*53ee8cc1Swenshuai.xi$(obj)/dochecklxdialog: 211*53ee8cc1Swenshuai.xi $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf) 212*53ee8cc1Swenshuai.xi 213*53ee8cc1Swenshuai.xialways := dochecklxdialog 214*53ee8cc1Swenshuai.xi 215*53ee8cc1Swenshuai.xi# Add environment specific flags 216*53ee8cc1Swenshuai.xiHOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)) 217*53ee8cc1Swenshuai.xi 218*53ee8cc1Swenshuai.xi# generated files seem to need this to find local include files 219*53ee8cc1Swenshuai.xiHOSTCFLAGS_lex.zconf.o := -I$(src) 220*53ee8cc1Swenshuai.xiHOSTCFLAGS_zconf.tab.o := -I$(src) 221*53ee8cc1Swenshuai.xi 222*53ee8cc1Swenshuai.xiHOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl 223*53ee8cc1Swenshuai.xiHOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK 224*53ee8cc1Swenshuai.xi 225*53ee8cc1Swenshuai.xiHOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` -ldl 226*53ee8cc1Swenshuai.xiHOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \ 227*53ee8cc1Swenshuai.xi -D LKC_DIRECT_LINK 228*53ee8cc1Swenshuai.xi 229*53ee8cc1Swenshuai.xiHOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC)) 230*53ee8cc1Swenshuai.xi 231*53ee8cc1Swenshuai.xiHOSTLOADLIBES_nconf = -lmenu -lpanel -lncurses 232*53ee8cc1Swenshuai.xi$(obj)/qconf.o: $(obj)/.tmp_qtcheck 233*53ee8cc1Swenshuai.xi 234*53ee8cc1Swenshuai.xiifeq ($(qconf-target),1) 235*53ee8cc1Swenshuai.xi$(obj)/.tmp_qtcheck: $(src)/Makefile 236*53ee8cc1Swenshuai.xi-include $(obj)/.tmp_qtcheck 237*53ee8cc1Swenshuai.xi 238*53ee8cc1Swenshuai.xi# QT needs some extra effort... 239*53ee8cc1Swenshuai.xi$(obj)/.tmp_qtcheck: 240*53ee8cc1Swenshuai.xi @set -e; echo " CHECK qt"; dir=""; pkg=""; \ 241*53ee8cc1Swenshuai.xi if ! pkg-config --exists QtCore 2> /dev/null; then \ 242*53ee8cc1Swenshuai.xi echo "* Unable to find the QT4 tool qmake. Trying to use QT3"; \ 243*53ee8cc1Swenshuai.xi pkg-config --exists qt 2> /dev/null && pkg=qt; \ 244*53ee8cc1Swenshuai.xi pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \ 245*53ee8cc1Swenshuai.xi if [ -n "$$pkg" ]; then \ 246*53ee8cc1Swenshuai.xi cflags="\$$(shell pkg-config $$pkg --cflags)"; \ 247*53ee8cc1Swenshuai.xi libs="\$$(shell pkg-config $$pkg --libs)"; \ 248*53ee8cc1Swenshuai.xi moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \ 249*53ee8cc1Swenshuai.xi dir="$$(pkg-config $$pkg --variable=prefix)"; \ 250*53ee8cc1Swenshuai.xi else \ 251*53ee8cc1Swenshuai.xi for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \ 252*53ee8cc1Swenshuai.xi if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \ 253*53ee8cc1Swenshuai.xi done; \ 254*53ee8cc1Swenshuai.xi if [ -z "$$dir" ]; then \ 255*53ee8cc1Swenshuai.xi echo "*"; \ 256*53ee8cc1Swenshuai.xi echo "* Unable to find any QT installation. Please make sure that"; \ 257*53ee8cc1Swenshuai.xi echo "* the QT4 or QT3 development package is correctly installed and"; \ 258*53ee8cc1Swenshuai.xi echo "* either qmake can be found or install pkg-config or set"; \ 259*53ee8cc1Swenshuai.xi echo "* the QTDIR environment variable to the correct location."; \ 260*53ee8cc1Swenshuai.xi echo "*"; \ 261*53ee8cc1Swenshuai.xi false; \ 262*53ee8cc1Swenshuai.xi fi; \ 263*53ee8cc1Swenshuai.xi libpath=$$dir/lib; lib=qt; osdir=""; \ 264*53ee8cc1Swenshuai.xi $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \ 265*53ee8cc1Swenshuai.xi osdir=x$$($(HOSTCXX) -print-multi-os-directory); \ 266*53ee8cc1Swenshuai.xi test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \ 267*53ee8cc1Swenshuai.xi test -f $$libpath/libqt-mt.so && lib=qt-mt; \ 268*53ee8cc1Swenshuai.xi cflags="-I$$dir/include"; \ 269*53ee8cc1Swenshuai.xi libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \ 270*53ee8cc1Swenshuai.xi moc="$$dir/bin/moc"; \ 271*53ee8cc1Swenshuai.xi fi; \ 272*53ee8cc1Swenshuai.xi if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \ 273*53ee8cc1Swenshuai.xi echo "*"; \ 274*53ee8cc1Swenshuai.xi echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \ 275*53ee8cc1Swenshuai.xi echo "*"; \ 276*53ee8cc1Swenshuai.xi moc="/usr/bin/moc"; \ 277*53ee8cc1Swenshuai.xi fi; \ 278*53ee8cc1Swenshuai.xi else \ 279*53ee8cc1Swenshuai.xi cflags="\$$(shell pkg-config QtCore QtGui Qt3Support --cflags)"; \ 280*53ee8cc1Swenshuai.xi libs="\$$(shell pkg-config QtCore QtGui Qt3Support --libs)"; \ 281*53ee8cc1Swenshuai.xi binpath="\$$(shell pkg-config QtCore --variable=prefix)"; \ 282*53ee8cc1Swenshuai.xi moc="$$binpath/bin/moc"; \ 283*53ee8cc1Swenshuai.xi fi; \ 284*53ee8cc1Swenshuai.xi echo "KC_QT_CFLAGS=$$cflags" > $@; \ 285*53ee8cc1Swenshuai.xi echo "KC_QT_LIBS=$$libs" >> $@; \ 286*53ee8cc1Swenshuai.xi echo "KC_QT_MOC=$$moc" >> $@ 287*53ee8cc1Swenshuai.xiendif 288*53ee8cc1Swenshuai.xi 289*53ee8cc1Swenshuai.xi$(obj)/gconf.o: $(obj)/.tmp_gtkcheck 290*53ee8cc1Swenshuai.xi 291*53ee8cc1Swenshuai.xiifeq ($(gconf-target),1) 292*53ee8cc1Swenshuai.xi-include $(obj)/.tmp_gtkcheck 293*53ee8cc1Swenshuai.xi 294*53ee8cc1Swenshuai.xi# GTK needs some extra effort, too... 295*53ee8cc1Swenshuai.xi$(obj)/.tmp_gtkcheck: 296*53ee8cc1Swenshuai.xi @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \ 297*53ee8cc1Swenshuai.xi if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \ 298*53ee8cc1Swenshuai.xi touch $@; \ 299*53ee8cc1Swenshuai.xi else \ 300*53ee8cc1Swenshuai.xi echo "*"; \ 301*53ee8cc1Swenshuai.xi echo "* GTK+ is present but version >= 2.0.0 is required."; \ 302*53ee8cc1Swenshuai.xi echo "*"; \ 303*53ee8cc1Swenshuai.xi false; \ 304*53ee8cc1Swenshuai.xi fi \ 305*53ee8cc1Swenshuai.xi else \ 306*53ee8cc1Swenshuai.xi echo "*"; \ 307*53ee8cc1Swenshuai.xi echo "* Unable to find the GTK+ installation. Please make sure that"; \ 308*53ee8cc1Swenshuai.xi echo "* the GTK+ 2.0 development package is correctly installed..."; \ 309*53ee8cc1Swenshuai.xi echo "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \ 310*53ee8cc1Swenshuai.xi echo "*"; \ 311*53ee8cc1Swenshuai.xi false; \ 312*53ee8cc1Swenshuai.xi fi 313*53ee8cc1Swenshuai.xiendif 314*53ee8cc1Swenshuai.xi 315*53ee8cc1Swenshuai.xi$(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c 316*53ee8cc1Swenshuai.xi 317*53ee8cc1Swenshuai.xi$(obj)/kconfig_load.o: $(obj)/lkc_defs.h 318*53ee8cc1Swenshuai.xi 319*53ee8cc1Swenshuai.xi$(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h 320*53ee8cc1Swenshuai.xi 321*53ee8cc1Swenshuai.xi$(obj)/gconf.o: $(obj)/lkc_defs.h 322*53ee8cc1Swenshuai.xi 323*53ee8cc1Swenshuai.xi$(obj)/%.moc: $(src)/%.h 324*53ee8cc1Swenshuai.xi $(KC_QT_MOC) -i $< -o $@ 325*53ee8cc1Swenshuai.xi 326*53ee8cc1Swenshuai.xi$(obj)/lkc_defs.h: $(src)/lkc_proto.h 327*53ee8cc1Swenshuai.xi $(Q)sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' 328*53ee8cc1Swenshuai.xi 329*53ee8cc1Swenshuai.xi# Extract gconf menu items for I18N support 330*53ee8cc1Swenshuai.xi$(obj)/gconf.glade.h: $(obj)/gconf.glade 331*53ee8cc1Swenshuai.xi $(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \ 332*53ee8cc1Swenshuai.xi $(obj)/gconf.glade 333*53ee8cc1Swenshuai.xi 334*53ee8cc1Swenshuai.xi### 335*53ee8cc1Swenshuai.xi# The following requires flex/bison/gperf 336*53ee8cc1Swenshuai.xi# By default we use the _shipped versions, uncomment the following line if 337*53ee8cc1Swenshuai.xi# you are modifying the flex/bison src. 338*53ee8cc1Swenshuai.xi# LKC_GENPARSER := 1 339*53ee8cc1Swenshuai.xi 340*53ee8cc1Swenshuai.xiifdef LKC_GENPARSER 341*53ee8cc1Swenshuai.xi 342*53ee8cc1Swenshuai.xi$(obj)/zconf.tab.c: $(src)/zconf.y 343*53ee8cc1Swenshuai.xi$(obj)/lex.zconf.c: $(src)/zconf.l 344*53ee8cc1Swenshuai.xi$(obj)/zconf.hash.c: $(src)/zconf.gperf 345*53ee8cc1Swenshuai.xi 346*53ee8cc1Swenshuai.xi%.tab.c: %.y 347*53ee8cc1Swenshuai.xi bison -l -b $* -p $(notdir $*) $< 348*53ee8cc1Swenshuai.xi cp $@ $@_shipped 349*53ee8cc1Swenshuai.xi 350*53ee8cc1Swenshuai.xilex.%.c: %.l 351*53ee8cc1Swenshuai.xi flex -L -P$(notdir $*) -o$@ $< 352*53ee8cc1Swenshuai.xi cp $@ $@_shipped 353*53ee8cc1Swenshuai.xi 354*53ee8cc1Swenshuai.xi%.hash.c: %.gperf 355*53ee8cc1Swenshuai.xi gperf < $< > $@ 356*53ee8cc1Swenshuai.xi cp $@ $@_shipped 357*53ee8cc1Swenshuai.xi 358*53ee8cc1Swenshuai.xiendif 359