You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
6.5 KiB

##
## qt.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package information
Name: qt
Summary: The Qt Toolkit
URL: http://www.trolltech.com/products/qt/x11.html
Vendor: TrollTech AS
Packager: The OpenPKG Project
Distribution: OpenPKG [EVAL]
Group: XWindow
License: GPL
Version: 3.1.2
Release: 20030305
# package options
%option with_xft no
# list of sources
Source0: ftp://ftp.trolltech.com/pub/qt/source/qt-x11-free-%{version}.tar.gz
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20030103, X11, gcc
PreReq: OpenPKG, openpkg >= 20030103, X11
AutoReq: no
AutoReqProv: no
%description
Qt is a GUI (graphical user interface) software toolkit which simplifies
the task of writing and maintaining GUIs, and allows the developer to
create prototypes and feature-rich applications quickly. Offering C++
library bindings, Qt enables development in an object-oriented
environment and appeals to developers with portability in mind. Qt's
portable C++ library bindings allow for error-free recompiling on at
least the three major platforms Unix (and Linux), Apple Macintosh, and
Microsoft Windows. Its API architecture is designed to reduce complexity
and increase reliability through a signal and slot mechanism, which is
similar to templates in C++, but with influences from component
technology.
%prep
%setup -q -n qt-x11-free-%{version}
%build
export QTDIR=`pwd`
case "%{l_target}" in
*-freebsd* ) oscomp="freebsd-g++"
%{l_shtool} subst \
-e 's/defined(_POSIX_THREAD_SAFE_FUNCTIONS)/_POSIX_THREAD_SAFE_FUNCTIONS - 0 > 0/g' \
src/dialogs/qfiledialog.cpp src/kernel/qfont_x11.cpp \
src/tools/qdatetime.cpp src/tools/qdir_unix.cpp
;;
*-linux* ) oscomp="linux-g++"
;;
*-solaris* ) oscomp="solaris-g++"
;;
* ) echo "platform %{l_target} not supported" 2>&1; exit 1 ;;
esac
# special trolltech configuration
echo "yes" | ./configure \
-prefix %{l_prefix} \
-docdir %{l_prefix}/share/qt/doc \
-datadir %{l_prefix}/share/qt/data \
-static -qt-gif -qt-zlib -platform $oscomp \
-stl -qt-libpng -qt-libjpeg -qt-libmng \
%if "%{with_xft}" == "yes"
-xft
%else
-no-xft
%endif
# set $HOME to a writable directory for qsettings
HOME=$PWD
%{l_make} %{l_mflags -O} \
MAKE="%{l_make} %{l_mflags -O}"
# run configure a second time to get threaded libs, too
echo "yes" | ./configure \
-prefix %{l_prefix} \
-docdir %{l_prefix}/share/qt/doc \
-datadir %{l_prefix}/share/qt/data \
-static -qt-gif -qt-zlib -platform $oscomp \
-thread -stl -qt-libpng -qt-libjpeg -qt-libmng \
%if "%{with_xft}" == "yes"
-xft
%else
-no-xft
%endif
# make our targets a second time to get threaded libs, too
%{l_make} %{l_mflags -O} \
MAKE="%{l_make} %{l_mflags -O}" \
symlinks src-qmake src-moc sub-src sub-tools
%install
rm -rf $RPM_BUILD_ROOT
# make directory structure
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/bin \
$RPM_BUILD_ROOT%{l_prefix}/lib \
$RPM_BUILD_ROOT%{l_prefix}/include/qt/private \
$RPM_BUILD_ROOT%{l_prefix}/man/man1 \
$RPM_BUILD_ROOT%{l_prefix}/man/man3 \
$RPM_BUILD_ROOT%{l_prefix}/share/qt/doc/html \
$RPM_BUILD_ROOT%{l_prefix}/share/qt/templates \
$RPM_BUILD_ROOT%{l_prefix}/share/qt/phrasebooks \
$RPM_BUILD_ROOT%{l_prefix}/share/qt/images
# copy binaries, headers, and then libraries to their target
%{l_shtool} install -c -s -m 755 \
bin/qmake bin/moc bin/uic \
bin/linguist bin/lrelease bin/lupdate \
bin/assistant bin/qtconfig bin/designer \
$RPM_BUILD_ROOT%{l_prefix}/bin/
# copy mkspecs directory for later portable use of qmake
cp -rp mkspecs $RPM_BUILD_ROOT%{l_prefix}/share/qt/
# correct man suffix
for man in doc/man/man3/*.3qt; do
%{l_shtool} subst -e 's;\.3qt;.3;' $man
mv $man `echo $man | sed -e 's;\.3qt$;.3;'`
done
%{l_shtool} install -c -m 644 \
include/*.h $RPM_BUILD_ROOT%{l_prefix}/include/qt/
%{l_shtool} install -c -m 644 \
include/private/*.h $RPM_BUILD_ROOT%{l_prefix}/include/qt/private/
%{l_shtool} install -c -m 644 \
doc/html/* $RPM_BUILD_ROOT%{l_prefix}/share/qt/doc/html/
%{l_shtool} install -c -m 644 \
tools/designer/templates/*.ui $RPM_BUILD_ROOT%{l_prefix}/share/qt/templates/
%{l_shtool} install -c -m 644 \
tools/linguist/phrasebooks/*.qph $RPM_BUILD_ROOT%{l_prefix}/share/qt/phrasebooks/
%{l_shtool} install -c -m 644 \
tools/designer/designer/images/* $RPM_BUILD_ROOT%{l_prefix}/share/qt/images/
%{l_shtool} install -c -m 644 \
lib/*.a lib/*.prl $RPM_BUILD_ROOT%{l_prefix}/lib
%{l_shtool} install -c -m 644 \
doc/man/man3/*.3 $RPM_BUILD_ROOT%{l_prefix}/man/man3/
%{l_shtool} install -c -m 644 \
doc/man/man1/*.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT