qwtspec(3)

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