Mercurial > mxe-octave
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 |