Qt fails the configure step with the following output: Creating qmake. Please wait... make[2]: Entering directory `/home/murray/devel/keyser/package/buildroot/output/build/qt-everywhere-opensource-src-4.6.2/qmake' make[2]: Nothing to be done for `first'. make[2]: Leaving directory `/home/murray/devel/keyser/package/buildroot/output/build/qt-everywhere-opensource-src-4.6.2/qmake' The DirectFB screen driver functionality test failed! You might need to modify the include and library search paths by editing QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in /home/murray/devel/keyser/package/buildroot/output/build/qt-everywhere-opensource-src-4.6.2/mkspecs/qws/linux-arm-g++. make[1]: *** [/home/murray/devel/keyser/package/buildroot/output/build/qt-everywhere-opensource-src-4.6.2/.configured] Error 1 make[1]: Leaving directory `/home/murray/devel/keyser/package/buildroot' make: *** [/home/murray/devel/keyser/package/buildroot/output/images/rootfs.arm.tar] Error 2 After make exited I noticed that output/build/directfb*/ had not been created, which suggests the dependency of Qt on DirectFB has not been taken into account. Nataraj S Narayan reported a problem that may have the same cause with Qt trying to use mysql (http://lists.busybox.net/pipermail/buildroot/2010-July/036068.html).
This patch seems to solve both Nataraj's and my issue. diff --git a/package/qt/qt.mk b/package/qt/qt.mk index e2ebbb2..4bfd67a 100644 --- a/package/qt/qt.mk +++ b/package/qt/qt.mk @@ -115,6 +115,7 @@ QT_CONFIGURE += -no-gfx-multiscreen endif ifeq ($(BR2_PACKAGE_QT_GFX_DIRECTFB),y) QT_CONFIGURE += -qt-gfx-directfb +QT_DEP_LIBS+=directfb else QT_CONFIGURE += -no-gfx-directfb endif @@ -273,6 +274,7 @@ QT_CONFIGURE+= -qt-sql-ibase endif ifeq ($(BR2_PACKAGE_QT_MYSQL),y) QT_CONFIGURE+= -qt-sql-mysql +QT_DEP_LIBS+=mysql endif ifeq ($(BR2_PACKAGE_QT_ODBC),y) QT_CONFIGURE+= -qt-sql-odbc I could compile buildroot, but I'm not sure this patch really solves the bug. Given this is a precedence problem I could just have been lucky with make. In fact the value of QT_DEP_LIBS is used only once (line 608): qt: $(QT_DEP_LIBS) $(TARGET_DIR)/usr/lib/libQtCore.so.4 Which does *not* force make to build the libs before libQtCore.so.4. According to the makefile, the unpack/config/compile and the following libQtCore.so.4 steps do not depend on $(QT_DEP_LIBS). Am I missing something? Luca
I've handled the mysql part of the problem in the patch http://lists.busybox.net/pipermail/buildroot/2010-July/036122.html, which is part of a pull request I hope Peter will merge soon. The DirectFB part of the problem remains to be fixed, though.
Fixed in git, thanks! The QT_DEP_LIBS is correct because of the way we build stuff in BR (single threaded toplevel make).