qt.mk 16 KB

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