qt/qt.spec

Sat, 04 Jul 2009 20:51:55 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 04 Jul 2009 20:51:55 +0200
changeset 205
a7c3336b8dc2
parent 94
0bb9d0584d2a
child 206
3309487768d4
permissions
-rw-r--r--

Update version, correct postgresql built logic, and include webkit.

michael@1 1 ##
michael@1 2 ## qt.spec -- OpenPKG RPM Specification
michael@29 3 ## Copyright (c) 2009 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@1 31
michael@1 32 # package information
michael@1 33 Name: qt
michael@1 34 Summary: Cross-platform Application Framework
michael@1 35 URL: http://www.trolltech.com/products/qt/
michael@1 36 Vendor: Nokia Corporation
michael@1 37 Packager: Michael Schloh von Bennewitz
michael@1 38 Distribution: MSvB Recherche Production
michael@1 39 Class: EVAL
michael@1 40 Group: Development
michael@1 41 License: GPL
michael@205 42 Version: 4.5.2
michael@205 43 Release: 20090702
michael@1 44
michael@1 45 # build options
michael@1 46 %option with_tools yes
michael@65 47 %option with_mysql no
michael@65 48 %option with_pgsql no
michael@1 49 %option with_shared no
michael@1 50 %option with_examples no
michael@1 51
michael@1 52 # list of sources
michael@1 53 Source0: ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-%{version}.tar.gz
michael@1 54
michael@1 55 # build information
michael@1 56 Prefix: %{l_prefix}
michael@1 57 BuildRoot: %{l_buildroot}
michael@4 58 BuildPreReq: OpenPKG, openpkg >= 20050726, make, gcc, pkgconfig
michael@1 59 PreReq: OpenPKG, openpkg >= 20050726
michael@1 60 BuildPreReq: X11, png, mng, jpeg, tiff, mesa, xrender
michael@1 61 PreReq: X11, png, mng, jpeg, tiff, mesa, xrender
michael@3 62 BuildPreReq: openssl, zlib, libiconv, sqlite, dbus
michael@3 63 PreReq: openssl, zlib, libiconv, sqlite, dbus
michael@1 64 BuildPreReq: fontconfig, freetype
michael@1 65 PreReq: fontconfig, freetype
michael@65 66 %if "%{with_mysql}" == "yes"
michael@65 67 BuildPreReq: mysql
michael@65 68 PreReq: mysql
michael@65 69 %endif
michael@65 70 %if "%{with_pgsql}" == "yes"
michael@65 71 BuildPreReq: postgresql
michael@65 72 PreReq: postgresql
michael@65 73 %endif
michael@1 74 AutoReq: no
michael@1 75 AutoReqProv: no
michael@1 76 Provides: QTSDK
michael@1 77
michael@1 78 %description
michael@3 79 Qt is a comprehensive C++ framework for cross-platform application
michael@3 80 development. Using Qt, you can develop applications and user
michael@3 81 interfaces once, and deploy them across many desktop and embedded
michael@86 82 operating systems without rewriting the source code. This package
michael@86 83 distribution builds all modules of the Qt/X11 Open Source Edition.
michael@1 84
michael@1 85 %track
michael@1 86 prog qt = {
michael@1 87 version = %{version}
michael@1 88 url = ftp://ftp.trolltech.com/qt/source/
michael@1 89 regex = qt-x11-opensource-src-(__VER__)\.tar\.gz
michael@1 90 }
michael@1 91
michael@1 92 %prep
michael@1 93 # announce exceptional build requirements
michael@1 94 ( echo "This package has exceptional storage requirements:"
michael@1 95 echo " qt-%{version}-root (2,5 Go)"
michael@1 96 echo " qt-x11-opensource-src-%{version} (4,5 Go)"
michael@1 97 echo " qt-%{version}-<date>.<arch>-<os>-<tag>.rpm (1 Go)"
michael@1 98 echo "Building with no options takes 0,5 hours on a dual core"
michael@3 99 echo "2 GHz CPU, or 2 hours with all build options enabled."
michael@1 100 ) | %{l_rpmtool} msg -b -t notice
michael@1 101
michael@1 102 %setup -q -n qt-x11-opensource-src-%{version}
michael@1 103 x11_incdir=`%{l_rc} --query x11_incdir`
michael@1 104 x11_libdir=`%{l_rc} --query x11_libdir`
michael@92 105 fontconflibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig`
michael@92 106 openssllibs=`%{l_prefix}/bin/pkg-config --libs --static openssl`
michael@92 107
michael@1 108 loclibs=''
michael@1 109 case "%{l_platform -t}" in
michael@1 110 *-sunos* )
michael@1 111 loclibs='-lsocket -lnsl'
michael@1 112 ;;
michael@1 113 esac
michael@1 114 ( cd mkspecs/qws
michael@1 115 for plat in freebsd-generic-g++ macx-generic-g++ solaris-generic-g++;
michael@1 116 do
michael@1 117 ln -s $plat `echo $plat | %{l_shtool} subst -e 's;\(.*\)-generic-\(.*\);\1-x86-\2;'`
michael@1 118 done
michael@1 119 ) || exit $?
michael@1 120 %{l_shtool} subst \
michael@92 121 -e 's;\(-z[\t ][\t ]*\)\([^\t \"][^\t \"]*\);\1"\2";g' \
michael@1 122 configure
michael@1 123 %{l_shtool} subst \
michael@92 124 -e "s;\(QMAKE_LIBS_X11.*\)-lfreetype -lfontconfig;\1$fontconflibs;" \
michael@92 125 configure
michael@92 126 %{l_shtool} subst \
michael@92 127 -e "s;\(OPENSSL_LIBS *=\) *-lssl -lcrypto;\1 $openssllibs;" \
michael@1 128 configure
michael@1 129 %{l_shtool} subst \
michael@1 130 -e 's;-silent|;-rpath|-silent|;' \
michael@1 131 -e 's;\(RPATH_FLAGS="\)\\"\$QT_INSTALL_LIBS\\" \($RPATH_FLAGS"\);\1\2;' \
michael@1 132 -e "s;\(echo.*QMAKE_RPATHDIR +=\).*\$QT_INSTALL_LIBS\\\\\"\\\";\1 $x11_libdir\";" \
michael@1 133 configure
michael@1 134 %{l_shtool} subst \
michael@1 135 -e 's;\(TRY_INCLUDEPATHS = \).*\(\$\$INCLUDEPATH\);\1\2;' \
michael@1 136 -e 's;/freetype2;/freetype;' \
michael@1 137 config.tests/unix/freetype/freetype.pri
michael@1 138 %{l_shtool} subst \
michael@92 139 -e "s;^\(LIBS += \)-lfreetype -lfontconfig;\1$fontconflibs;" \
michael@1 140 config.tests/x11/fontconfig/fontconfig.pro
michael@1 141 %{l_shtool} subst \
michael@205 142 -e "s;\(LIBS += -lpq\);\1 `%{l_prefix}/bin/pg_config --libs` $loclibs;" \
michael@1 143 config.tests/unix/psql/psql.pro
michael@1 144 %{l_shtool} subst \
michael@1 145 -e 's;^mac:\(LIBS\);\1;' \
michael@1 146 config.tests/unix/iconv/iconv.pro
michael@1 147 %{l_shtool} subst \
michael@65 148 -e 's;LIBS .*= -lpq$;LIBS += -lpq -lssl -lcrypto;' \
michael@65 149 src/sql/drivers/drivers.pri
michael@65 150 %{l_shtool} subst \
michael@86 151 -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 152 src/corelib/kernel/kernel.pri \
michael@86 153 src/gui/kernel/kernel.pri
michael@86 154 %{l_shtool} subst \
michael@86 155 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_PSQL;INCPATH += `pg_config --includedir 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
michael@86 156 -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_MYSQL;INCPATH += `mysql_config --include 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \
michael@86 157 -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@92 158 src/plugins/sqldrivers/mysql/mysql.pro \
michael@92 159 src/plugins/sqldrivers/psql/psql.pro \
michael@92 160 src/plugins/sqldrivers/sqlite/sqlite.pro \
michael@86 161 src/sql/drivers/drivers.pri
michael@86 162 %{l_shtool} subst \
michael@86 163 -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 164 src/dbus/dbus.pro
michael@86 165 %{l_shtool} subst \
michael@1 166 -e 's;^\(QMAKE_INCDIR[^a-zA-Z0-9=]*=\).*;\1 %{l_prefix}/include;' \
michael@1 167 -e 's;^\(QMAKE_LIBDIR[^a-zA-Z0-9=]*=\).*;\1 %{l_prefix}/lib;' \
michael@1 168 -e "s;^\(QMAKE_INCDIR_OPENGL[^=]*=\) *\(.*\);\1 %{l_prefix}/include \2;" \
michael@86 169 -e "s;^\(QMAKE_LIBDIR_OPENGL[^=]*=\) *\(.*\);\1 %{l_prefix}/lib \2;" \
michael@1 170 -e 's;^\(QMAKE_LFLAGS_RELEASE.*\);\1 -s;' \
michael@1 171 mkspecs/qws/*/qmake.conf \
michael@1 172 mkspecs/*/*.conf
michael@1 173 %{l_shtool} subst \
michael@3 174 -e 's;^\(QMAKE_LIBS +=.*\);\1 -liconv;' \
michael@3 175 src/corelib/corelib.pro
michael@3 176 %{l_shtool} subst \
michael@86 177 -e "s;^\(QMAKE_INCDIR_X11[^=]*=\).*;\1 %{l_prefix}/include $x11_incdir;" \
michael@86 178 -e "s;^\(QMAKE_LIBDIR_X11[^=]*=\).*;\1 %{l_prefix}/lib $x11_libdir;" \
michael@1 179 mkspecs/qws/solaris*/qmake.conf \
michael@1 180 mkspecs/solaris*/qmake.conf
michael@1 181 %{l_shtool} subst \
michael@1 182 -e 's; *\.\./3rdparty/freetype/.*;;g' \
michael@1 183 -e 's;^\( *contains(QT_CONFIG, freetype) {\);\1 LIBS += -lfreetype;' \
michael@1 184 src/gui/text/text.pri
michael@1 185 %{l_shtool} subst \
michael@1 186 -e 's;\(#include *"\)\(tiffio.h"\);\1tiff/\2;' \
michael@1 187 src/plugins/imageformats/tiff/qtiffhandler.cpp
michael@92 188 %{l_shtool} subst \
michael@92 189 -e 's;\(CONFIG[\t ]*+=[\t ]*qt\);\1 x11;' \
michael@92 190 tools/qtconfig/qtconfig.pro
michael@1 191 # for projfile in `find examples/ -name '*.pro' -print`; do
michael@1 192 # echo 'CONFIG += release' >>$projfile
michael@1 193 # done
michael@1 194
michael@1 195 %build
michael@1 196 # protect against sloppy code inclusion of all unused subprojects
michael@1 197 rm -rf src/3rdparty/[^cdhmsw]* src/3rdparty/sql* src/3rdparty/win*
michael@1 198
michael@92 199 # detect which platform for which to build
michael@1 200 case "%{l_platform -t}" in
michael@86 201 sun4[uv]-sunos* | amd64-sunos* ) platcomp="solaris-g++-64" ;;
michael@86 202 i?86-sunos* ) platcomp="solaris-g++" ;;
michael@86 203 amd64-linux* ) platcomp="linux-g++-64" ;;
michael@86 204 i?86-linux* ) platcomp="linux-g++" ;;
michael@86 205 amd64-freebsd* | i?86-freebsd* ) platcomp="freebsd-g++" ;;
michael@86 206 *-aix* ) platcomp="aix-g++" ;;
michael@86 207 *-darwin* ) platcomp="macx-g++" ;;
michael@86 208 *-hpux* ) platcomp="hpux-g++" ;;
michael@86 209 *-irix* ) platcomp="irix-g++" ;;
michael@86 210 * ) echo "Platform '%{l_platform -t}' is not supported." 2>&1; exit 1 ;;
michael@1 211 esac
michael@1 212
michael@92 213 # detect which architecture extensions are available
michael@92 214 archflags=''
michael@92 215 case "%{l_platform -t}" in
michael@92 216 amd64-* )
michael@92 217 break
michael@92 218 ;;
michael@92 219 * )
michael@92 220 archflags='-no-sse2 -no-3dnow'
michael@92 221 ;;
michael@92 222 esac
michael@92 223
michael@1 224 %if "%{with_shared}" == "yes"
michael@1 225 # optional shared build (precedes mandatory static build)
michael@1 226 echo 'yes' | ./configure \
michael@92 227 $archflags \
michael@205 228 -opensource \
michael@1 229 -prefix %{l_prefix} \
michael@1 230 -bindir %{l_prefix}/bin \
michael@1 231 -libdir %{l_prefix}/lib/qt \
michael@1 232 -docdir %{l_prefix}/share/qt/doc \
michael@1 233 -headerdir %{l_prefix}/include \
michael@86 234 -plugindir %{l_prefix}/lib/qt/plugins \
michael@1 235 -datadir %{l_prefix}/share/qt \
michael@1 236 -translationdir %{l_prefix}/share/qt/translations \
michael@1 237 -sysconfdir %{l_prefix}/etc/qt \
michael@1 238 -examplesdir %{l_prefix}/share/qt/examples \
michael@1 239 -demosdir %{l_prefix}/share/qt/demos \
michael@1 240 -release \
michael@1 241 -shared \
michael@1 242 -platform $platcomp \
michael@1 243 -no-sql-ibase \
michael@65 244 %if "%{with_mysql}" == "yes"
michael@3 245 -qt-sql-mysql \
michael@86 246 -plugin-sql-mysql \
michael@65 247 %else
michael@65 248 -no-sql-mysql \
michael@65 249 %endif
michael@65 250 %if "%{with_pgsql}" == "yes"
michael@65 251 -qt-sql-psql \
michael@86 252 -plugin-sql-psql \
michael@65 253 %else
michael@65 254 -no-sql-psql \
michael@65 255 %endif
michael@1 256 -no-sql-odbc \
michael@65 257 -system-sqlite \
michael@65 258 -qt-sql-sqlite \
michael@86 259 -plugin-sql-sqlite \
michael@1 260 -no-sql-sqlite2 \
michael@3 261 -openssl-linked \
michael@1 262 -xmlpatterns \
michael@1 263 -svg \
michael@1 264 -system-zlib \
michael@1 265 -qt-gif \
michael@1 266 -system-libpng \
michael@1 267 -system-libmng \
michael@1 268 -system-libjpeg \
michael@1 269 -system-libtiff \
michael@1 270 -rpath \
michael@1 271 -no-cups \
michael@1 272 -iconv \
michael@1 273 -pch \
michael@1 274 -dbus-linked \
michael@1 275 -opengl \
michael@1 276 -xrender \
michael@1 277 -fontconfig \
michael@1 278 -freetype \
michael@3 279 -no-glib
michael@1 280
michael@86 281 # default options are implicitly used, for example...
michael@1 282 #-no-fast -exceptions -accessibility -stl -qt3support -nis
michael@1 283 #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb
michael@1 284
michael@1 285 # carry out shared build procedure
michael@1 286 ( cd src
michael@1 287 %{l_make} %{l_mflags -O} \
michael@1 288 sub-moc sub-rcc sub-uic
michael@1 289 %{l_make} %{l_mflags -O} \
michael@1 290 sub-corelib sub-xml sub-network sub-gui sub-sql \
michael@1 291 sub-script sub-testlib sub-qt3support sub-dbus \
michael@1 292 sub-opengl sub-xmlpatterns sub-svg sub-plugins
michael@1 293 ) || exit $?
michael@205 294
michael@205 295 # arthur plugin requires libQtDesigner
michael@92 296 ( cd demos
michael@205 297 ( cd ../tools/designer/src/lib
michael@205 298 %{l_make} %{l_mflags -O} staticlib
michael@205 299 ) || exit $?
michael@92 300 %{l_make} %{l_mflags -O} sub-arthurplugin
michael@205 301 ( cd ../tools/designer/src/lib
michael@205 302 %{l_make} %{l_mflags -O} distclean
michael@205 303 ) || exit $?
michael@92 304 ) || exit $?
michael@1 305
michael@1 306 # cache shared libs and initialize the build configuration, which
michael@1 307 # would otherwise still contain references to our shared libs build
michael@1 308 %{l_shtool} mkdir -f -p -m 755 dynamic
michael@1 309 mv lib/* dynamic/
michael@1 310 ( cd qmake
michael@1 311 %{l_make} %{l_mflags} distclean
michael@1 312 ) || exit $?
michael@1 313 rm -f .qmake.cache
michael@1 314 %endif
michael@1 315
michael@1 316 # mandatory static build (follows optional shared build)
michael@1 317 echo 'yes' | ./configure \
michael@92 318 $archflags \
michael@205 319 -opensource \
michael@1 320 -prefix %{l_prefix} \
michael@1 321 -bindir %{l_prefix}/bin \
michael@1 322 -libdir %{l_prefix}/lib \
michael@1 323 -docdir %{l_prefix}/share/qt/doc \
michael@1 324 -headerdir %{l_prefix}/include \
michael@86 325 -plugindir %{l_prefix}/lib/qt/plugins \
michael@1 326 -datadir %{l_prefix}/share/qt \
michael@1 327 -translationdir %{l_prefix}/share/qt/translations \
michael@1 328 -sysconfdir %{l_prefix}/etc/qt \
michael@1 329 -examplesdir %{l_prefix}/share/qt/examples \
michael@1 330 -demosdir %{l_prefix}/share/qt/demos \
michael@1 331 -release \
michael@1 332 -static \
michael@1 333 -platform $platcomp \
michael@1 334 -no-sql-ibase \
michael@65 335 %if "%{with_mysql}" == "yes"
michael@3 336 -qt-sql-mysql \
michael@65 337 %else
michael@65 338 -no-sql-mysql \
michael@65 339 %endif
michael@65 340 %if "%{with_pgsql}" == "yes"
michael@65 341 -qt-sql-psql \
michael@65 342 %else
michael@65 343 -no-sql-psql \
michael@65 344 %endif
michael@1 345 -no-sql-odbc \
michael@65 346 -system-sqlite \
michael@65 347 -qt-sql-sqlite \
michael@1 348 -no-sql-sqlite2 \
michael@3 349 -openssl-linked \
michael@1 350 -xmlpatterns \
michael@1 351 -svg \
michael@1 352 -system-zlib \
michael@1 353 -qt-gif \
michael@1 354 -system-libpng \
michael@1 355 -system-libmng \
michael@1 356 -system-libjpeg \
michael@1 357 -system-libtiff \
michael@1 358 -rpath \
michael@1 359 -no-cups \
michael@1 360 -iconv \
michael@1 361 -pch \
michael@1 362 -dbus-linked \
michael@1 363 -opengl \
michael@1 364 -xrender \
michael@1 365 -fontconfig \
michael@1 366 -freetype \
michael@3 367 -no-glib
michael@1 368
michael@86 369 # default options are implicitly used, for example...
michael@1 370 #-no-fast -exceptions -accessibility -stl -qt3support -nis
michael@1 371 #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb
michael@1 372
michael@1 373 # carry out static build procedure
michael@1 374 %{l_make} %{l_mflags -O} sub-src
michael@1 375 %if "%{with_tools}" == "yes"
michael@1 376 %{l_make} %{l_mflags -O} sub-tools
michael@1 377 %endif
michael@1 378 %if "%{with_examples}" == "yes"
michael@1 379 %{l_make} %{l_mflags -O} \
michael@1 380 sub-demos-make_default-ordered \
michael@1 381 sub-examples-make_default-ordered
michael@1 382 %endif
michael@1 383
michael@1 384 %install
michael@1 385 rm -rf $RPM_BUILD_ROOT
michael@1 386
michael@1 387 # carry out installation procedure
michael@1 388 targets="sub-moc-install_subtargets-ordered \
michael@1 389 sub-rcc-install_subtargets-ordered \
michael@1 390 sub-uic-install_subtargets-ordered \
michael@1 391 sub-corelib-install_subtargets-ordered \
michael@1 392 sub-xml-install_subtargets-ordered \
michael@1 393 sub-network-install_subtargets-ordered \
michael@1 394 sub-gui-install_subtargets-ordered \
michael@1 395 sub-sql-install_subtargets-ordered \
michael@1 396 sub-script-install_subtargets-ordered \
michael@1 397 sub-testlib-install_subtargets-ordered \
michael@1 398 sub-qt3support-install_subtargets-ordered \
michael@1 399 sub-dbus-install_subtargets-ordered \
michael@1 400 sub-uic3-install_subtargets-ordered \
michael@1 401 sub-opengl-install_subtargets-ordered \
michael@1 402 sub-xmlpatterns-install_subtargets-ordered \
michael@1 403 sub-svg-install_subtargets-ordered \
michael@1 404 sub-plugins-install_subtargets-ordered"
michael@1 405 %if "%{with_tools}" == "yes"
michael@1 406 targets="$targets sub-tools-install_subtargets-ordered"
michael@1 407 %endif
michael@1 408 %if "%{with_examples}" == "yes"
michael@1 409 targets="$targets sub-demos-install_subtargets-ordered sub-examples-install_subtargets-ordered"
michael@1 410 %endif
michael@3 411 targets="$targets install_htmldocs install_qchdocs install_docimages install_translations install_qmake install_mkspecs"
michael@1 412 %{l_make} %{l_mflags} $targets INSTALL_ROOT="$RPM_BUILD_ROOT"
michael@1 413
michael@1 414 %if "%{with_shared}" == "yes"
michael@1 415 # install shared libs and symlinks
michael@1 416 %{l_shtool} mkdir -f -p -m 755 \
michael@1 417 $RPM_BUILD_ROOT%{l_prefix}/lib/qt
michael@1 418 %{l_tar} cf - dynamic | %{l_tar} xf - -C $RPM_BUILD_ROOT%{l_prefix}/lib/qt
michael@1 419
michael@86 420 # offer limited support of pkg-config(1) for shared libs
michael@87 421 # substitution unfortunately only handles paths with no whitespace
michael@86 422 %{l_shtool} subst \
michael@92 423 -e "s;[^\t ][^\t ]*qt-x11-opensource-src-%{version};%{l_prefix};g" \
michael@87 424 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/*
michael@86 425
michael@1 426 # explain nonstandard shared library placement
michael@86 427 ( echo "This OpenPKG Qt build is using the with_shared option."
michael@86 428 echo ""
michael@86 429 echo "This directory contains optional shared libraries as"
michael@1 430 echo "defined by the OpenPKG build specification. Although"
michael@86 431 echo "shared libraries have been optionally built (see the"
michael@1 432 echo "build time 'with_shared yes' option), static libraries"
michael@86 433 echo "were built by default as usual, and installed in the"
michael@86 434 echo "standard library directory %{l_prefix}/lib."
michael@86 435 echo ""
michael@86 436 echo "To build applications using shared libraries instead,"
michael@86 437 echo "please direct pkg-config(1) to use the properdefinitions"
michael@86 438 echo "by setting the environment variable PKG_CONFIG_PATH to "
michael@86 439 echo "%{l_prefix}/lib/qt/dynamic/pkgconfig."
michael@1 440 ) >$RPM_BUILD_ROOT%{l_prefix}/lib/qt/README
michael@1 441
michael@1 442 # remove temporary dynamic link paths
michael@1 443 %{l_shtool} subst \
michael@92 444 -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-x11-opensource-src-%{version}\(/[^\t ][^\t ]*\);-L\1%{l_prefix}\2;g" \
michael@92 445 -e "s;\([\t ][\t ]*\)[^\t ][^\t ]*\(qt-x11-opensource-src-%{version}.*\);\1/tmp/\2;" \
michael@92 446 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.prl \
michael@92 447 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.la
michael@1 448 %endif
michael@1 449
michael@1 450 # determine internal file listing
michael@1 451 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@1 452 %{l_files_std} \
michael@86 453 '%doc %{l_prefix}/share/qt/doc/*/*' \
michael@1 454 '%not %dir %{l_prefix}/lib/pkgconfig'
michael@1 455
michael@1 456 %files -f files
michael@1 457
michael@1 458 %clean
michael@1 459 rm -rf $RPM_BUILD_ROOT
michael@1 460

mercurial