qt.mk 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620
  1. ######################################################################
  2. #
  3. # Qt Embedded for Linux 4.6
  4. # http://www.qtsoftware.com/
  5. #
  6. # This makefile was originally composed by Thomas Lundquist <thomasez@zelow.no>
  7. # Later heavily modified by buildroot developers
  8. #
  9. # BTW, this uses alot of FPU calls and it's pretty slow if you use
  10. # the kernels FPU emulation so it's better to choose soft float in the
  11. # buildroot config (and uClibc.config of course, if you have your own.)
  12. #
  13. ######################################################################
  14. QT_VERSION:=4.6.2
  15. QT_SOURCE:=qt-everywhere-opensource-src-$(QT_VERSION).tar.gz
  16. QT_SITE:=http://get.qt.nokia.com/qt/source
  17. QT_CAT:=$(ZCAT)
  18. QT_TARGET_DIR:=$(BUILD_DIR)/qt-everywhere-opensource-src-$(QT_VERSION)
  19. QT_CONFIGURE:=#empty
  20. ifeq ($(BR2_PACKAGE_QT_LICENSE_APPROVED),y)
  21. QT_CONFIGURE += -opensource -confirm-license
  22. endif
  23. # If you want extra tweaking you can copy
  24. # $(QT_TARGET_DIR)/src/corelib/global/qconfig-myfile.h
  25. # to the qt packages directory (where this .mk file is) and
  26. # remove the comment.
  27. # QT_QCONFIG_COMMAND:=-qconfig myfile
  28. #
  29. # For the options you can set in this file, look at
  30. # $(QT_TARGET_DIR)/src/corelib/global/qfeatures.txt
  31. #
  32. QT_QCONFIG_FILE:=package/qt/qconfig-myfile.h
  33. QT_QCONFIG_FILE_LOCATION:=/src/corelib/global/
  34. ifeq ($(BR2_LARGEFILE),y)
  35. QT_CONFIGURE+= -largefile
  36. else
  37. QT_CONFIGURE+= -no-largefile
  38. endif
  39. ifeq ($(BR2_PACKAGE_QT_QT3SUPPORT),y)
  40. QT_CONFIGURE+= -qt3support
  41. else
  42. QT_CONFIGURE+= -no-qt3support
  43. endif
  44. # ensure glib is built first if enabled for Qt's glib support
  45. ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
  46. QT_DEP_LIBS+=libglib2
  47. endif
  48. ### Pixel depths
  49. QT_PIXEL_DEPTHS := # empty
  50. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_1),y)
  51. QT_PIXEL_DEPTHS += 1
  52. endif
  53. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_4),y)
  54. QT_PIXEL_DEPTHS += 4
  55. endif
  56. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_8),y)
  57. QT_PIXEL_DEPTHS += 8
  58. endif
  59. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_12),y)
  60. QT_PIXEL_DEPTHS += 12
  61. endif
  62. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_15),y)
  63. QT_PIXEL_DEPTHS += 15
  64. endif
  65. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_16),y)
  66. QT_PIXEL_DEPTHS += 16
  67. endif
  68. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_18),y)
  69. QT_PIXEL_DEPTHS += 18
  70. endif
  71. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_24),y)
  72. QT_PIXEL_DEPTHS += 24
  73. endif
  74. ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_32),y)
  75. QT_PIXEL_DEPTHS += 32
  76. endif
  77. ifneq ($(QT_PIXEL_DEPTHS),)
  78. QT_CONFIGURE += -depths $(subst $(space),$(comma),$(strip $(QT_PIXEL_DEPTHS)))
  79. endif
  80. ### Display drivers
  81. ifeq ($(BR2_PACKAGE_QT_GFX_LINUXFB),y)
  82. QT_CONFIGURE += -qt-gfx-linuxfb
  83. else
  84. QT_CONFIGURE += -no-gfx-linuxfb
  85. endif
  86. ifeq ($(BR2_PACKAGE_QT_GFX_TRANSFORMED),y)
  87. QT_CONFIGURE += -qt-gfx-transformed
  88. else
  89. QT_CONFIGURE += -no-gfx-transformed
  90. endif
  91. ifeq ($(BR2_PACKAGE_QT_GFX_QVFB),y)
  92. QT_CONFIGURE += -qt-gfx-qvfb
  93. else
  94. QT_CONFIGURE += -no-gfx-qvfb
  95. endif
  96. ifeq ($(BR2_PACKAGE_QT_GFX_VNC),y)
  97. QT_CONFIGURE += -qt-gfx-vnc
  98. else
  99. QT_CONFIGURE += -no-gfx-vnc
  100. endif
  101. ifeq ($(BR2_PACKAGE_QT_GFX_MULTISCREEN),y)
  102. QT_CONFIGURE += -qt-gfx-multiscreen
  103. else
  104. QT_CONFIGURE += -no-gfx-multiscreen
  105. endif
  106. ifeq ($(BR2_PACKAGE_QT_GFX_DIRECTFB),y)
  107. QT_CONFIGURE += -qt-gfx-directfb
  108. else
  109. QT_CONFIGURE += -no-gfx-directfb
  110. endif
  111. ### Mouse drivers
  112. ifeq ($(BR2_PACKAGE_QT_MOUSE_PC),y)
  113. QT_CONFIGURE += -qt-mouse-pc
  114. else
  115. QT_CONFIGURE += -no-mouse-pc
  116. endif
  117. ifeq ($(BR2_PACKAGE_QT_MOUSE_LINUXTP),y)
  118. QT_CONFIGURE += -qt-mouse-linuxtp
  119. else
  120. QT_CONFIGURE += -no-mouse-linuxtp
  121. endif
  122. ifeq ($(BR2_PACKAGE_QT_MOUSE_LINUXINPUT),y)
  123. QT_CONFIGURE += -qt-mouse-linuxinput
  124. else
  125. QT_CONFIGURE += -no-mouse-linuxinput
  126. endif
  127. ifeq ($(BR2_PACKAGE_QT_MOUSE_TSLIB),y)
  128. QT_CONFIGURE += -qt-mouse-tslib
  129. QT_DEP_LIBS+=tslib
  130. else
  131. QT_CONFIGURE += -no-mouse-tslib
  132. endif
  133. ifeq ($(BR2_PACKAGE_QT_MOUSE_QVFB),y)
  134. QT_CONFIGURE += -qt-mouse-qvfb
  135. else
  136. QT_CONFIGURE += -no-mouse-qvfb
  137. endif
  138. ### Keyboard drivers
  139. ifeq ($(BR2_PACKAGE_QT_KEYBOARD_TTY),y)
  140. QT_CONFIGURE += -qt-kbd-tty
  141. else
  142. QT_CONFIGURE += -no-kbd-tty
  143. endif
  144. ifeq ($(BR2_PACKAGE_QT_KEYBOARD_LINUXINPUT),y)
  145. QT_CONFIGURE += -qt-kbd-linuxinput
  146. else
  147. QT_CONFIGURE += -no-kbd-linuxinput
  148. endif
  149. ifeq ($(BR2_PACKAGE_QT_KEYBOARD_QVFB),y)
  150. QT_CONFIGURE += -qt-kbd-qvfb
  151. else
  152. QT_CONFIGURE += -no-kbd-qvfb
  153. endif
  154. ifeq ($(BR2_PACKAGE_QT_DEBUG),y)
  155. QT_CONFIGURE+= -debug
  156. else
  157. QT_CONFIGURE+= -release
  158. endif
  159. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  160. QT_CONFIGURE+= -shared
  161. else
  162. QT_CONFIGURE+= -static
  163. endif
  164. ifeq ($(BR2_ENDIAN),"LITTLE")
  165. QT_CONFIGURE+= -little-endian
  166. else
  167. QT_CONFIGURE+= -big-endian
  168. endif
  169. ifeq ($(BR2_PACKAGE_QT_GIF),y)
  170. QT_CONFIGURE+= -qt-gif
  171. else
  172. QT_CONFIGURE+= -no-gif
  173. endif
  174. ifeq ($(BR2_PACKAGE_QT_LIBMNG),y)
  175. QT_CONFIGURE+= -qt-libmng
  176. else
  177. QT_CONFIGURE+= -no-libmng
  178. endif
  179. ifeq ($(BR2_PACKAGE_QT_QTZLIB),y)
  180. QT_CONFIGURE+= -qt-zlib
  181. else
  182. ifeq ($(BR2_PACKAGE_QT_SYSTEMZLIB),y)
  183. QT_CONFIGURE+= -system-zlib
  184. QT_DEP_LIBS+=zlib
  185. endif
  186. endif
  187. ifeq ($(BR2_PACKAGE_QT_QTJPEG),y)
  188. QT_CONFIGURE+= -qt-libjpeg
  189. else
  190. ifeq ($(BR2_PACKAGE_QT_SYSTEMJPEG),y)
  191. QT_CONFIGURE+= -system-libjpeg
  192. QT_DEP_LIBS+=jpeg
  193. else
  194. QT_CONFIGURE+= -no-libjpeg
  195. endif
  196. endif
  197. ifeq ($(BR2_PACKAGE_QT_QTPNG),y)
  198. QT_CONFIGURE+= -qt-libpng
  199. else
  200. ifeq ($(BR2_PACKAGE_QT_SYSTEMPNG),y)
  201. QT_CONFIGURE+= -system-libpng
  202. QT_DEP_LIBS+=libpng
  203. else
  204. QT_CONFIGURE+= -no-libpng
  205. endif
  206. endif
  207. ifeq ($(BR2_PACKAGE_QT_QTTIFF),y)
  208. QT_CONFIGURE+= -qt-libtiff
  209. else
  210. ifeq ($(BR2_PACKAGE_QT_SYSTEMTIFF),y)
  211. QT_CONFIGURE+= -system-libtiff
  212. QT_DEP_LIBS+=tiff
  213. else
  214. QT_CONFIGURE+= -no-libtiff
  215. endif
  216. endif
  217. QT_FONTS = $(addprefix $(STAGING_DIR)/usr/lib/fonts/, $(addsuffix *.qpf, \
  218. $(if $(BR2_PACKAGE_QT_FONT_MICRO),micro) \
  219. $(if $(BR2_PACKAGE_QT_FONT_FIXED),fixed) \
  220. $(if $(BR2_PACKAGE_QT_FONT_HELVETICA),helvetica) \
  221. $(if $(BR2_PACKAGE_QT_FONT_JAPANESE),japanese) \
  222. $(if $(BR2_PACKAGE_QT_FONT_UNIFONT),unifont)))
  223. ifeq ($(BR2_PACKAGE_QT_QTFREETYPE),y)
  224. QT_CONFIGURE+= -qt-freetype
  225. else
  226. ifeq ($(BR2_PACKAGE_QT_SYSTEMFREETYPE),y)
  227. QT_CONFIGURE+= -system-freetype
  228. QT_CONFIGURE+= -I $(STAGING_DIR)/usr/include/freetype2/
  229. QT_DEP_LIBS+=freetype
  230. else
  231. QT_CONFIGURE+= -no-freetype
  232. endif
  233. endif
  234. ifeq ($(BR2_PACKAGE_QT_OPENSSL),y)
  235. QT_CONFIGURE+= -openssl
  236. QT_DEP_LIBS+=openssl
  237. else
  238. QT_CONFIGURE+= -no-openssl
  239. endif
  240. # Qt SQL Drivers
  241. ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y)
  242. ifeq ($(BR2_PACKAGE_QT_IBASE),y)
  243. QT_CONFIGURE+= -qt-sql-ibase
  244. endif
  245. ifeq ($(BR2_PACKAGE_QT_MYSQL),y)
  246. QT_CONFIGURE+= -qt-sql-mysql
  247. endif
  248. ifeq ($(BR2_PACKAGE_QT_ODBC),y)
  249. QT_CONFIGURE+= -qt-sql-odbc
  250. endif
  251. ifeq ($(BR2_PACKAGE_QT_PSQL),y)
  252. QT_CONFIGURE+= -qt-sql-psql
  253. endif
  254. ifeq ($(BR2_PACKAGE_QT_SQLITE),y)
  255. QT_CONFIGURE+= -qt-sql-sqlite
  256. else
  257. QT_CONFIGURE+= -no-sql-sqlite
  258. endif
  259. ifeq ($(BR2_PACKAGE_QT_SQLITE2),y)
  260. QT_CONFIGURE+= -qt-sql-sqlite2
  261. endif
  262. else
  263. # By default, no SQL driver is turned on by configure.
  264. # but it seams sqlite isn't disabled despite what says
  265. # configure --help
  266. QT_CONFIGURE+= -no-sql-sqlite
  267. endif
  268. ifeq ($(BR2_PACKAGE_QT_XMLPATTERNS),y)
  269. QT_CONFIGURE+= -xmlpatterns -exceptions
  270. else
  271. QT_CONFIGURE+= -no-xmlpatterns
  272. endif
  273. ifeq ($(BR2_PACKAGE_QT_MULTIMEDIA),y)
  274. QT_CONFIGURE+= -multimedia
  275. else
  276. QT_CONFIGURE+= -no-multimedia
  277. endif
  278. ifeq ($(BR2_PACKAGE_QT_AUDIO_BACKEND),y)
  279. QT_CONFIGURE+= -audio-backend
  280. else
  281. QT_CONFIGURE+= -no-audio-backend
  282. endif
  283. ifeq ($(BR2_PACKAGE_QT_PHONON),y)
  284. QT_CONFIGURE+= -phonon
  285. QT_DEP_LIBS+=gstreamer gst-plugins-base
  286. else
  287. QT_CONFIGURE+= -no-phonon
  288. endif
  289. ifeq ($(BR2_PACKAGE_QT_PHONON_BACKEND),y)
  290. QT_CONFIGURE+= -phonon-backend
  291. else
  292. QT_CONFIGURE+= -no-phonon-backend
  293. endif
  294. ifeq ($(BR2_PACKAGE_QT_SVG),y)
  295. QT_CONFIGURE+= -svg
  296. else
  297. QT_CONFIGURE+= -no-svg
  298. endif
  299. ifeq ($(BR2_PACKAGE_QT_WEBKIT),y)
  300. QT_CONFIGURE+= -webkit
  301. else
  302. QT_CONFIGURE+= -no-webkit
  303. endif
  304. ifeq ($(BR2_PACKAGE_QT_SCRIPT),y)
  305. QT_CONFIGURE+= -script
  306. else
  307. QT_CONFIGURE+= -no-script
  308. endif
  309. ifeq ($(BR2_PACKAGE_QT_SCRIPTTOOLS),y)
  310. QT_CONFIGURE+= -scripttools
  311. else
  312. QT_CONFIGURE+= -no-scripttools
  313. endif
  314. ifeq ($(BR2_PACKAGE_QT_JAVASCRIPTCORE),y)
  315. QT_CONFIGURE+= -javascript-jit
  316. else
  317. QT_CONFIGURE+= -no-javascript-jit
  318. endif
  319. ifeq ($(BR2_PACKAGE_QT_STL),y)
  320. QT_CONFIGURE+= -stl
  321. else
  322. QT_CONFIGURE+= -no-stl
  323. endif
  324. # ccache and precompiled headers don't play well together
  325. ifeq ($(BR2_CCACHE),y)
  326. QT_CONFIGURE += -no-pch
  327. endif
  328. BR2_PACKAGE_QT_EMB_PLATFORM:=$(call qstrip,$(BR2_PACKAGE_QT_EMB_PLATFORM))
  329. # x86x86fix
  330. # Workaround Qt Embedded bug when crosscompiling for x86 under x86 with linux
  331. # host. It's unclear if this would happen on other hosts.
  332. ifneq ($(findstring unknown-linux,$(GNU_HOST_NAME)),)
  333. ifneq ($(findstring x86,$(BR2_PACKAGE_QT_EMB_PLATFORM)),)
  334. QT_CONFIGURE+= -platform linux-g++
  335. endif
  336. endif
  337. # End of workaround.
  338. # Figure out what libs to install in the target
  339. QT_LIBS=#empty
  340. ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y)
  341. QT_LIBS+= qt-gui
  342. endif
  343. ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y)
  344. QT_LIBS+= qt-sql
  345. endif
  346. ifeq ($(BR2_PACKAGE_QT_PHONON),y)
  347. QT_LIBS+= qt-phonon
  348. endif
  349. ifeq ($(BR2_PACKAGE_QT_SVG),y)
  350. QT_LIBS+= qt-svg
  351. endif
  352. ifeq ($(BR2_PACKAGE_QT_NETWORK),y)
  353. QT_LIBS+= qt-network
  354. endif
  355. ifeq ($(BR2_PACKAGE_QT_WEBKIT),y)
  356. QT_LIBS+= qt-webkit
  357. endif
  358. ifeq ($(BR2_PACKAGE_QT_XML),y)
  359. QT_LIBS+= qt-xml
  360. endif
  361. ifeq ($(BR2_PACKAGE_QT_DBUS),y)
  362. QT_LIBS+= qt-dbus
  363. QT_DEP_LIBS+= dbus
  364. endif
  365. ifeq ($(BR2_PACKAGE_QT_XMLPATTERNS),y)
  366. QT_LIBS+= qt-xmlpatterns
  367. endif
  368. ifeq ($(BR2_PACKAGE_QT_SCRIPT),y)
  369. QT_LIBS+= qt-script
  370. endif
  371. ifeq ($(BR2_PACKAGE_QT_SCRIPTTOOLS),y)
  372. QT_LIBS+= qt-scripttools
  373. endif
  374. QT_QMAKE_CONF:=$(QT_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QT_EMB_PLATFORM)-g++/qmake.conf
  375. # Variable for other Qt applications to use
  376. QT_QMAKE:=$(STAGING_DIR)/usr/bin/qmake -spec qws/linux-$(BR2_PACKAGE_QT_EMB_PLATFORM)-g++
  377. ################################################################################
  378. # QT_QMAKE_SET -- helper macro to set QMAKE_<variable> = <value> in
  379. # QT_QMAKE_CONF. Will remove existing variable declaration if available.
  380. #
  381. # Argument 1 is the variable name (without QMAKE_)
  382. # Argument 2 is the value to set variable to
  383. #
  384. # E.G. use like this:
  385. # $(call QT_QMAKE_SET,variable,value)
  386. ################################################################################
  387. define QT_QMAKE_SET
  388. $(SED) '/QMAKE_$(1)/d' $(QT_QMAKE_CONF)
  389. $(SED) '/include.*qws.conf/aQMAKE_$(1) = $(2)' $(QT_QMAKE_CONF)
  390. endef
  391. ################################################################################
  392. # QT_INSTALL_PLUGINS -- helper macro to install Qt plugins to target and
  393. # strip them
  394. #
  395. # Argument 1 is the plugin folder
  396. #
  397. # E.G. use like this to install plugins/sqldrivers:
  398. # $(call QT_INSTALL_PLUGINS,sqldrivers)
  399. # ################################################################################
  400. define QT_INSTALL_PLUGINS
  401. if [ -d $(STAGING_DIR)/usr/plugins/$(1) ]; then \
  402. mkdir -p $(TARGET_DIR)/usr/plugins; \
  403. cp -dpfr $(STAGING_DIR)/usr/plugins/$(1) $(TARGET_DIR)/usr/plugins/; \
  404. $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/plugins/$(1)/*; \
  405. fi
  406. endef
  407. $(DL_DIR)/$(QT_SOURCE):
  408. $(call DOWNLOAD,$(QT_SITE),$(QT_SOURCE))
  409. qt-source: $(DL_DIR)/$(QT_SOURCE)
  410. $(QT_TARGET_DIR)/.unpacked: $(DL_DIR)/$(QT_SOURCE)
  411. $(QT_CAT) $(DL_DIR)/$(QT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  412. toolchain/patch-kernel.sh $(QT_TARGET_DIR) package/qt/ \
  413. qt-$(QT_VERSION)-\*.patch \
  414. qt-$(QT_VERSION)-\*.patch.$(ARCH)
  415. touch $@
  416. $(QT_TARGET_DIR)/.configured: $(QT_TARGET_DIR)/.unpacked
  417. -[ -f $(QT_TARGET_DIR)/Makefile ] && $(MAKE) -C $(QT_TARGET_DIR) confclean
  418. ifneq ($(BR2_INET_IPV6),y)
  419. $(SED) 's/^CFG_IPV6=auto/CFG_IPV6=no/' $(QT_TARGET_DIR)/configure
  420. $(SED) 's/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(QT_TARGET_DIR)/configure
  421. endif
  422. # Fix compiler path
  423. $(call QT_QMAKE_SET,CC,$(TARGET_CC))
  424. $(call QT_QMAKE_SET,CXX,$(TARGET_CXX))
  425. $(call QT_QMAKE_SET,LINK,$(TARGET_CXX))
  426. $(call QT_QMAKE_SET,LINK_SHLIB,$(TARGET_CXX))
  427. $(call QT_QMAKE_SET,AR,$(TARGET_AR) cqs)
  428. $(call QT_QMAKE_SET,OBJCOPY,$(TARGET_OBJCOPY))
  429. $(call QT_QMAKE_SET,RANLIB,$(TARGET_RANLIB))
  430. $(call QT_QMAKE_SET,STRIP,$(TARGET_STRIP))
  431. $(call QT_QMAKE_SET,CFLAGS,$(TARGET_CFLAGS))
  432. $(call QT_QMAKE_SET,CXXFLAGS,$(TARGET_CXXFLAGS))
  433. $(call QT_QMAKE_SET,LFLAGS,$(TARGET_LDFLAGS))
  434. -[ -f $(QT_QCONFIG_FILE) ] && cp $(QT_QCONFIG_FILE) \
  435. $(QT_TARGET_DIR)/$(QT_QCONFIG_FILE_LOCATION)
  436. # Don't use TARGET_CONFIGURE_OPTS here, qmake would be compiled for the target
  437. # instead of the host then. So set PKG_CONFIG* manually.
  438. (cd $(QT_TARGET_DIR); \
  439. PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
  440. PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
  441. PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
  442. ./configure \
  443. $(if $(VERBOSE),-verbose,-silent) \
  444. -force-pkg-config \
  445. -embedded $(BR2_PACKAGE_QT_EMB_PLATFORM) \
  446. $(QT_QCONFIG_COMMAND) \
  447. $(QT_CONFIGURE) \
  448. -no-gfx-qnx \
  449. -no-kbd-qnx \
  450. -no-mouse-qnx \
  451. -no-xinerama \
  452. -no-cups \
  453. -no-nis \
  454. -no-accessibility \
  455. -no-separate-debug-info \
  456. -prefix /usr \
  457. -hostprefix $(STAGING_DIR)/usr \
  458. -fast \
  459. -no-rpath \
  460. -nomake examples \
  461. -nomake demos \
  462. )
  463. touch $@
  464. $(QT_TARGET_DIR)/.compiled: $(QT_TARGET_DIR)/.configured
  465. $(MAKE) -C $(QT_TARGET_DIR)
  466. touch $@
  467. $(STAGING_DIR)/usr/lib/libQtCore.la: $(QT_TARGET_DIR)/.compiled
  468. $(MAKE) -C $(QT_TARGET_DIR) install
  469. qt-gui: $(STAGING_DIR)/usr/lib/libQtCore.la
  470. mkdir -p $(TARGET_DIR)/usr/lib/fonts
  471. ifneq ($(QT_FONTS),)
  472. cp -dpf $(QT_FONTS) $(TARGET_DIR)/usr/lib/fonts
  473. endif
  474. ifneq ($(BR2_PACKAGE_QT_NOFREETYPE),y)
  475. cp -dpf $(STAGING_DIR)/usr/lib/fonts/*.ttf $(TARGET_DIR)/usr/lib/fonts
  476. endif
  477. # Install image plugins if they are built
  478. $(call QT_INSTALL_PLUGINS,imageformats)
  479. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  480. cp -dpf $(STAGING_DIR)/usr/lib/libQtGui.so.* $(TARGET_DIR)/usr/lib/
  481. endif
  482. qt-sql: $(STAGING_DIR)/usr/lib/libQtCore.la
  483. $(call QT_INSTALL_PLUGINS,sqldrivers)
  484. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  485. cp -dpf $(STAGING_DIR)/usr/lib/libQtSql.so.* $(TARGET_DIR)/usr/lib/
  486. endif
  487. qt-phonon: $(STAGING_DIR)/usr/lib/libQtCore.la
  488. $(call QT_INSTALL_PLUGINS,phonon_backend)
  489. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  490. cp -dpf $(STAGING_DIR)/usr/lib/libphonon.so.* $(TARGET_DIR)/usr/lib/
  491. endif
  492. qt-svg: $(STAGING_DIR)/usr/lib/libQtCore.la
  493. $(call QT_INSTALL_PLUGINS,iconengines)
  494. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  495. cp -dpf $(STAGING_DIR)/usr/lib/libQtSvg.so.* $(TARGET_DIR)/usr/lib/
  496. endif
  497. qt-network: $(STAGING_DIR)/usr/lib/libQtCore.la
  498. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  499. cp -dpf $(STAGING_DIR)/usr/lib/libQtNetwork.so.* $(TARGET_DIR)/usr/lib/
  500. endif
  501. qt-webkit: $(STAGING_DIR)/usr/lib/libQtCore.la
  502. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  503. cp -dpf $(STAGING_DIR)/usr/lib/libQtWebKit.so.* $(TARGET_DIR)/usr/lib/
  504. endif
  505. qt-xml: $(STAGING_DIR)/usr/lib/libQtCore.la
  506. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  507. cp -dpf $(STAGING_DIR)/usr/lib/libQtXml.so.* $(TARGET_DIR)/usr/lib/
  508. endif
  509. qt-xmlpatterns: $(STAGING_DIR)/usr/lib/libQtCore.la
  510. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  511. cp -dpf $(STAGING_DIR)/usr/lib/libQtXmlPatterns.so.* $(TARGET_DIR)/usr/lib/
  512. endif
  513. qt-dbus: $(STAGING_DIR)/usr/lib/libQtCore.la
  514. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  515. cp -dpf $(STAGING_DIR)/usr/lib/libQtDBus.so.* $(TARGET_DIR)/usr/lib/
  516. endif
  517. qt-script: $(STAGING_DIR)/usr/lib/libQtCore.la
  518. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  519. cp -dpf $(STAGING_DIR)/usr/lib/libQtScript.so.* $(TARGET_DIR)/usr/lib/
  520. endif
  521. qt-scripttools: $(STAGING_DIR)/usr/lib/libQtCore.la
  522. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  523. cp -dpf $(STAGING_DIR)/usr/lib/libQtScriptTools.so.* $(TARGET_DIR)/usr/lib/
  524. endif
  525. $(TARGET_DIR)/usr/lib/libQtCore.so.4: $(STAGING_DIR)/usr/lib/libQtCore.la $(QT_LIBS)
  526. # Strip all installed libs
  527. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  528. cp -dpf $(STAGING_DIR)/usr/lib/libQtCore.so.* $(TARGET_DIR)/usr/lib/
  529. -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libQt*.so.*
  530. endif
  531. qt: $(QT_DEP_LIBS) $(TARGET_DIR)/usr/lib/libQtCore.so.4
  532. qt-clean:
  533. -$(MAKE) -C $(QT_TARGET_DIR) clean
  534. -rm -rf $(TARGET_DIR)/usr/lib/fonts
  535. ifeq ($(BR2_PACKAGE_QT_SHARED),y)
  536. -rm $(TARGET_DIR)/usr/lib/libQt*.so.*
  537. -rm $(TARGET_DIR)/usr/lib/libphonon.so.*
  538. endif
  539. qt-dirclean:
  540. rm -rf $(QT_TARGET_DIR)
  541. #############################################################
  542. #
  543. # Toplevel Makefile options
  544. #
  545. #############################################################
  546. ifeq ($(BR2_PACKAGE_QT),y)
  547. TARGETS+=qt
  548. endif