comparison src/qt.mk @ 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 30f4b78227af
children 72a348a77be4
comparison
equal deleted inserted replaced
3611:5ab3fc53d7a5 3612:77f953f0ec6d
13 $(PKG)_CONFIGURE_CMD := 13 $(PKG)_CONFIGURE_CMD :=
14 $(PKG)_CONFIGURE_CROSS_COMPILE_OPTION := 14 $(PKG)_CONFIGURE_CROSS_COMPILE_OPTION :=
15 $(PKG)_CONFIGURE_DATABASE_OPTION := 15 $(PKG)_CONFIGURE_DATABASE_OPTION :=
16 $(PKG)_CONFIGURE_ENV := PKG_CONFIG_PATH='$(HOST_PREFIX)/lib/pkgconfig' 16 $(PKG)_CONFIGURE_ENV := PKG_CONFIG_PATH='$(HOST_PREFIX)/lib/pkgconfig'
17 $(PKG)_CONFIGURE_EXTRA_OPTION := 17 $(PKG)_CONFIGURE_EXTRA_OPTION :=
18 $(PKG)_CONFIGURE_INCLUDE_OPTION := '-I$(HOST_INCDIR)/freetype2' 18 $(PKG)_CONFIGURE_INCLUDE_OPTION := -I '$(HOST_INCDIR)/freetype2'
19 $(PKG)_CONFIGURE_LIBPATH_OPTION := 19 $(PKG)_CONFIGURE_LIBPATH_OPTION :=
20 $(PKG)_CONFIGURE_PLATFORM_OPTION := 20 $(PKG)_CONFIGURE_PLATFORM_OPTION :=
21 $(PKG)_PREFIX := $(HOST_PREFIX) 21 $(PKG)_PREFIX := $(HOST_PREFIX)
22 $(PKG)_MKSPECS := $($(PKG)_PREFIX) 22 $(PKG)_MKSPECS := $($(PKG)_PREFIX)
23 $(PKG)_INSTALL_ROOT := $(3)
23 24
24 ifneq ($(filter mingw msvc,$(MXE_SYSTEM)),) 25 ifneq ($(filter mingw msvc,$(MXE_SYSTEM)),)
25 ifeq ($(MXE_NATIVE_BUILD),yes) 26 ifeq ($(MXE_NATIVE_BUILD),yes)
26 ifeq ($(MXE_SYSTEM),msvc) 27 ifeq ($(MXE_SYSTEM),msvc)
27 # NMAKE is perturbed by the values of MAKE and MAKEFLAGS defined by GNU 28 # NMAKE is perturbed by the values of MAKE and MAKEFLAGS defined by GNU
28 # make. These need to be unset even when running configure script, as 29 # make. These need to be unset even when running configure script, as
29 # this will run NMAKE to compile QMAKE. 30 # this will run NMAKE to compile QMAKE.
30 $(PKG)_CONFIGURE_ENV += MAKE= MAKEFLAGS= 31 $(PKG)_CONFIGURE_ENV += MAKE= MAKEFLAGS=
32 else
33 # native mingw doesnt like using install root mixed with prefix
34 # and instead attempts to install to c:\INSTALL_ROOT\prefix
35 # so dont use it if compiling native mingw
36 $(PKG)_INSTALL_ROOT :=
31 endif 37 endif
32 else 38 else
33 $(PKG)_CONFIGURE_ENV := \ 39 $(PKG)_CONFIGURE_ENV := \
34 OPENSSL_LIBS="`'$(MXE_PKG_CONFIG)' --libs-only-l openssl`" \ 40 OPENSSL_LIBS="`'$(MXE_PKG_CONFIG)' --libs-only-l openssl`" \
35 PSQL_LIBS="-lpq -lsecur32 `'$(MXE_PKG_CONFIG)' --libs-only-l openssl` -lws2_32" \ 41 PSQL_LIBS="-lpq -lsecur32 `'$(MXE_PKG_CONFIG)' --libs-only-l openssl` -lws2_32" \
36 SYBASE_LIBS="-lsybdb `'$(MXE_PKG_CONFIG)' --libs-only-l gnutls` -liconv -lws2_32" 42 SYBASE_LIBS="-lsybdb `'$(MXE_PKG_CONFIG)' --libs-only-l gnutls` -liconv -lws2_32"
43 $(PKG)_CONFIGURE_DATABASE_OPTION += -system-sqlite
37 endif 44 endif
38 # compile-in generic ODBC driver under Windows 45 # compile-in generic ODBC driver under Windows
39 $(PKG)_CONFIGURE_DATABASE_OPTION += -plugin-sql-odbc 46 $(PKG)_CONFIGURE_DATABASE_OPTION += -plugin-sql-odbc
40 else 47 else
41 $(PKG)_CONFIGURE_ENV += \ 48 $(PKG)_CONFIGURE_ENV += \
42 LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR)' 49 LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR)'
50 $(PKG)_CONFIGURE_DATABASE_OPTION += -system-sqlite
43 endif 51 endif
44 52
45 ifeq ($(MXE_NATIVE_BUILD),yes) 53 ifeq ($(MXE_NATIVE_BUILD),yes)
46 $(PKG)_CONFIGURE_INCLUDE_OPTION += -I '$(HOST_INCDIR)' 54 $(PKG)_CONFIGURE_INCLUDE_OPTION += -I '$(HOST_INCDIR)'
47 $(PKG)_CONFIGURE_LIBPATH_OPTION += -L '$(HOST_LIBDIR)' 55 $(PKG)_CONFIGURE_LIBPATH_OPTION += -L '$(HOST_LIBDIR)'
56 $(PKG)_CONFIGURE_INCLUDE_OPTION += -I '$(HOST_INCDIR)/dbus-1.0'
57 $(PKG)_CONFIGURE_INCLUDE_OPTION += -I '$(HOST_LIBDIR)/dbus-1.0/include'
48 endif 58 endif
49 59
50 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) 60 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
51 $(PKG)_CONFIGURE_CMD := configure.exe 61 $(PKG)_CONFIGURE_CMD := configure.exe
52 ifeq ($(MXE_SYSTEM),msvc) 62 ifeq ($(MXE_SYSTEM),msvc)
130 $($(PKG)_CONFIGURE_DATABASE_OPTION) \ 140 $($(PKG)_CONFIGURE_DATABASE_OPTION) \
131 -system-zlib \ 141 -system-zlib \
132 -system-libpng \ 142 -system-libpng \
133 -system-libjpeg \ 143 -system-libjpeg \
134 -system-libtiff \ 144 -system-libtiff \
135 -system-libmng \ 145 -system-libmng
136 -system-sqlite
137 146
138 if test x$(MXE_SYSTEM) = xmsvc; then \ 147 if test x$(MXE_SYSTEM) = xmsvc; then \
139 for f in $(1)/mkspecs/win32-msvc*/qmake.conf; do \ 148 for f in $(1)/mkspecs/win32-msvc*/qmake.conf; do \
140 sed -i -e 's/@@LIBRARY_PREFIX@@/$(LIBRARY_PREFIX)/g' \ 149 sed -i -e 's/@@LIBRARY_PREFIX@@/$(LIBRARY_PREFIX)/g' \
141 -e 's/@@LIBRARY_SUFFIX@@/$(LIBRARY_SUFFIX)/g' $$f; \ 150 -e 's/@@LIBRARY_SUFFIX@@/$(LIBRARY_SUFFIX)/g' $$f; \
142 done; \ 151 done; \
143 fi 152 fi
144 153
145 # need to 'install' mkspecs for the native mingw to build during its build 154 # need to 'install' mkspecs for the native mingw to build during its build
155 # also need build tools qmake
146 if [ "$(MXE_NATIVE_MINGW_BUILD)" = yes ]; then \ 156 if [ "$(MXE_NATIVE_MINGW_BUILD)" = yes ]; then \
147 mkdir -p '$($(PKG)_MKSPECS)'; \ 157 mkdir -p '$($(PKG)_MKSPECS)'; \
148 cp -r '$(1)/mkspecs' '$($(PKG)_MKSPECS)'; \ 158 cp -r '$(1)/mkspecs' '$($(PKG)_MKSPECS)'; \
159 $(INSTALL) -m755 '$(1)/bin/qmake.exe' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/'; \
149 fi 160 fi
150 161
151 # compilation under MSVC requires the use of NMAKE, which does not 162 # compilation under MSVC requires the use of NMAKE, which does not
152 # support the -j option flag and is perturbed by GNU make values for 163 # support the -j option flag and is perturbed by GNU make values for
153 # MAKE and MAKEFLAGS; also remove unnecessary DLL installed in lib/ 164 # MAKE and MAKEFLAGS; also remove unnecessary DLL installed in lib/
157 env -u MAKE -u MAKEFLAGS PKG_CONFIG_PATH='$(HOST_PREFIX)/lib/pkgconfig' nmake && \ 168 env -u MAKE -u MAKEFLAGS PKG_CONFIG_PATH='$(HOST_PREFIX)/lib/pkgconfig' nmake && \
158 env -u MAKE -u MAKEFLAGS PKG_CONFIG_PATH='$(HOST_PREFIX)/lib/pkgconfig' nmake \ 169 env -u MAKE -u MAKEFLAGS PKG_CONFIG_PATH='$(HOST_PREFIX)/lib/pkgconfig' nmake \
159 INSTALL_ROOT=`cd $(3) && pwd -W | sed -e 's,^[a-zA-Z]:,,' -e 's,/,\\\\,g'` install && \ 170 INSTALL_ROOT=`cd $(3) && pwd -W | sed -e 's,^[a-zA-Z]:,,' -e 's,/,\\\\,g'` install && \
160 rm -f $(3)$(CMAKE_HOST_PREFIX)/lib/$(LIBRARY_PREFIX)Qt*.dll; \ 171 rm -f $(3)$(CMAKE_HOST_PREFIX)/lib/$(LIBRARY_PREFIX)Qt*.dll; \
161 else \ 172 else \
162 make -C '$(1)' -j '$(JOBS)' && \ 173 make -C '$(1)' -j '$(JOBS)'; \
163 make -C '$(1)' -j 1 install INSTALL_ROOT='$(3)'; \ 174 make -C '$(1)' -j 1 install INSTALL_ROOT=$($(PKG)_INSTALL_ROOT); \
164 if [ "$(MXE_SYSTEM)" = mingw ]; then \ 175 if [ "$(MXE_SYSTEM)" = mingw ]; then \
165 rm -f $(3)$(HOST_LIBDIR)/$(LIBRARY_PREFIX)Qt*$(LIBRARY_SUFFIX).dll; \ 176 rm -f $($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/$(LIBRARY_PREFIX)Qt*$(LIBRARY_SUFFIX).dll; \
166 fi \ 177 fi \
167 fi 178 fi
168 179
169 # native build doesn't seem to succeed when installing pkgconfig files to prefix 180 # native build doesn't seem to succeed when installing pkgconfig files to prefix
170 # in addition, .pc files have the wrong paths, mangled lib names 181 # in addition, .pc files have the wrong paths, mangled lib names
171 if [ "$(MXE_NATIVE_MINGW_BUILD)" = yes -a "$(MXE_SYSTEM)" != msvc ]; then \ 182 if [ "$(MXE_NATIVE_MINGW_BUILD)" = yes -a "$(MXE_SYSTEM)" != msvc ]; then \
172 find $(1)/lib/pkgconfig/*.pc -exec $(SED) -i \ 183 find $(1)/lib/pkgconfig/*.pc -exec $(SED) -i \
173 -e 's,\(.*\)_location=.*,\1_location=$${prefix}/bin/\1,g' \ 184 -e 's,\(.*\)_location=.*,\1_location=$${prefix}/bin/\1,g' \
174 -e 's,\(Libs:.* -l\).*[\\/]\([A-Za-z0-9]*\),\1\2,g' \ 185 -e 's,\(Libs:.* -l\).*[\\/]\([A-Za-z0-9]*\),\1\2,g' \
175 '{}' ';' ; \ 186 '{}' ';' ; \
176 $(INSTALL) -d '$(3)$(HOST_LIBDIR)/pkgconfig'; \ 187 $(INSTALL) -d '$($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/pkgconfig'; \
177 cp -f '$(1)/lib/pkgconfig/'*.pc '$(3)$(HOST_LIBDIR)/pkgconfig/'; \ 188 cp -f '$(1)/lib/pkgconfig/'*.pc '$($(PKG)_INSTALL_ROOT)$(HOST_LIBDIR)/pkgconfig/'; \
178 fi 189 fi
179 190
180 $(if $(filter-out msvc, $(MXE_SYSTEM)), 191 $(if $(filter-out msvc, $(MXE_SYSTEM)),
181 $(if $(filter-out yes, $(MXE_NATIVE_BUILD)), 192 $(if $(filter-out yes, $(MXE_NATIVE_BUILD)),
182 $(INSTALL) -d '$(3)$(BUILD_TOOLS_PREFIX)/bin' 193 $(INSTALL) -d '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin'
183 $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/moc' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)moc' 194 $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/moc' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)moc'
184 $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/rcc' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)rcc' 195 $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/rcc' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)rcc'
185 $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/uic' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)uic' 196 $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/uic' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)uic'
186 $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/qmake' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake' 197 $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/qmake' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)qmake'
187 ) 198 )
188 199
189 # lrelease (from linguist) needed by octave for GUI build 200 # lrelease (from linguist) needed by octave for GUI build
190 $(MAKE) -C '$(1)/tools/linguist/lrelease' -j '$(JOBS)' install INSTALL_ROOT='$(3)' 201 $(MAKE) -C '$(1)/tools/linguist/lrelease' -j '$(JOBS)'
202 $(MAKE) -C '$(1)/tools/linguist/lrelease' -j 1 install INSTALL_ROOT='$($(PKG)_INSTALL_ROOT)'
191 $(if $(filter-out yes, $(MXE_NATIVE_BUILD)), 203 $(if $(filter-out yes, $(MXE_NATIVE_BUILD)),
192 $(INSTALL) -m755 '$(3)$($(PKG)_PREFIX)/bin/lrelease' '$(3)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)lrelease')) 204 $(INSTALL) -m755 '$($(PKG)_INSTALL_ROOT)$($(PKG)_PREFIX)/bin/lrelease' '$($(PKG)_INSTALL_ROOT)$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)lrelease'))
205
193 endef 206 endef