[PATCH] prefer pkg-config for the QT check

This makes pkg-config now the prefered way to configure QT and properly
fixes the recent Fedora breakage and leaves the old QT detection as
fallback mechanism.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Roman Zippel and committed by Linus Torvalds b3a5225f 7692c5dd

+39 -29
+39 -29
scripts/kconfig/Makefile
··· 129 HOSTCFLAGS_lex.zconf.o := -I$(src) 130 HOSTCFLAGS_zconf.tab.o := -I$(src) 131 132 - HOSTLOADLIBES_qconf = -L$(QTLIBPATH) -Wl,-rpath,$(QTLIBPATH) -l$(LIBS_QT) -ldl 133 - HOSTCXXFLAGS_qconf.o = -I$(QTDIR)/include -D LKC_DIRECT_LINK 134 135 HOSTLOADLIBES_gconf = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --libs` 136 HOSTCFLAGS_gconf.o = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --cflags` \ ··· 139 $(obj)/qconf.o: $(obj)/.tmp_qtcheck 140 141 ifeq ($(qconf-target),1) 142 - MOC = $(QTDIR)/bin/moc 143 - QTLIBPATH = $(QTDIR)/lib 144 -include $(obj)/.tmp_qtcheck 145 146 # QT needs some extra effort... 147 $(obj)/.tmp_qtcheck: 148 - @set -e; for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \ 149 - if [ -f $$d/include/qconfig.h ]; then DIR=$$d; break; fi; \ 150 - done; \ 151 - if [ -z "$$DIR" ]; then \ 152 - echo "*"; \ 153 - echo "* Unable to find the QT installation. Please make sure that the"; \ 154 - echo "* QT development package is correctly installed and the QTDIR"; \ 155 - echo "* environment variable is set to the correct location."; \ 156 - echo "*"; \ 157 - false; \ 158 - fi; \ 159 - LIBPATH=$$DIR/lib; LIB=qt; \ 160 - if [ -f $$QTLIB/libqt-mt.so ] ; then \ 161 - LIB=qt-mt; \ 162 - LIBPATH=$$QTLIB; \ 163 else \ 164 - $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \ 165 - LIBPATH=$$DIR/lib/$$($(HOSTCXX) -print-multi-os-directory); \ 166 - if [ -f $$LIBPATH/libqt-mt.so ]; then LIB=qt-mt; fi; \ 167 fi; \ 168 - echo "QTDIR=$$DIR" > $@; echo "QTLIBPATH=$$LIBPATH" >> $@; \ 169 - echo "LIBS_QT=$$LIB" >> $@; \ 170 - if [ ! -x $$DIR/bin/moc -a -x /usr/bin/moc ]; then \ 171 echo "*"; \ 172 - echo "* Unable to find $$DIR/bin/moc, using /usr/bin/moc instead."; \ 173 echo "*"; \ 174 - echo "MOC=/usr/bin/moc" >> $@; \ 175 - fi 176 endif 177 178 $(obj)/gconf.o: $(obj)/.tmp_gtkcheck ··· 220 $(obj)/gconf.o: $(obj)/lkc_defs.h 221 222 $(obj)/%.moc: $(src)/%.h 223 - $(MOC) -i $< -o $@ 224 225 $(obj)/lkc_defs.h: $(src)/lkc_proto.h 226 sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
··· 129 HOSTCFLAGS_lex.zconf.o := -I$(src) 130 HOSTCFLAGS_zconf.tab.o := -I$(src) 131 132 + HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl 133 + HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK 134 135 HOSTLOADLIBES_gconf = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --libs` 136 HOSTCFLAGS_gconf.o = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --cflags` \ ··· 139 $(obj)/qconf.o: $(obj)/.tmp_qtcheck 140 141 ifeq ($(qconf-target),1) 142 + $(obj)/.tmp_qtcheck: $(src)/Makefile 143 -include $(obj)/.tmp_qtcheck 144 145 # QT needs some extra effort... 146 $(obj)/.tmp_qtcheck: 147 + @set -e; echo " CHECK qt"; dir=""; pkg=""; \ 148 + pkg-config --exists qt 2> /dev/null && pkg=qt; \ 149 + pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \ 150 + if [ -n "$$pkg" ]; then \ 151 + cflags="\$$(shell pkg-config $$pkg --cflags)"; \ 152 + libs="\$$(shell pkg-config $$pkg --libs)"; \ 153 + moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \ 154 + dir="$$(pkg-config $$pkg --variable=prefix)"; \ 155 else \ 156 + for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \ 157 + if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \ 158 + done; \ 159 + if [ -z "$$dir" ]; then \ 160 + echo "*"; \ 161 + echo "* Unable to find the QT installation. Please make sure that"; \ 162 + echo "* the QT development package is correctly installed and"; \ 163 + echo "* either install pkg-config or set the QTDIR environment"; \ 164 + echo "* variable to the correct location."; \ 165 + echo "*"; \ 166 + false; \ 167 + fi; \ 168 + libpath=$$dir/lib; lib=qt; osdir=""; \ 169 + $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \ 170 + osdir=x$$($(HOSTCXX) -print-multi-os-directory); \ 171 + test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \ 172 + test -f $$libpath/libqt-mt.so && lib=qt-mt; \ 173 + cflags="-I$$dir/include"; \ 174 + libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \ 175 + moc="$$dir/bin/moc"; \ 176 fi; \ 177 + if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \ 178 echo "*"; \ 179 + echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \ 180 echo "*"; \ 181 + moc="/usr/bin/moc"; \ 182 + fi; \ 183 + echo "KC_QT_CFLAGS=$$cflags" > $@; \ 184 + echo "KC_QT_LIBS=$$libs" >> $@; \ 185 + echo "KC_QT_MOC=$$moc" >> $@ 186 endif 187 188 $(obj)/gconf.o: $(obj)/.tmp_gtkcheck ··· 210 $(obj)/gconf.o: $(obj)/lkc_defs.h 211 212 $(obj)/%.moc: $(src)/%.h 213 + $(KC_QT_MOC) -i $< -o $@ 214 215 $(obj)/lkc_defs.h: $(src)/lkc_proto.h 216 sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'