Man Linux: Main Page and Category List

NAME

       qwtspec - qwt.spec

       #-*- rpm-spec -*- ###############################################
       # Qwt Widget Library
       # Copyright (C) 1997   Josef Wilgen
       # Copyright (C) 2002   Uwe Rathmann
       #
       # This library is free software; you can redistribute it and/or
       # modify it under the terms of the Qwt License, Version 1.0
       #################################################################

       # rpm spec file template for Qwt.
       #
       # Qwt doesn’t distribute binary packages as there are too many
       # distributions and Qt options. If you would like to have Qwt rpm
       # packages, this spec file template will help you to build them.
       # It was tested on:
       #    Mandrake- 8.2/9.1/10.0
       #    Red Hat- 8.0
       #    SuSE- 9.0
       #
       # 1) Set QTDIR to point to the Qt release you want to build Qwt for.
       #
       # 2) If qmake is not installed, the spec file will fallback on tmake.
       #    In this case you have to set TMAKEPATH.
       #
       # 3) If qmake is installed, the spec file assumes Qt > 3.X and tries to build
       #    and install the qwtplugin for the designer.
       #
       # 4) The spec file tries to autodetect if a threaded Qt-library is installed.
       #    If a threaded version is not available, it tries to build against the
       #    non-threaded Qt-library.
       #    If you need C++-exceptions, %define use_exceptions 1
       #    If you need the man pages, %define use_man 1
       #    If you need to change any other option in the pro-files un-tar the Qwt
       #    package, edit the pro files and tar it again.
       #
       # 5) The spec file builds a qwt and a qwt-devel package. The qwt-devel
       #    package includes qwt-examples. If you don’t like to install the
       #    examples remove the line ’%doc examples’ in the %files section.
       #
       # 6) Each distribution has a default RPM-BUILD-TREE.
       #
       #       - On Mandrake, it is /usr/src/RPM
       #       - On SuSE, it is /usr/src/packages
       #       - On Red Hat, it is /usr/src/redhat
       #
       #    You need write access to the RPM-BUILD-TREE. However, a regular user
       #    can specify their own build area with the topdir variable in
       #    ~/.rpmmacros. Please see:
       #
       #        http://www-106.ibm.com/developerworks/library/l-rpm2/
       #
       #    At this point, you have two choices:
       #
       #    a) Make sure the correct version of the spec file is in the
       #       tar file, then run:
       #
       #               rpm -ta qwt-4.2.0.tar.bz2
       #
       #       or:
       #
       #               rpmbuild -ta qwt-4.2.0.tar.bz2
       #
       #       Note: You may just want to try this option to see if it works
       #       ’out of the box.’ If it doesn’t, you may need to change the spec
       #       file and/or try the next option.
       #
       #    b) Copy the spec file to RPM-BUILD-TREE/SPECS and the source file
       #       qwt-4.2.0.tar.bz2 to RPM-BUILD-TREE/SOURCES, then run:
       #
       #              rpm -ba --clean RPM-BUILD-TREE/SPECS/qwt.spec
       #
       #       or:
       #
       #              rpmbuild -ba --clean RPM-BUILD-TREE/SPECS/qwt.spec
       #
       #
       # 7) You find the following packages:
       # RPM-BUILD-TREE/RPMS/*/qwt-4.2.0-1.*.rpm
       #       RPM-BUILD-TREE/RPMS/*/qwt-devel-4.2.0-1.*.rpm
       #       RPM-BUILD-TREE/SRPMS/qwt-4.2.0-1.src.rpm
       #    where * depends on your processor and distribution.

       #define use_exceptions  1, if you want to enable exceptions
       %define use_exceptions  0
       #define use_man   1, if want to install the man pages
       %define use_man   0

       %define name    qwt
       %define version 4.2.0
       %define release 1
       %define qtdir   %(echo $QTDIR)

       %{expand:%define buildForSuSE %(if [ -e /etc/SuSE-release ]; then echo 1; else echo 0; fi)}

       Summary:  Qt Widgets for Technical applications (Qwt)
       Name:   %{name}
       Version:  %{version}
       Release:  %{release}
       License:  Qwt (LGPL, but allowing static linking to proprietary programs)
       URL:    http://sourceforge.net/projects/qwt
       Group:    System/Libraries
       Source:   %{name}-%{version}.tar.bz2
       BuildRoot:  %{_tmppath}/%{name}-buildroot

       %description
       Qwt is an extension to the Qt GUI library from Troll Tech AS.  The Qwt library
       contains widgets and components which are primarily useful for technical and
       scientifical purposes.  It includes a 2-D plotting widget, different kinds of
       sliders, and much more.

       %package devel
       Summary:  Qt Widgets for Technical applications (Qwt)
       Group:    Development/C++

       %description devel
       Qwt is an extension to the Qt GUI library from Troll Tech AS.  The Qwt library
       contains widgets and components which are primarily useful for technical and
       scientifical purposes.  It includes a 2-D plotting widget, different kinds of
       sliders, and much more.  This package contains the header files, HTML and MAN
       documentation and all examples.

       The Qwt license is based on the LGPL, with exceptions to allow static linking
       to closed source programs. Modifications of the Qwt library fall under the
       LGPL and use of the Qwt library has to be acknowledged.

       %prep
       %setup -n %{name}-%{version}
       # zap CVS stuff, in case of a snapshot
       find . -name CVS -o -name .cvsignore | xargs rm -Rf

       # check for a threaded qt library and if not found,
       # modify the *.pro files to fall back on a non-threaded
       # Qt library, if found.
       if [ ! -e $QTDIR/lib/libqt-mt.so -a -e $QTDIR/lib/libqt.so ]; then
           perl -e ’s|thread||g’ -pi  ‘find . -name ’*.pro’‘
       fi

       %if %use_exceptions
       find . -name ’*.pro’ | perl -e ’s|-fno-exceptions||g’ -pi
       perl -e ’s|-fno-exceptions||g’ -pi ‘find . -name ’*.pro’‘
       %endif

       # try to run qmake, or fall back on tmake
       if [ -e $QTDIR/bin/qmake ]; then
           $QTDIR/bin/qmake qwt.pro -o Makefile
           (cd examples; $QTDIR/bin/qmake examples.pro -o Makefile)
           (cd designer; $QTDIR/bin/qmake qwtplugin.pro -o Makefile)
       else
           tmake qwt.pro -o Makefile
           (cd examples; tmake examples.pro -o Makefile)
       fi

       %build

       # build the library
       make ’CXX=‘which ccache‘ g++’

       # build the designer plugin
       if [ -e $QTDIR/bin/qmake ]; then
           (cd designer; make ’CXX=‘which ccache‘ g++’)
       fi

       # building the examples is a useful check
       (cd examples; make’CXX=‘which ccache‘ g++’)

       %install

       rm -rf %{buildroot}
       mkdir -p %{buildroot}%{qtdir}/include/qwt
       mkdir -p %{buildroot}%{qtdir}/lib
       %if %use_man
       mkdir -p %{buildroot}/%{_mandir}/man3
       %endif

       for n in include/*.h ; do
           install -m 644 $n %{buildroot}%{qtdir}/include/qwt
       done

       # install, preserving links
       chmod 644 lib/libqwt.so*
       for n in lib/libqwt.so* ; do
           cp -d $n %{buildroot}%{qtdir}/lib
       done

       # SuSE-9.0 has the policy of linking from /usr/lib to $(QTDIR)/lib
       %if %buildForSuSE
       mkdir -p %{buildroot}%{_libdir}
       (cd %{buildroot}%{_libdir}; ln -sf $(basename %{qtdir})/lib/libqwt.so.4)
       %endif

       # build the designer plugin
       if [ -e $QTDIR/bin/qmake ]; then
           (cd designer; make install INSTALL_ROOT=%{buildroot})
           echo ’%{qtdir}/plugins/designer/libqwtplugin.so’ > plugin.list
       else
           echo >plugin.list
       fi

       %if %use_man
       for n in doc/man/man3/*.3 ; do
           install -m 644 $n %{buildroot}/%{_mandir}/man3
       done
       %endif

       # clean up the example tree
       (cd examples; make distclean)
       (cd examples; rm -f .*.cache */.*.cache */*/.*.cache)
       (cd examples; rm -rf Makefile */moc */obj */*/moc */*/obj)

       # the %%post and %%postun directives are superfluous on SuSE, but harmless
       %post
       /sbin/ldconfig

       %postun
       /sbin/ldconfig

       %clean
       rm -rf %{buildroot}

       %files
       %defattr(-, root, root)
       %doc CHANGES COPYING README
       %{qtdir}/lib/libqwt.so*
       %if %buildForSuSE
       %{_libdir}/libqwt.so*
       %endif

       %files devel -f plugin.list
       %defattr(-, root, root)
       %doc COPYING doc/html/*.css doc/html/*.html doc/html/*.gif doc/html/*.png
       %doc examples
       %dir %{qtdir}/include/qwt
       %{qtdir}/include/qwt/*
       %if %use_man
       %{_mandir}/man3/*
       %endif

       %changelog
       * Mon Jun 13 2004 Gerard Vermeulen <gerard.vermeul@grenoble.cnrs.fr> 4.2.0-1
       - make qwt.spec from qwt.spec.in
       - replaced %{version} by * in libqwt.so.%{version}
       - added ccache
       - install Qwt in %qtdir and adapt to the SuSE /etc/ld.so.conf policy

       * Mon Oct 13 2003 Uwe Rathmann <uwe.rathmann@epost.de> 4.2.0-1
       - rename 0.4.2 to 4.2.0

       * Wed Apr 09 2003 Gerard Vermeulen <gvermeul@grenoble.cnrs.fr> 0.4.2-1
       - changed license from LGPL to Qwt
       - add designer plugin to qwt-devel
       - remove example binaries & other files made when building the examples

       * Tue Apr 08 2003 John Cummings <jcummings2@users.sourceforge.net>
       - properly ordered changelog
       - changed copyright tag to license
       - improved instructions

       * Tue Aug 06 2002 Uwe Rathmann
       - update for Qwt-0.4.2

       * Wed Apr 24 2002 Gerard Vermeulen <gvermeul@polycnrs-gre.fr> 0.4.1-1
       - spec file for Qwt-0.4.1 with Qt-2.X, Qt-3.X on Mandrake, Suse, ...

       # EOF