faust/faust.spec

174 lines
5.8 KiB
RPMSpec

Name: faust
Version: 2.68.1
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
Patch3: faust-2.40.0-llvm-14.0.3.patch
Patch4: faust-2.54.9-sound2faust_makefile.patch
License: GPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libgcc
BuildRequires: libllvm-devel
BuildRequires: libmicrohttpd-devel
BuildRequires: libsndfile-devel
BuildRequires: libstdc++6-devel
## AUTOBUILDREQ-END
BuildRequires: libllvm-devel >= 14.0.3
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
%patch 2 -p1
#%patch3 -p1 -b .llvm-14.0.3
#%patch 4 -p1 -b .sound2faust_makefile
%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
%ifarch x86_64 aarch64
# Workaround for build error due to configuring with LIBSDIR=lib64
ln -s lib64 build/lib
%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
rm -f %{buildroot}%{_datadir}/faust/max-msp/sndfile/*/libsndfile.a
# remove unusable scripts
rm -v %{buildroot}%{_bindir}/faust2au
# remove precompiled shared libraries for android:
# https://github.com/grame-cncm/faust/issues/370
rm -rvf %{buildroot}%{_datadir}/faust/android/app/{lib,oboe} %{buildroot}%{_datadir}/faust/smartKeyboard/android/app/oboe
%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
%{_libdir}/libfaustwithllvm.a
%doc README.md
%changelog
* Tue Sep 19 2023 Automatic Build System <autodist@mambasoft.it> 2.68.1-1mamba
- automatic version update by autodist
* Sat Sep 02 2023 Automatic Build System <autodist@mambasoft.it> 2.60.3-1mamba
- automatic version update by autodist
* Sun Jan 01 2023 Automatic Build System <autodist@mambasoft.it> 2.54.9-1mamba
- automatic version update by autodist
* Fri Oct 07 2022 Automatic Build System <autodist@mambasoft.it> 2.50.6-1mamba
- automatic version update by autodist
* Wed Jul 06 2022 Automatic Build System <autodist@mambasoft.it> 2.41.1-1mamba
- automatic version update by autodist
* Mon May 02 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 2.40.0-2mamba
- rebuilt with llvm 14.0.3
* Wed Apr 13 2022 Automatic Build System <autodist@mambasoft.it> 2.40.0-1mamba
- automatic version update by autodist
* Fri Nov 05 2021 Automatic Build System <autodist@mambasoft.it> 2.37.3-1mamba
- automatic version update by autodist
* Sun Aug 15 2021 Automatic Build System <autodist@mambasoft.it> 2.33.1-1mamba
- automatic version update by autodist
* Wed May 12 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 2.30.5-1mamba
- package created using the webbuild interface