faust/faust.spec

135 lines
4.2 KiB
RPMSpec

Name: faust
Version: 2.30.5
Release: 1mamba
Summary: Functional programming language for signal processing and sound synthesis
Group: Applications/Development
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: https://faust.grame.fr/
Source: https://github.com/grame-cncm/faust/releases/download/%{version}/faust-%{version}.tar.gz
Patch0: faust-2.30.5-llvm-11.1.0.patch
Patch1: faust-2.30.5-missing-include-limits.patch
Patch2: faust-2.30.5-sound2file-missing-include-limits.patch
License: GPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libflac-devel
BuildRequires: libgcc
BuildRequires: libllvm-devel
BuildRequires: libmicrohttpd-devel
BuildRequires: libogg-devel
BuildRequires: libopus-devel
BuildRequires: libsndfile-devel
BuildRequires: libstdc++6-devel
BuildRequires: libvorbis-devel
## AUTOBUILDREQ-END
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
%description
Faust (Functional Audio Stream) is a functional programming language specifically designed for real-time signal processing and synthesis. A distinctive characteristic of Faust is to be fully compiled.
The Faust compiler translates DSP specifications into very efficient code for various languages (C++, C, JAVA, LLVM IR, WebAssembly etc.) working at sample level. It targets high-performance signal processing applications, libraries and audio plug-ins for a variety of audio platforms and standards. A same Faust specification can be used to easily generate various kinds of native standalone applications, iOS and Android apps, as well as Csound, LADSPA, Max/MSP, PD, Q, SuperCollider, VST, AU plugins, etc. (see the README in the /architecture folder for an exhaustive list).
While there are Faust contributors everywhere across the globe, Faust is mainly being developed at Grame, Centre National de Creation Musicale (https://www.grame.fr), its birthplace.
%package -n lib%{name}
Group: System/Libraries
Summary: Shared libraries for %{name}
%description -n lib%{name}
This package contains shared libraries for %{name}.
%package -n lib%{name}-devel
Group: Development/Libraries
Summary: Development files for %{name}
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
%description -n lib%{name}-devel
This package contains libraries and header files for developing applications that use %{name}.
%debug_package
%prep
%setup -q
#-D -T
#:<< _EOF
%patch0 -p1
%patch1 -p1
%patch2 -p1
%build
#:<< _EOF
export CC=clang
export CXX=clang++
cmake \
-C build/backends/all.cmake \
-C build/targets/all.cmake \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DLIBSDIR=%{_lib} \
-DCMAKE_BUILD_TYPE='None' \
-DINCLUDE_DYNAMIC=ON \
-DINCLUDE_STATIC=ON \
-DINCLUDE_ITP=ON \
-B "faust-build" \
-S build \
-W no-dev \
%ifarch arm
-DFAUST_LIBS="-latomic"
%endif
%make -C faust-build
%make -C tools/sound2faust
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%makeinstall PREFIX=%{_prefix} -C faust-build
%makeinstall PREFIX=%{_prefix} -C tools/sound2faust
rm -f %{buildroot}%{_libdir}/ios-libsndfile.a
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%post -n lib%{name} -p /sbin/ldconfig
%postun -n lib%{name} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%{_bindir}/faust*
%{_bindir}/encoderunitypackage
%{_bindir}/filename2ident
%{_bindir}/sound2faust
%{_bindir}/sound2file
%{_bindir}/sound2reader
%{_bindir}/usage.sh
%dir %{_datadir}/faust
%{_datadir}/faust/*
%{_mandir}/man1/faust.1*
%files -n lib%{name}
%defattr(-,root,root)
%{_libdir}/libHTTPDFaust.so.*
%{_libdir}/libOSCFaust.so.*
%{_libdir}/libfaustmachine.so.*
%{_libdir}/libfaust.so.*
%doc COPYING.txt
%files -n lib%{name}-devel
%defattr(-,root,root)
%dir %{_includedir}/faust
%{_includedir}/faust/*
%{_libdir}/libHTTPDFaust.a
%{_libdir}/libHTTPDFaust.so
%{_libdir}/libOSCFaust.a
%{_libdir}/libOSCFaust.so
%{_libdir}/libfaust.a
%{_libdir}/libfaust.so
%{_libdir}/libfaustmachine.a
%{_libdir}/libfaustmachine.so
%doc README.md
%changelog
* Wed May 12 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 2.30.5-1mamba
- package created using the webbuild interface