diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2005-11-22 00:32:38 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-22 12:14:31 -0500 |
commit | b3a5225f31180322fd7d692fd4cf786702826b94 (patch) | |
tree | 3ee46454260010cb57280bd85beeb3b63e290392 | |
parent | 7692c5dd48026d952199c2b97c3418f927cc0407 (diff) |
[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>
-rw-r--r-- | scripts/kconfig/Makefile | 68 |
1 files changed, 39 insertions, 29 deletions
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index 9d67782b812f..a96153fc793f 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile | |||
@@ -129,8 +129,8 @@ endif | |||
129 | HOSTCFLAGS_lex.zconf.o := -I$(src) | 129 | HOSTCFLAGS_lex.zconf.o := -I$(src) |
130 | HOSTCFLAGS_zconf.tab.o := -I$(src) | 130 | HOSTCFLAGS_zconf.tab.o := -I$(src) |
131 | 131 | ||
132 | HOSTLOADLIBES_qconf = -L$(QTLIBPATH) -Wl,-rpath,$(QTLIBPATH) -l$(LIBS_QT) -ldl | 132 | HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl |
133 | HOSTCXXFLAGS_qconf.o = -I$(QTDIR)/include -D LKC_DIRECT_LINK | 133 | HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK |
134 | 134 | ||
135 | HOSTLOADLIBES_gconf = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --libs` | 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` \ | 136 | HOSTCFLAGS_gconf.o = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --cflags` \ |
@@ -139,40 +139,50 @@ HOSTCFLAGS_gconf.o = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --cflags` \ | |||
139 | $(obj)/qconf.o: $(obj)/.tmp_qtcheck | 139 | $(obj)/qconf.o: $(obj)/.tmp_qtcheck |
140 | 140 | ||
141 | ifeq ($(qconf-target),1) | 141 | ifeq ($(qconf-target),1) |
142 | MOC = $(QTDIR)/bin/moc | 142 | $(obj)/.tmp_qtcheck: $(src)/Makefile |
143 | QTLIBPATH = $(QTDIR)/lib | ||
144 | -include $(obj)/.tmp_qtcheck | 143 | -include $(obj)/.tmp_qtcheck |
145 | 144 | ||
146 | # QT needs some extra effort... | 145 | # QT needs some extra effort... |
147 | $(obj)/.tmp_qtcheck: | 146 | $(obj)/.tmp_qtcheck: |
148 | @set -e; for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \ | 147 | @set -e; echo " CHECK qt"; dir=""; pkg=""; \ |
149 | if [ -f $$d/include/qconfig.h ]; then DIR=$$d; break; fi; \ | 148 | pkg-config --exists qt 2> /dev/null && pkg=qt; \ |
150 | done; \ | 149 | pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \ |
151 | if [ -z "$$DIR" ]; then \ | 150 | if [ -n "$$pkg" ]; then \ |
152 | echo "*"; \ | 151 | cflags="\$$(shell pkg-config $$pkg --cflags)"; \ |
153 | echo "* Unable to find the QT installation. Please make sure that the"; \ | 152 | libs="\$$(shell pkg-config $$pkg --libs)"; \ |
154 | echo "* QT development package is correctly installed and the QTDIR"; \ | 153 | moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \ |
155 | echo "* environment variable is set to the correct location."; \ | 154 | dir="$$(pkg-config $$pkg --variable=prefix)"; \ |
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 \ | 155 | else \ |
164 | $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \ | 156 | for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \ |
165 | LIBPATH=$$DIR/lib/$$($(HOSTCXX) -print-multi-os-directory); \ | 157 | if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \ |
166 | if [ -f $$LIBPATH/libqt-mt.so ]; then LIB=qt-mt; 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"; \ | ||
167 | fi; \ | 176 | fi; \ |
168 | echo "QTDIR=$$DIR" > $@; echo "QTLIBPATH=$$LIBPATH" >> $@; \ | 177 | if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \ |
169 | echo "LIBS_QT=$$LIB" >> $@; \ | ||
170 | if [ ! -x $$DIR/bin/moc -a -x /usr/bin/moc ]; then \ | ||
171 | echo "*"; \ | 178 | echo "*"; \ |
172 | echo "* Unable to find $$DIR/bin/moc, using /usr/bin/moc instead."; \ | 179 | echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \ |
173 | echo "*"; \ | 180 | echo "*"; \ |
174 | echo "MOC=/usr/bin/moc" >> $@; \ | 181 | moc="/usr/bin/moc"; \ |
175 | fi | 182 | fi; \ |
183 | echo "KC_QT_CFLAGS=$$cflags" > $@; \ | ||
184 | echo "KC_QT_LIBS=$$libs" >> $@; \ | ||
185 | echo "KC_QT_MOC=$$moc" >> $@ | ||
176 | endif | 186 | endif |
177 | 187 | ||
178 | $(obj)/gconf.o: $(obj)/.tmp_gtkcheck | 188 | $(obj)/gconf.o: $(obj)/.tmp_gtkcheck |
@@ -210,7 +220,7 @@ $(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h | |||
210 | $(obj)/gconf.o: $(obj)/lkc_defs.h | 220 | $(obj)/gconf.o: $(obj)/lkc_defs.h |
211 | 221 | ||
212 | $(obj)/%.moc: $(src)/%.h | 222 | $(obj)/%.moc: $(src)/%.h |
213 | $(MOC) -i $< -o $@ | 223 | $(KC_QT_MOC) -i $< -o $@ |
214 | 224 | ||
215 | $(obj)/lkc_defs.h: $(src)/lkc_proto.h | 225 | $(obj)/lkc_defs.h: $(src)/lkc_proto.h |
216 | sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' | 226 | sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' |