##
##  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.1
Release:      20030103

#   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++" ;;
        *-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 \
        -thread -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}" \
        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/

    %{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/

    ( cd lib && tar cf - * ) |\
    ( cd $RPM_BUILD_ROOT%{l_prefix}/lib && tar xf - )
    ( cd doc/man/man3
      for man in *.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 \
          *.3 $RPM_BUILD_ROOT%{l_prefix}/man/man3/
      cd ../man1
      %{l_shtool} install -c -m 644 \
          *.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

