# HG changeset patch # User John Donoghue # Date 1402415419 14400 # Node ID 77f953f0ec6d6e60d547581e0b46826c39bc3842 # Parent 5ab3fc53d7a5eb765399aeb270bbb930f6ee7b8d qt: fix native mingw build * src/qt.mk: fix typo in native mingw -I freetype2 option. Use PKG_INSTALL_ROOT option to provide install root definition. Add sqlite as a PKG_CONFIGURE_DATABASE_OPTION instead of harcoded to configure. Install qmake to build tools if native. diff -r 5ab3fc53d7a5 -r 77f953f0ec6d src/qt.mk --- a/src/qt.mk Tue Jun 10 11:35:10 2014 -0400 +++ b/src/qt.mk Tue Jun 10 11:50:19 2014 -0400 @@ -15,11 +15,12 @@ $(PKG)_CONFIGURE_DATABASE_OPTION := $(PKG)_CONFIGURE_ENV := PKG_CONFIG_PATH='$(HOST_PREFIX)/lib/pkgconfig' $(PKG)_CONFIGURE_EXTRA_OPTION := -$(PKG)_CONFIGURE_INCLUDE_OPTION := '-I$(HOST_INCDIR)/freetype2' +$(PKG)_CONFIGURE_INCLUDE_OPTION := -I '$(HOST_INCDIR)/freetype2' $(PKG)_CONFIGURE_LIBPATH_OPTION := $(PKG)_CONFIGURE_PLATFORM_OPTION := $(PKG)_PREFIX := $(HOST_PREFIX) $(PKG)_MKSPECS := $($(PKG)_PREFIX) +$(PKG)_INSTALL_ROOT := $(3) ifneq ($(filter mingw msvc,$(MXE_SYSTEM)),) ifeq ($(MXE_NATIVE_BUILD),yes) @@ -28,23 +29,32 @@ # make. These need to be unset even when running configure script, as # this will run NMAKE to compile QMAKE. $(PKG)_CONFIGURE_ENV += MAKE= MAKEFLAGS= + else + # native mingw doesnt like using install root mixed with prefix + # and instead attempts to install to c:\INSTALL_ROOT\prefix + # so dont use it if compiling native mingw + $(PKG)_INSTALL_ROOT := endif else $(PKG)_CONFIGURE_ENV := \ OPENSSL_LIBS="`'$(MXE_PKG_CONFIG)' --libs-only-l openssl`" \ PSQL_LIBS="-lpq -lsecur32 `'$(MXE_PKG_CONFIG)' --libs-only-l openssl` -lws2_32" \ - SYBASE_LIBS="-lsybdb `'$(MXE_PKG_CONFIG)' --libs-only-l gnutls` -liconv -lws2_32" + SYBASE_LIBS="-lsybdb `'$(MXE_PKG_CONFIG)' --libs-only-l gnutls` -liconv -lws2_32" + $(PKG)_CONFIGURE_DATABASE_OPTION += -system-sqlite endif # compile-in generic ODBC driver under Windows $(PKG)_CONFIGURE_DATABASE_OPTION += -plugin-sql-odbc else $(PKG)_CONFIGURE_ENV += \ LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR)' + $(PKG)_CONFIGURE_DATABASE_OPTION += -system-sqlite endif ifeq ($(MXE_NATIVE_BUILD),yes) $(PKG)_CONFIGURE_INCLUDE_OPTION += -I '$(HOST_INCDIR)' $(PKG)_CONFIGURE_LIBPATH_OPTION += -L '$(HOST_LIBDIR)' + $(PKG)_CONFIGURE_INCLUDE_OPTION += -I '$(HOST_INCDIR)/dbus-1.0' + $(PKG)_CONFIGURE_INCLUDE_OPTION += -I '$(HOST_LIBDIR)/dbus-1.0/include' endif ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) @@ -132,8 +142,7 @@ -system-libpng \ -system-libjpeg \ -system-libtiff \ - -system-libmng \ - -system-sqlite + -system-libmng if test x$(MXE_SYSTEM) = xmsvc; then \ for f in $(1)/mkspecs/win32-msvc*/qmake.conf; do \ @@ -143,9 +152,11 @@ fi # need to 'install' mkspecs for the native mingw to build during its build + # also need build tools qmake if [ "$(MXE_NATIVE_MINGW_BUILD)" = yes ]; then \ mkdir -p '$($(PKG)_MKSPECS)'; \ cp -r '$(1)/mkspecs' '$($(PKG)_MKSPECS)'; \ + $(INSTALL) -m755 '$(1)/bin/qmake.exe' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/'; \ fi # compilation under MSVC requires the use of NMAKE, which does not @@ -159,10 +170,10 @@ INSTALL_ROOT=`cd $(3) && pwd -W | sed -e 's,^[a-zA-Z]:,,' -e 's,/,\\\\,g'` install && \ rm -f $(3)$(CMAKE_HOST_PREFIX)/lib/$(LIBRARY_PREFIX)Qt*.dll; \ else \ - make -C '$(1)' -j '$(JOBS)' && \ - make -C '$(1)' -j 1 install INSTALL_ROOT='$(3)'; \ + make -C '$(1)' -j '$(JOBS)'; \ + make -C '$(1)' -j 1 install INSTALL_ROOT=$($(PKG)_INSTALL_ROOT); \ if [ "$(MXE_SYSTEM)" = mingw ]; then \ - rm -f $(3)$(HOST_LIBDIR)/$(LIBRARY_PREFIX)Qt*$(LIBRARY_SUFFIX).dll; \ + rm -f $($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/$(LIBRARY_PREFIX)Qt*$(LIBRARY_SUFFIX).dll; \ fi \ fi @@ -173,21 +184,23 @@ -e 's,\(.*\)_location=.*,\1_location=$${prefix}/bin/\1,g' \ -e 's,\(Libs:.* -l\).*[\\/]\([A-Za-z0-9]*\),\1\2,g' \ '{}' ';' ; \ - $(INSTALL) -d '$(3)$(HOST_LIBDIR)/pkgconfig'; \ - cp -f '$(1)/lib/pkgconfig/'*.pc '$(3)$(HOST_LIBDIR)/pkgconfig/'; \ + $(INSTALL) -d '$($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/pkgconfig'; \ + cp -f '$(1)/lib/pkgconfig/'*.pc '$($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/pkgconfig/'; \ fi $(if $(filter-out msvc, $(MXE_SYSTEM)), $(if $(filter-out yes, $(MXE_NATIVE_BUILD)), - $(INSTALL) -d '$(3)$(BUILD_TOOLS_PREFIX)/bin' - $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/moc' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)moc' - $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/rcc' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)rcc' - $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/uic' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)uic' - $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/qmake' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake' + $(INSTALL) -d '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin' + $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/moc' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)moc' + $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/rcc' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)rcc' + $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/uic' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)uic' + $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/qmake' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake' ) # lrelease (from linguist) needed by octave for GUI build - $(MAKE) -C '$(1)/tools/linguist/lrelease' -j '$(JOBS)' install INSTALL_ROOT='$(3)' + $(MAKE) -C '$(1)/tools/linguist/lrelease' -j '$(JOBS)' + $(MAKE) -C '$(1)/tools/linguist/lrelease' -j 1 install INSTALL_ROOT='$($(PKG)_INSTALL_ROOT)' $(if $(filter-out yes, $(MXE_NATIVE_BUILD)), - $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/lrelease' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)lrelease')) + $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/lrelease' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)lrelease')) + endef