qt/qt.spec

Fri, 15 Oct 2010 18:58:09 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 15 Oct 2010 18:58:09 +0200
changeset 262
495dc52debb0
parent 259
a6252f20c559
child 263
f4a0b439d0fb
permissions
-rw-r--r--

Correct grammar, add missing space.

michael@1 1 ##
michael@1 2 ## qt.spec -- OpenPKG RPM Specification
michael@257 3 ## Copyright (c) 2010 Michael Schloh von Bennewitz <michael@schloh.com>
michael@1 4 ##
michael@1 5 ## Permission to use, copy, modify, and distribute this software for
michael@1 6 ## any purpose with or without fee is hereby granted, provided that
michael@1 7 ## the above copyright notice and this permission notice appear in all
michael@1 8 ## copies.
michael@1 9 ##
michael@1 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@1 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@1 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@1 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@1 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@1 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@1 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@1 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@1 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@1 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@1 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@1 21 ## SUCH DAMAGE.
michael@1 22 ##
michael@1 23
michael@86 24 # FIXME: MSvB: It appears that bugs in current versions of binutils
michael@86 25 # FIXME: MSvB: fail to properly link Qt object code, resulting in
michael@86 26 # FIXME: MSvB: 'ld: libQt*.so: pthread_mutex...: invalid version 6
michael@86 27 # FIXME: MSvB: libQt*.so: could not read symbols: Bad value'
michael@86 28 # FIXME: MSvB: The effects of these bugs are platform dependent.
michael@86 29 # FIXME: MSvB: Solaris 11 IA-32 builds fail while Linux 2.6.25.18
michael@86 30 # FIXME: MSvB: AMD64 builds succeed.
michael@206 31 # FIXME: MSvB:
michael@257 32 # FIXME: MSvB: -no-webkit added to broken static buildconf
michael@258 33 # FIXME: MSvB: as work around for 'ld: cannot find -ljscore'
michael@1 34
michael@1 35 # package information
michael@1 36 Name: qt
michael@213 37 Summary: Cross Platform Application Framework
michael@1 38 URL: http://www.trolltech.com/products/qt/
michael@1 39 Vendor: Nokia Corporation
michael@1 40 Packager: Michael Schloh von Bennewitz
michael@1 41 Distribution: MSvB Recherche Production
michael@1 42 Class: EVAL
michael@1 43 Group: Development
michael@1 44 License: GPL
michael@257 45 Version: 4.7.0
michael@259 46 Release: 20101010
michael@1 47
michael@1 48 # build options
michael@1 49 %option with_tools yes
michael@65 50 %option with_mysql no
michael@65 51 %option with_pgsql no
michael@1 52 %option with_shared no
michael@1 53 %option with_examples no
michael@1 54
michael@1 55 # list of sources
michael@257 56 Source0: ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-%{version}.tar.gz
michael@1 57
michael@1 58 # build information
michael@1 59 Prefix: %{l_prefix}
michael@1 60 BuildRoot: %{l_buildroot}
michael@4 61 BuildPreReq: OpenPKG, openpkg >= 20050726, make, gcc, pkgconfig
michael@1 62 PreReq: OpenPKG, openpkg >= 20050726
michael@1 63 BuildPreReq: X11, png, mng, jpeg, tiff, mesa, xrender
michael@1 64 PreReq: X11, png, mng, jpeg, tiff, mesa, xrender
michael@3 65 BuildPreReq: openssl, zlib, libiconv, sqlite, dbus
michael@3 66 PreReq: openssl, zlib, libiconv, sqlite, dbus
michael@1 67 BuildPreReq: fontconfig, freetype
michael@1 68 PreReq: fontconfig, freetype
michael@65 69 %if "%{with_mysql}" == "yes"
michael@65 70 BuildPreReq: mysql
michael@65 71 PreReq: mysql
michael@65 72 %endif
michael@65 73 %if "%{with_pgsql}" == "yes"
michael@65 74 BuildPreReq: postgresql
michael@65 75 PreReq: postgresql
michael@65 76 %endif
michael@1 77 AutoReq: no
michael@1 78 AutoReqProv: no
michael@1 79 Provides: QTSDK
michael@1 80
michael@1 81 %description
michael@3 82 Qt is a comprehensive C++ framework for cross-platform application
michael@3 83 development. Using Qt, you can develop applications and user
michael@3 84 interfaces once, and deploy them across many desktop and embedded
michael@86 85 operating systems without rewriting the source code. This package
michael@86 86 distribution builds all modules of the Qt/X11 Open Source Edition.
michael@1 87
michael@1 88 %track
michael@1 89 prog qt = {
michael@1 90 version = %{version}
michael@1 91 url = ftp://ftp.trolltech.com/qt/source/
michael@257 92 regex = qt-everywhere-opensource-src-(__VER__)\.tar\.gz
michael@1 93 }
michael@1 94
michael@1 95 %prep
michael@1 96 # announce exceptional build requirements
michael@257 97 ( echo "This package has exceptional build requirements:"
michael@1 98 echo " qt-%{version}-root (2,5 Go)"
michael@257 99 echo " qt-everywhere-opensource-src-%{version} (4,5 Go)"
michael@1 100 echo " qt-%{version}-<date>.<arch>-<os>-<tag>.rpm (1 Go)"
michael@1 101 echo "Building with no options takes 0,5 hours on a dual core"
michael@3 102 echo "2 GHz CPU, or 2 hours with all build options enabled."
michael@1 103 ) | %{l_rpmtool} msg -b -t notice
michael@1 104
michael@257 105 %setup -q -n qt-everywhere-opensource-src-%{version}
michael@1 106 x11_incdir=`%{l_rc} --query x11_incdir`
michael@1 107 x11_libdir=`%{l_rc} --query x11_libdir`
michael@92 108 fontconflibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig`
michael@257 109 lcmslibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static lcms`
michael@92 110 openssllibs=`%{l_prefix}/bin/pkg-config --libs --static openssl`
michael@92 111
michael@1 112 loclibs=''
michael@1 113 case "%{l_platform -t}" in
michael@1 114 *-sunos* )
michael@1 115 loclibs='-lsocket -lnsl'
michael@1 116 ;;
michael@1 117 esac
michael@1 118 ( cd mkspecs/qws
michael@1 119 for plat in freebsd-generic-g++ macx-generic-g++ solaris-generic-g++;
michael@1 120 do
michael@1 121 ln -s $plat `echo $plat | %{l_shtool} subst -e 's;\(.*\)-generic-\(.*\);\1-x86-\2;'`
michael@1 122 done
michael@1 123 ) || exit $?
michael@1 124 %{l_shtool} subst \
michael@92 125 -e 's;\(-z[\t ][\t ]*\)\([^\t \"][^\t \"]*\);\1"\2";g' \
michael@1 126 configure
michael@1 127 %{l_shtool} subst \
michael@257 128 -e 's; *QMakeVar set QMAKE_CFLAGS_X11.*QT_CFLAGS_FONTCONFIG.*;;' \
michael@257 129 -e 's; *QMakeVar set QMAKE_LIBS_X11.*QT_LIBS_FONTCONFIG.*;;' \
michael@92 130 configure
michael@92 131 %{l_shtool} subst \
michael@92 132 -e "s;\(OPENSSL_LIBS *=\) *-lssl -lcrypto;\1 $openssllibs;" \
michael@1 133 configure
michael@1 134 %{l_shtool} subst \
michael@1 135 -e 's;-silent|;-rpath|-silent|;' \
michael@1 136 -e 's;\(RPATH_FLAGS="\)\\"\$QT_INSTALL_LIBS\\" \($RPATH_FLAGS"\);\1\2;' \
michael@1 137 -e "s;\(echo.*QMAKE_RPATHDIR +=\).*\$QT_INSTALL_LIBS\\\\\"\\\";\1 $x11_libdir\";" \
michael@1 138 configure
michael@257 139 # yes this is needed several times to catch nested occurences of '--cflags'
michael@257 140 %{l_shtool} subst \
michael@257 141 -e 's;\(QT_CFLAGS_[^=][^=]*=.*PKG_CONFIG.*\) --cflags ;\1 --cflags-only-other ;g' \
michael@257 142 -e 's;\(QT_CFLAGS_[^=][^=]*=.*PKG_CONFIG.*\) --cflags ;\1 --cflags-only-other ;g' \
michael@257 143 configure
michael@1 144 %{l_shtool} subst \
michael@1 145 -e 's;\(TRY_INCLUDEPATHS = \).*\(\$\$INCLUDEPATH\);\1\2;' \
michael@1 146 -e 's;/freetype2;/freetype;' \
michael@1 147 config.tests/unix/freetype/freetype.pri
michael@1 148 %{l_shtool} subst \
michael@257 149 -e "s;\(LIBS.*=.*-lmng\);\1 $lcmslibs;" \
michael@257 150 src/gui/image/qmnghandler.pri
michael@257 151 %{l_shtool} subst \
michael@92 152 -e "s;^\(LIBS += \)-lfreetype -lfontconfig;\1$fontconflibs;" \
michael@1 153 config.tests/x11/fontconfig/fontconfig.pro
michael@213 154 echo 'INCLUDEPATH += /usr/include/wacomcfg' \
michael@213 155 >>src/gui/kernel/x11.pri
michael@257 156 echo "contains(QT_CONFIG, fontconfig) { LIBS += $fontconflibs }" \
michael@257 157 >>src/gui/kernel/x11.pri
michael@257 158 echo "contains(QT_CONFIG, fontconfig) { LIBS += $fontconflibs }" \
michael@257 159 >>src/gui/text/text.pri
michael@257 160 echo "INCLUDEPATH = `%{l_prefix}/bin/pkg-config --cflags-only-I dbus-1 | %{l_shtool} subst -e 's;\-I;;g'`" \
michael@257 161 >>config.tests/unix/dbus/dbus.pro
michael@257 162 echo "LIBS = `%{l_prefix}/bin/pkg-config --libs-only-l --static dbus-1`" \
michael@257 163 >>config.tests/unix/dbus/dbus.pro
michael@1 164 %{l_shtool} subst \
michael@257 165 -e "s;\(LIBS.*= -lpq\);\1 `%{l_prefix}/bin/pg_config --libs` $loclibs;" \
michael@1 166 config.tests/unix/psql/psql.pro
michael@1 167 %{l_shtool} subst \
michael@257 168 -e 's;^mac[^:][^:]*:\(LIBS\);\1;' \
michael@1 169 config.tests/unix/iconv/iconv.pro
michael@257 170 uiclibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig lcms`
michael@1 171 %{l_shtool} subst \
michael@65 172 -e 's;LIBS .*= -lpq$;LIBS += -lpq -lssl -lcrypto;' \
michael@65 173 src/sql/drivers/drivers.pri
michael@65 174 %{l_shtool} subst \
michael@86 175 -e "s;QMAKE_CXXFLAGS += \$\$QT_CFLAGS_GLIB;INCPATH += `pkg-config --cflags-only-I glib-2.0 gthread-2.0 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
michael@86 176 src/corelib/kernel/kernel.pri \
michael@86 177 src/gui/kernel/kernel.pri
michael@86 178 %{l_shtool} subst \
michael@86 179 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_PSQL;INCPATH += `pg_config --includedir 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
michael@86 180 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_MYSQL;INCPATH += `mysql_config --include 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
michael@86 181 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_SQLITE;INCPATH += `pkg-config --cflags-only-I sqlite3 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
michael@257 182 -e 's;!static:\(!isEmpty(QT_LFLAGS_PSQL)\);\1;' \
michael@257 183 -e 's;!static:\(LIBS \*= \$\$QT_LFLAGS_PSQL\);\1;' \
michael@92 184 src/plugins/sqldrivers/mysql/mysql.pro \
michael@92 185 src/plugins/sqldrivers/psql/psql.pro \
michael@92 186 src/plugins/sqldrivers/sqlite/sqlite.pro \
michael@86 187 src/sql/drivers/drivers.pri
michael@86 188 %{l_shtool} subst \
michael@86 189 -e "s;QMAKE_CXXFLAGS += \$\$QT_CFLAGS_DBUS;INCPATH += `pkg-config --cflags-only-I dbus-1 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
michael@86 190 src/dbus/dbus.pro
michael@86 191 %{l_shtool} subst \
michael@1 192 -e 's;^\(QMAKE_INCDIR[^a-zA-Z0-9=]*=\).*;\1 %{l_prefix}/include;' \
michael@1 193 -e 's;^\(QMAKE_LIBDIR[^a-zA-Z0-9=]*=\).*;\1 %{l_prefix}/lib;' \
michael@1 194 -e "s;^\(QMAKE_INCDIR_OPENGL[^=]*=\) *\(.*\);\1 %{l_prefix}/include \2;" \
michael@86 195 -e "s;^\(QMAKE_LIBDIR_OPENGL[^=]*=\) *\(.*\);\1 %{l_prefix}/lib \2;" \
michael@1 196 -e 's;^\(QMAKE_LFLAGS_RELEASE.*\);\1 -s;' \
michael@1 197 mkspecs/qws/*/qmake.conf \
michael@1 198 mkspecs/*/*.conf
michael@1 199 %{l_shtool} subst \
michael@3 200 -e 's;^\(QMAKE_LIBS +=.*\);\1 -liconv;' \
michael@3 201 src/corelib/corelib.pro
michael@3 202 %{l_shtool} subst \
michael@86 203 -e "s;^\(QMAKE_INCDIR_X11[^=]*=\).*;\1 %{l_prefix}/include $x11_incdir;" \
michael@86 204 -e "s;^\(QMAKE_LIBDIR_X11[^=]*=\).*;\1 %{l_prefix}/lib $x11_libdir;" \
michael@1 205 mkspecs/qws/solaris*/qmake.conf \
michael@1 206 mkspecs/solaris*/qmake.conf
michael@1 207 %{l_shtool} subst \
michael@1 208 -e 's; *\.\./3rdparty/freetype/.*;;g' \
michael@1 209 -e 's;^\( *contains(QT_CONFIG, freetype) {\);\1 LIBS += -lfreetype;' \
michael@1 210 src/gui/text/text.pri
michael@1 211 %{l_shtool} subst \
michael@1 212 -e 's;\(#include *"\)\(tiffio.h"\);\1tiff/\2;' \
michael@257 213 src/gui/image/qtiffhandler.cpp
michael@92 214 %{l_shtool} subst \
michael@92 215 -e 's;\(CONFIG[\t ]*+=[\t ]*qt\);\1 x11;' \
michael@92 216 tools/qtconfig/qtconfig.pro
michael@1 217 # for projfile in `find examples/ -name '*.pro' -print`; do
michael@1 218 # echo 'CONFIG += release' >>$projfile
michael@1 219 # done
michael@1 220
michael@1 221 %build
michael@1 222 # protect against sloppy code inclusion of all unused subprojects
michael@257 223 (cd src/3rdparty && rm -rf [^cdehjmswxz]* sql* win* zlib zlib.pri) || exit $?
michael@1 224
michael@92 225 # detect which platform for which to build
michael@1 226 case "%{l_platform -t}" in
michael@86 227 sun4[uv]-sunos* | amd64-sunos* ) platcomp="solaris-g++-64" ;;
michael@86 228 i?86-sunos* ) platcomp="solaris-g++" ;;
michael@86 229 amd64-linux* ) platcomp="linux-g++-64" ;;
michael@86 230 i?86-linux* ) platcomp="linux-g++" ;;
michael@86 231 amd64-freebsd* | i?86-freebsd* ) platcomp="freebsd-g++" ;;
michael@86 232 *-aix* ) platcomp="aix-g++" ;;
michael@86 233 *-darwin* ) platcomp="macx-g++" ;;
michael@86 234 *-hpux* ) platcomp="hpux-g++" ;;
michael@86 235 *-irix* ) platcomp="irix-g++" ;;
michael@86 236 * ) echo "Platform '%{l_platform -t}' is not supported." 2>&1; exit 1 ;;
michael@1 237 esac
michael@1 238
michael@92 239 # detect which architecture extensions are available
michael@92 240 archflags=''
michael@92 241 case "%{l_platform -t}" in
michael@92 242 amd64-* )
michael@92 243 break
michael@92 244 ;;
michael@92 245 * )
michael@92 246 archflags='-no-sse2 -no-3dnow'
michael@92 247 ;;
michael@92 248 esac
michael@92 249
michael@1 250 %if "%{with_shared}" == "yes"
michael@1 251 # optional shared build (precedes mandatory static build)
michael@1 252 echo 'yes' | ./configure \
michael@92 253 $archflags \
michael@205 254 -opensource \
michael@1 255 -prefix %{l_prefix} \
michael@1 256 -bindir %{l_prefix}/bin \
michael@1 257 -libdir %{l_prefix}/lib/qt \
michael@1 258 -docdir %{l_prefix}/share/qt/doc \
michael@1 259 -headerdir %{l_prefix}/include \
michael@86 260 -plugindir %{l_prefix}/lib/qt/plugins \
michael@1 261 -datadir %{l_prefix}/share/qt \
michael@1 262 -translationdir %{l_prefix}/share/qt/translations \
michael@1 263 -sysconfdir %{l_prefix}/etc/qt \
michael@1 264 -examplesdir %{l_prefix}/share/qt/examples \
michael@1 265 -demosdir %{l_prefix}/share/qt/demos \
michael@1 266 -release \
michael@1 267 -shared \
michael@1 268 -platform $platcomp \
michael@1 269 -no-sql-ibase \
michael@65 270 %if "%{with_mysql}" == "yes"
michael@3 271 -qt-sql-mysql \
michael@86 272 -plugin-sql-mysql \
michael@65 273 %else
michael@65 274 -no-sql-mysql \
michael@65 275 %endif
michael@65 276 %if "%{with_pgsql}" == "yes"
michael@65 277 -qt-sql-psql \
michael@86 278 -plugin-sql-psql \
michael@65 279 %else
michael@65 280 -no-sql-psql \
michael@65 281 %endif
michael@1 282 -no-sql-odbc \
michael@65 283 -system-sqlite \
michael@65 284 -qt-sql-sqlite \
michael@86 285 -plugin-sql-sqlite \
michael@1 286 -no-sql-sqlite2 \
michael@3 287 -openssl-linked \
michael@1 288 -xmlpatterns \
michael@1 289 -svg \
michael@215 290 -webkit \
michael@1 291 -system-zlib \
michael@1 292 -qt-gif \
michael@1 293 -system-libpng \
michael@1 294 -system-libmng \
michael@1 295 -system-libjpeg \
michael@1 296 -system-libtiff \
michael@1 297 -rpath \
michael@1 298 -no-cups \
michael@257 299 -iconv \
michael@1 300 -pch \
michael@1 301 -dbus-linked \
michael@1 302 -opengl \
michael@1 303 -xrender \
michael@1 304 -fontconfig \
michael@1 305 -freetype \
michael@3 306 -no-glib
michael@1 307
michael@86 308 # default options are implicitly used, for example...
michael@1 309 #-no-fast -exceptions -accessibility -stl -qt3support -nis
michael@1 310 #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb
michael@1 311
michael@1 312 # carry out shared build procedure
michael@1 313 ( cd src
michael@1 314 %{l_make} %{l_mflags -O} \
michael@215 315 sub-moc sub-rcc sub-uic sub-uic3
michael@1 316 ) || exit $?
michael@257 317 %{l_make} %{l_mflags -O} \
michael@257 318 sub-corelib-make_default-ordered \
michael@257 319 sub-xml-make_default-ordered \
michael@257 320 sub-network-make_default-ordered \
michael@257 321 sub-sql-make_default-ordered \
michael@257 322 sub-testlib-make_default-ordered \
michael@257 323 sub-dbus-make_default-ordered \
michael@257 324 sub-gui-make_default-ordered \
michael@257 325 sub-qt3support-make_default-ordered \
michael@257 326 sub-opengl-make_default-ordered \
michael@257 327 sub-xmlpatterns-make_default-ordered \
michael@257 328 sub-multimedia-make_default-ordered \
michael@257 329 sub-svg-make_default-ordered \
michael@257 330 sub-script-make_default-ordered \
michael@257 331 sub-declarative-make_default-ordered \
michael@257 332 sub-javascriptcore-make_default-ordered \
michael@257 333 sub-webkit-make_default-ordered \
michael@257 334 sub-scripttools-make_default-ordered \
michael@257 335 sub-plugins-make_default-ordered \
michael@257 336 sub-imports-make_default-ordered \
michael@257 337 sub-webkitdeclarative-make_default-ordered \
michael@257 338 sub-translations-make_default-ordered
michael@205 339
michael@205 340 # arthur plugin requires libQtDesigner
michael@92 341 ( cd demos
michael@205 342 ( cd ../tools/designer/src/lib
michael@205 343 %{l_make} %{l_mflags -O} staticlib
michael@205 344 ) || exit $?
michael@92 345 %{l_make} %{l_mflags -O} sub-arthurplugin
michael@205 346 ( cd ../tools/designer/src/lib
michael@205 347 %{l_make} %{l_mflags -O} distclean
michael@205 348 ) || exit $?
michael@92 349 ) || exit $?
michael@1 350
michael@1 351 # cache shared libs and initialize the build configuration, which
michael@1 352 # would otherwise still contain references to our shared libs build
michael@1 353 %{l_shtool} mkdir -f -p -m 755 dynamic
michael@1 354 mv lib/* dynamic/
michael@257 355 %{l_make} %{l_mflags} confclean
michael@1 356 %endif
michael@1 357
michael@1 358 # mandatory static build (follows optional shared build)
michael@1 359 echo 'yes' | ./configure \
michael@92 360 $archflags \
michael@205 361 -opensource \
michael@1 362 -prefix %{l_prefix} \
michael@1 363 -bindir %{l_prefix}/bin \
michael@1 364 -libdir %{l_prefix}/lib \
michael@1 365 -docdir %{l_prefix}/share/qt/doc \
michael@1 366 -headerdir %{l_prefix}/include \
michael@86 367 -plugindir %{l_prefix}/lib/qt/plugins \
michael@1 368 -datadir %{l_prefix}/share/qt \
michael@1 369 -translationdir %{l_prefix}/share/qt/translations \
michael@1 370 -sysconfdir %{l_prefix}/etc/qt \
michael@1 371 -examplesdir %{l_prefix}/share/qt/examples \
michael@1 372 -demosdir %{l_prefix}/share/qt/demos \
michael@1 373 -release \
michael@1 374 -static \
michael@1 375 -platform $platcomp \
michael@1 376 -no-sql-ibase \
michael@65 377 %if "%{with_mysql}" == "yes"
michael@3 378 -qt-sql-mysql \
michael@65 379 %else
michael@65 380 -no-sql-mysql \
michael@65 381 %endif
michael@65 382 %if "%{with_pgsql}" == "yes"
michael@65 383 -qt-sql-psql \
michael@65 384 %else
michael@65 385 -no-sql-psql \
michael@65 386 %endif
michael@1 387 -no-sql-odbc \
michael@65 388 -system-sqlite \
michael@65 389 -qt-sql-sqlite \
michael@1 390 -no-sql-sqlite2 \
michael@3 391 -openssl-linked \
michael@1 392 -xmlpatterns \
michael@1 393 -svg \
michael@257 394 -no-webkit \
michael@1 395 -system-zlib \
michael@1 396 -qt-gif \
michael@1 397 -system-libpng \
michael@1 398 -system-libmng \
michael@1 399 -system-libjpeg \
michael@1 400 -system-libtiff \
michael@1 401 -rpath \
michael@1 402 -no-cups \
michael@257 403 -iconv \
michael@1 404 -pch \
michael@1 405 -dbus-linked \
michael@1 406 -opengl \
michael@1 407 -xrender \
michael@1 408 -fontconfig \
michael@1 409 -freetype \
michael@3 410 -no-glib
michael@1 411
michael@86 412 # default options are implicitly used, for example...
michael@1 413 #-no-fast -exceptions -accessibility -stl -qt3support -nis
michael@1 414 #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb
michael@1 415
michael@1 416 # carry out static build procedure
michael@258 417 %{l_make} %{l_mflags -O} sub-src
michael@1 418 %if "%{with_tools}" == "yes"
michael@258 419 %{l_make} %{l_mflags -O} \
michael@258 420 sub-tools-make_default-ordered sub-translations-make_default-ordered
michael@1 421 %endif
michael@1 422 %if "%{with_examples}" == "yes"
michael@1 423 %{l_make} %{l_mflags -O} \
michael@1 424 sub-demos-make_default-ordered \
michael@1 425 sub-examples-make_default-ordered
michael@1 426 %endif
michael@258 427 %if "%{with_tools}" == "yes"
michael@258 428 %{l_make} %{l_mflags -O} docs
michael@258 429 %else
michael@258 430 %if "%{with_examples}" == "yes"
michael@258 431 %{l_make} %{l_mflags -O} docs
michael@258 432 %endif
michael@258 433 %endif
michael@1 434
michael@1 435 %install
michael@1 436 rm -rf $RPM_BUILD_ROOT
michael@1 437
michael@1 438 # carry out installation procedure
michael@215 439 targets="sub-tools-bootstrap-install_subtargets-ordered \
michael@215 440 sub-moc-install_subtargets-ordered \
michael@1 441 sub-rcc-install_subtargets-ordered \
michael@1 442 sub-uic-install_subtargets-ordered \
michael@1 443 sub-corelib-install_subtargets-ordered \
michael@1 444 sub-xml-install_subtargets-ordered \
michael@1 445 sub-network-install_subtargets-ordered \
michael@257 446 sub-sql-install_subtargets-ordered \
michael@257 447 sub-testlib-install_subtargets-ordered \
michael@257 448 sub-dbus-install_subtargets-ordered \
michael@1 449 sub-gui-install_subtargets-ordered \
michael@1 450 sub-qt3support-install_subtargets-ordered \
michael@1 451 sub-uic3-install_subtargets-ordered \
michael@1 452 sub-opengl-install_subtargets-ordered \
michael@1 453 sub-xmlpatterns-install_subtargets-ordered \
michael@257 454 sub-multimedia-install_subtargets-ordered \
michael@1 455 sub-svg-install_subtargets-ordered \
michael@257 456 sub-script-install_subtargets-ordered \
michael@257 457 sub-declarative-install_subtargets-ordered \
michael@257 458 sub-scripttools-install_subtargets-ordered \
michael@257 459 sub-plugins-install_subtargets-ordered \
michael@257 460 sub-imports-install_subtargets-ordered \
michael@257 461 sub-translations-install_subtargets-ordered"
michael@257 462
michael@1 463 %if "%{with_tools}" == "yes"
michael@258 464 targets="$targets sub-tools-install_subtargets-ordered install_htmldocs install_qchdocs install_docimages"
michael@1 465 %endif
michael@1 466 %if "%{with_examples}" == "yes"
michael@258 467 targets="$targets sub-demos-install_subtargets-ordered sub-examples-install_subtargets-ordered install_htmldocs install_qchdocs install_docimages"
michael@1 468 %endif
michael@258 469 targets="$targets install_qmake install_mkspecs"
michael@1 470 %{l_make} %{l_mflags} $targets INSTALL_ROOT="$RPM_BUILD_ROOT"
michael@1 471
michael@1 472 %if "%{with_shared}" == "yes"
michael@1 473 # install shared libs and symlinks
michael@1 474 %{l_shtool} mkdir -f -p -m 755 \
michael@1 475 $RPM_BUILD_ROOT%{l_prefix}/lib/qt
michael@1 476 %{l_tar} cf - dynamic | %{l_tar} xf - -C $RPM_BUILD_ROOT%{l_prefix}/lib/qt
michael@1 477
michael@86 478 # offer limited support of pkg-config(1) for shared libs
michael@87 479 # substitution unfortunately only handles paths with no whitespace
michael@86 480 %{l_shtool} subst \
michael@257 481 -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};g" \
michael@87 482 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/*
michael@86 483
michael@1 484 # explain nonstandard shared library placement
michael@86 485 ( echo "This OpenPKG Qt build is using the with_shared option."
michael@86 486 echo ""
michael@86 487 echo "This directory contains optional shared libraries as"
michael@1 488 echo "defined by the OpenPKG build specification. Although"
michael@86 489 echo "shared libraries have been optionally built (see the"
michael@1 490 echo "build time 'with_shared yes' option), static libraries"
michael@86 491 echo "were built by default as usual, and installed in the"
michael@86 492 echo "standard library directory %{l_prefix}/lib."
michael@86 493 echo ""
michael@86 494 echo "To build applications using shared libraries instead,"
michael@262 495 echo "please direct pkg-config(1) to use the proper definitions"
michael@86 496 echo "by setting the environment variable PKG_CONFIG_PATH to "
michael@86 497 echo "%{l_prefix}/lib/qt/dynamic/pkgconfig."
michael@1 498 ) >$RPM_BUILD_ROOT%{l_prefix}/lib/qt/README
michael@1 499
michael@1 500 # remove temporary dynamic link paths
michael@1 501 %{l_shtool} subst \
michael@257 502 -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}\(/[^\t ][^\t ]*\);-L\1%{l_prefix}\2;g" \
michael@257 503 -e "s;\([\t ][\t ]*\)[^\t ][^\t ]*\(qt-everywhere-opensource-src-%{version}.*\);\1/tmp/\2;" \
michael@92 504 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.prl \
michael@92 505 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.la
michael@1 506 %endif
michael@1 507
michael@259 508 ## Doesn't work as expected, because RPM reads the --[in|ex]cludedocs
michael@259 509 ## argument only when installing binary packages, rather than building.
michael@259 510 #%define _excludedocs 0
michael@259 511 #%define _includedocs 1
michael@259 512 # echo %{_excludedocs}
michael@259 513 # echo %{_includedocs}
michael@259 514 #
michael@259 515 ## Doesn't work as expected, because it seems that OpenPKG too mercilessly
michael@259 516 ## removes RPM readi1ng of the %docdir keyword in rpm.patch.feature.
michael@259 517 # %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@259 518 # %{l_files_std} \
michael@259 519 # '%docdir %{l_prefix}/share/pkg/doc'
michael@259 520 #
michael@259 521 ## Doesn't work as expected, because the rpmtool(1) marks
michael@259 522 ## only einzeln files as documents, skipping directories
michael@259 523 # %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@259 524 # %{l_files_std} \
michael@259 525 # '%doc %{l_prefix}/share/pkg/doc/doc.txt'
michael@259 526 #
michael@1 527 # determine internal file listing
michael@1 528 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@1 529 %{l_files_std} \
michael@1 530 '%not %dir %{l_prefix}/lib/pkgconfig'
michael@1 531
michael@1 532 %files -f files
michael@1 533
michael@1 534 %clean
michael@1 535 rm -rf $RPM_BUILD_ROOT
michael@1 536

mercurial