qt.mk 16 KB

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