changeset 3612:77f953f0ec6d

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.
author John Donoghue
date Tue, 10 Jun 2014 11:50:19 -0400
parents 5ab3fc53d7a5
children 62901e283b28
files src/qt.mk
diffstat 1 files changed, 29 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- 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