Changeset 22455


Ignore:
Timestamp:
2010-08-01T17:53:32+02:00 (7 years ago)
Author:
mirko
Message:

qt4: heavily cleanup Makefile and add a generic way for configuring projects using qmake

Location:
packages/Xorg/lib/qt4
Files:
4 added
1 edited

Legend:

Unmodified
Added
Removed
  • packages/Xorg/lib/qt4/Makefile

    r22300 r22455  
    77 
    88# TODO: 
    9 #  - handle software which uses qmake in a more generic way (move functionality / generic qmake-config into buildroot) 
    10 #  - use generic qmake, moc, etc. executables since building them within the qt stack will get redundant and annyoing when other sw will need them as well 
    119#  - test/add X11/xcb support 
    1210#  - handle plugins in a granular way (find out which packages should provide which plugins) 
     
    4644define Package/qt4 
    4745  $(call Package/qt4/Default) 
    48   DEPENDS:=@FEATURE_drawing-backend_DirectFB +FEATURE_drawing-backend_DirectFB:directfb +zlib +libstdcpp +libsqlite3 # require directfb for now, as other systems (libX11, xcb) are untested 
     46  DEPENDS:=@FEATURE_drawing-backend_DirectFB +FEATURE_drawing-backend_DirectFB:directfb +zlib +libstdcpp +libsqlite3 +tslib # require directfb for now, as other systems (libX11, xcb) are untested 
    4947endef 
    5048 
     
    179177endef 
    180178 
    181 TARGET_CFLAGS+="-I$(STAGING_DIR)/usr/include/freetype2 -I$(PKG_BUILD_DIR)/include" 
     179TARGET_INCDIRS+=$(STAGING_DIR)/include $(STAGING_DIR)/usr/include $(TOOLCHAIN_DIR)/include $(TOOLCHAIN_DIR)/usr/include 
     180TARGET_LIBDIRS+=$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib $(TOOLCHAIN_DIR)/lib $(TOOLCHAIN_DIR)/usr/lib 
     181TARGET_LDFLAGS+=-Wl,-rpath-link=$(STAGING_DIR)/usr/lib,-rpath-link=$(PKG_BUILD_DIR)/lib 
     182TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/freetype2 -I$(PKG_BUILD_DIR)/include 
    182183 
    183184define Build/Configure 
     
    188189        #  do not use fontconfig as it doesn't work anyway for qte 
    189190        #  bindir: bindir is where the host tools (qmake, moc, rcc, uic) will get installed into - they are just used on the host and not goig to be packaged 
    190         ( \ 
    191                 cd $(PKG_BUILD_DIR); \ 
    192                 QPATH='mkspecs/qws/linux-openwrt-g++' ; \ 
    193                 mkdir $$$$QPATH ; \ 
    194                 echo '#include "../../linux-g++/qplatformdefs.h"' \ 
    195                         >> $$$$QPATH/qplatformdefs.h ; \ 
    196                 echo 'include(../../common/g++.conf)' \ 
    197                         >> $$$$QPATH/qmake.conf ; \ 
    198                 echo 'include(../../common/linux.conf)' \ 
    199                         >> $$$$QPATH/qmake.conf ; \ 
    200                 echo 'include(../../common/qws.conf)' \ 
    201                         >> $$$$QPATH/qmake.conf ; \ 
    202                 echo "QMAKE_CC                  = $(TARGET_CC)" \ 
    203                         >> $$$$QPATH/qmake.conf ; \ 
    204                 echo "QMAKE_CXX                 = $(TARGET_CXX)" \ 
    205                         >> $$$$QPATH/qmake.conf ; \ 
    206                 echo "QMAKE_AR                  = $(TARGET_CROSS)ar cqs" \ 
    207                         >> $$$$QPATH/qmake.conf ; \ 
    208                 echo "QMAKE_OBJCOPY             = $(TARGET_CROSS)objcopy" \ 
    209                         >> $$$$QPATH/qmake.conf ; \ 
    210                 echo "QMAKE_RANLIB              = $(TARGET_CROSS)ranlib" \ 
    211                         >> $$$$QPATH/qmake.conf ; \ 
    212                 echo "QMAKE_CFLAGS              = $(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ 
    213                         >> $$$$QPATH/qmake.conf ; \ 
    214                 echo "QMAKE_CXXFLAGS            = $(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ 
    215                         >> $$$$QPATH/qmake.conf ; \ 
    216                 echo "QMAKE_LINK                = $(TARGET_CXX)" \ 
    217                         >> $$$$QPATH/qmake.conf ; \ 
    218                 echo "QMAKE_LINK_SHLIB          = $(TARGET_CXX)" \ 
    219                         >> $$$$QPATH/qmake.conf ; \ 
    220                 echo "QMAKE_LINK_C              = $(TARGET_CC)" \ 
    221                         >> $$$$QPATH/qmake.conf ; \ 
    222                 echo "QMAKE_LINK_C_SHLIB        = $(TARGET_CC)" \ 
    223                         >> $$$$QPATH/qmake.conf ; \ 
    224                 echo "QMAKE_LFLAGS              = -L$(PKG_BUILD_DIR)/lib $(TARGET_LDFLAGS) -Wl,-rpath-link=$(STAGING_DIR)/usr/lib" \ 
    225                         >> $$$$QPATH/qmake.conf ; \ 
    226                 echo "QMAKE_STRIP               = : " \ 
    227                         >> $$$$QPATH/qmake.conf ; \ 
    228                 echo "QMAKE_STRIPFLAGS_LIB      = " \ 
    229                         >> $$$$QPATH/qmake.conf ; \ 
    230                 echo 'load(qt_config)' \ 
    231                         >> $$$$QPATH/qmake.conf ; \ 
    232                 echo yes | ./configure \ 
     191        mkdir -p $(PKG_BUILD_DIR)/mkspecs/qws/linux-openwrt-g++ 
     192        cp -a ./files/{qmake.conf,qplatformdefs.h} $(PKG_BUILD_DIR)/mkspecs/qws/linux-openwrt-g++/ 
     193        ( cd $(PKG_BUILD_DIR) ; \ 
     194                TARGET_CC="$(TARGET_CROSS)gcc" \ 
     195                TARGET_CXX="$(TARGET_CROSS)g++" \ 
     196                TARGET_AR="$(TARGET_CROSS)ar cqs" \ 
     197                TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ 
     198                TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ 
     199                TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ 
     200                TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ 
     201                TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \ 
     202                TARGET_INCDIRS="$(TARGET_INCDIRS)" \ 
     203                TARGET_LIBDIRS="$(TARGET_LIBDIRS)" \ 
     204                STAGING_DIR="$(STAGING_DIR)" \ 
     205                STAGING_DIR_HOST="$(STAGING_DIR)/../host" \ 
     206                ./configure \ 
    233207                        -prefix $(CONFIGURE_PREFIX) \ 
    234208                        -bindir $(CONFIGURE_PREFIX)/bin \ 
     
    246220                        -nomake docs \ 
    247221                        -nomake translations \ 
    248                         -embedded openwrt \ 
     222                        -xplatform qws/linux-openwrt-g++ \ 
    249223                        -platform linux-g++ \ 
     224                        -embedded \ 
    250225                        -release \ 
     226                        -confirm-license \ 
    251227                        -opensource \ 
    252228                        -no-mmx \ 
     
    300276                        -no-glib \ 
    301277                        -qt3support \ 
    302                         -qt-gfx-directfb \ 
    303                         -qt-gfx-linuxfb \ 
     278                        -no-gfx-transformed \ 
     279                        -no-gfx-qvfb \ 
     280                        -no-gfx-vnc \ 
    304281                        -no-gfx-multiscreen \ 
     282                        -no-gfx-qnx \ 
     283                        -plugin-gfx-directfb \ 
     284                        -plugin-gfx-linuxfb \ 
     285                        -no-mouse-qvfb \ 
     286                        -no-mouse-qnx \ 
     287                        -qt-mouse-linuxinput \ 
     288                        -plugin-mouse-linuxtp \ 
     289                        -plugin-mouse-pc \ 
     290                        -plugin-mouse-tslib \ 
     291                        -no-kbd-qvfb \ 
     292                        -no-kbd-qnx \ 
     293                        -qt-kbd-tty \ 
     294                        -plugin-kbd-linuxinput \ 
    305295        ) 
    306296endef 
     
    308298define Build/Compile 
    309299        # just passing <make install> results in not building 3rdparty/webkit/JavaScriptCore 
     300        # unfortunately in this particular case, <make> makes further <qmake> calls, therewith 
     301        #  uses the qmake.conf which needs get the cross-compiling vars passed once again 
     302        TARGET_CC="$(TARGET_CROSS)gcc" \ 
     303        TARGET_CXX="$(TARGET_CROSS)g++" \ 
     304        TARGET_AR="$(TARGET_CROSS)ar cqs" \ 
     305        TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ 
     306        TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ 
     307        TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ 
     308        TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ 
     309        TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \ 
     310        TARGET_INCDIRS="$(TARGET_INCDIRS)" \ 
     311        TARGET_LIBDIRS="$(TARGET_LIBDIRS)" \ 
     312        STAGING_DIR="$(STAGING_DIR)" \ 
     313        STAGING_DIR_HOST="$(STAGING_DIR)/../host" \ 
    310314        $(MAKE) -C $(PKG_BUILD_DIR) 
    311315        INSTALL_ROOT=$(PKG_INSTALL_DIR) \ 
     
    323327 
    324328        $(INSTALL_DIR) \ 
     329                $(1)/mk \ 
    325330                $(1)/usr/share/mkspecs \ 
    326331                $(1)/usr/lib/pkgconfig \ 
     
    328333                $(1)/usr/include \ 
    329334                $(1)/usr/lib/Qt/plugins 
     335 
     336        $(CP) \ 
     337                ./files/qmake.mk \ 
     338                $(1)/mk/ 
    330339 
    331340        $(CP) \ 
Note: See TracChangeset for help on using the changeset viewer.