Blob Blame History Raw
Name:		faust
Version:	0.9.10
Release:	1%{?dist}
Summary:	Compiled language for real-time audio signal processing
Group:		Development/Languages
# Examples are BSD
# The rest is GPLv2+
License:	GPLv2+ and BSD
URL:		http://faust.grame.fr/
Source0:	http://downloads.sourceforge.net/project/faudiostream/%{name}/%{version}/%{name}-%{version}.tar.gz
# Cut down the doxygen documentation to a reasonable size
Patch0:		faust-cut-doxy.patch
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:	doxygen
BuildRequires:	graphviz

%description
Faust AUdio STreams is a functional programming language for real-time audio
signal processing. Its programming model combines two approaches : functional
programming and block diagram composition. You can think of FAUST as a
structured block diagram language with a textual syntax.

FAUST is intended for developers who need to develop efficient C/C++ audio
plugins for existing systems or full standalone audio applications. Thanks to
some specific compilation techniques and powerful optimizations, the C++ code
generated by the Faust compiler is usually very fast. It can generally compete
with (and sometimes outperform) hand-written C code.

Programming with FAUST is somehow like working with electronic circuits and 
signals. A FAUST program is a list of definitions that defines a signal 
processor block-diagram : a piece of code that produces output signals
according to its input signals (and maybe some user interface parameters)

%package doc
Summary:	Documentation for %{name}
Group:		Documentation
License:	GPLv2+
BuildArch:	noarch
Requires:	%{name} = %{version}-%{release}

%description doc
Faust AUdio STreams is a functional programming language for real-time audio
signal processing. This package provides documentation files to help with 
writing programs with faust.

%package tools
Summary:	3rd party tools written for %{name}
Group:		Development/Languages
License:	GPLv2+
BuildArch:	noarch
Requires:	%{name} = %{version}-%{release}

%description tools
Faust AUdio STreams is a functional programming language for real-time audio
signal processing. These additional tools are provided by various contributors
to help the building process of applications and plugins with Faust.

%package kate
Summary:	Kate/Kwrite plugin for %{name}
Group:		Applications/Editors
License:	GPLv2+
BuildArch:	noarch
Requires:	%{name} = %{version}-%{release}
Requires:	kdesdk

%description kate
Faust AUdio STreams is a functional programming language for real-time audio
signal processing. This package provides Faust code syntax highlighting support
for KDE's Kate/Kwrite.

%prep
%setup -q
%patch0 -p1 -b .cut

# For installation in the correct location and for preserving timestamps:
# The Makefile normally puts noarch files in $prefix/lib. We change
# this to $prefix/share
sed -i	-e 's|/lib|/share|g'			\
	-e 's| -r | -pr |'			\
	-e 's| -m | -pm |'			\
	Makefile
sed -i 's|/lib|/share|g' compiler/parser/enrobage.cpp

# Fix optflags
sed -i 's|-O3|%{optflags}|' compiler/Makefile.unix

# Fix permissions
chmod -x compiler/draw/device/SVGDev.* architecture/VST/PkgInfo

# Fix encoding
for i in examples syntax-highlighting; do
	iconv -f iso8859-1 -t utf8 $i/README -o tmpfile
	touch -r $i/README tmpfile
	mv -f tmpfile $i/README
done

%build
# Build the main executable
make PREFIX=%{_prefix} %{?_smp_mflags}
# Build API docs
pushd compiler
	doxygen
popd

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_bindir}
make install PREFIX=%{_prefix} DESTDIR=%{buildroot}

# Sort out the documentation
mv documentation/faust-quick-reference-src/illustrations/ documentation
rm -fr documentation/faust-quick-reference-src

# Install tools
cp -a tools/%{name}2sc-*/%{name}2sc %{buildroot}%{_bindir}
mv tools/%{name}2sc-*/README README.supercollider

cp -a tools/%{name}2appls/%{name}2* %{buildroot}%{_bindir}
mv tools/%{name}2appls/README README.appls

# Install the kate plugin
mkdir -p %{buildroot}%{_datadir}/kde4/apps/katepart/syntax/
cp -a syntax-highlighting/%{name}.xml \
	%{buildroot}%{_datadir}/kde4/apps/katepart/syntax/

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc COPYING README examples
%{_bindir}/%{name}
%{_datadir}/%{name}/

%files doc
%defattr(-,root,root,-)
%doc documentation/* dox/*

%files tools
%defattr(-,root,root,-)
%doc tools/README README.supercollider README.appls tools/%{name}2pd-*
%{_bindir}/%{name}2*

%files kate
%defattr(-,root,root,-)
%doc syntax-highlighting/README
%{_datadir}/kde4/apps/katepart/syntax/%{name}.xml

%changelog
* Sun Jan 31 2010 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com> - 0.9.10-1
- Update to 0.9.10

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.9.4-3.b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Sat Mar 21 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com> - 0.9.9.4-2.b
- Fix the year of the previous changelog entry
- Install the nonbinary files in %%{_datadir}/%%{name}/
- Add Requires: %%{name}=%%{version}-%%{release} to the doc subpackage

* Mon Mar 16 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com> - 0.9.9.4-1.b
- Initial build