From 7a3dd3afc52de2131208c74b94aa90f46f48c85b Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Wed, 20 Feb 2013 21:22:47 +0100 Subject: [PATCH] - new - system-boost patch to build with system boost libraries - c++ patch to fix C++ violations prohibited by gcc 4.6+ --- framewave-c++.patch | 22 ++++++ framewave-system-boost.patch | 31 ++++++++ framewave.spec | 146 +++++++++++++++++++++++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 framewave-c++.patch create mode 100644 framewave-system-boost.patch create mode 100644 framewave.spec diff --git a/framewave-c++.patch b/framewave-c++.patch new file mode 100644 index 0000000..7308442 --- /dev/null +++ b/framewave-c++.patch @@ -0,0 +1,22 @@ +--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/fe.h.orig 2009-07-09 11:15:40.000000000 +0200 ++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/fe.h 2013-02-20 17:25:54.537266158 +0100 +@@ -1302,7 +1302,7 @@ + { + protected: + // Algorithm instance +- mutable FE &fe; ++ FE &fe; + const U32 width; + const S32 s1Step, s2Step, s3Step,s4Step; + const S32 d1Step,d2Step,d3Step,d4Step; +--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/fex.h.orig 2009-07-09 11:15:40.000000000 +0200 ++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/common/include/fex.h 2013-02-20 17:34:16.300578433 +0100 +@@ -119,7 +119,7 @@ + class B0St + { + protected: +- mutable FE &fe; // Algorithm instance ++ FE &fe; // Algorithm instance + const U32 width; + const S32 s1Step, s2Step, s3Step,s4Step; + U32 threads; diff --git a/framewave-system-boost.patch b/framewave-system-boost.patch new file mode 100644 index 0000000..5f210b2 --- /dev/null +++ b/framewave-system-boost.patch @@ -0,0 +1,31 @@ +--- FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwBase/fwBase.sconscript.orig 2009-07-09 11:15:36.000000000 +0200 ++++ FRAMEWAVE_1.3.1_SRC/Framewave/domain/fwBase/fwBase.sconscript 2013-02-20 16:19:45.120766072 +0100 +@@ -17,26 +17,11 @@ + # Setup the path to the constatnts source file + pthConstCPP = join(oRoot.dctFwVars['pthProjectRoot'], 'common', 'src', 'Constants.cpp') + +-if oRoot.dctFwVars['thread'] == 'pthread' : +- pthBoostBase = join(oRoot.dctFwVars['pthProjectRoot'], '..', 'sdk', 'boost_1_34_0', 'libs', 'thread', 'src') +- lstExtraBaseCPPs = [ pthConstCPP , +- join(pthBoostBase,'barrier.cpp'), \ +- join(pthBoostBase,'condition.cpp'), \ +- join(pthBoostBase,'exceptions.cpp'), \ +- join(pthBoostBase,'mutex.cpp'), \ +- join(pthBoostBase,'once.cpp'), \ +- join(pthBoostBase,'thread.cpp'), \ +- join(pthBoostBase,'tss_dll.cpp'), \ +- join(pthBoostBase,'tss_hooks.cpp'), \ +- join(pthBoostBase,'tss_pe.cpp'), \ +- join(pthBoostBase,'xtime.cpp') ] +-else: +- lstExtraBaseCPPs = [ pthConstCPP ] ++lstExtraBaseCPPs = [ pthConstCPP ] + + # Project script essentially starts here +-fwBase = fwProject(oRoot, 'fwBase') ++fwBase = fwProject(oRoot, 'fwBase', LIBS=['boost_thread', 'boost_system']) + +-setupIncludePaths(fwBase.oEnv, join('sdk', 'boost_1_34_0'), dontRecurse=1) + oLib_fwBase = fwBase.initBuildObjects(lstExtraCPPs=lstExtraBaseCPPs) + + Return("oLib_fwBase") diff --git a/framewave.spec b/framewave.spec new file mode 100644 index 0000000..73a361a --- /dev/null +++ b/framewave.spec @@ -0,0 +1,146 @@ +# +# Conditional build: +%bcond_without static_libs # don't build static libraries +# +Summary: Framewave - set of popular image and signal processing routines +Summary(pl.UTF-8): Framewave - zestaw popularnych funkcji do przetwarzania obrazu i sygnału +Name: framewave +Version: 1.3.1 +Release: 1 +License: Apache v2.0 +Group: Libraries +Source0: http://downloads.sourceforge.net/framewave/FRAMEWAVE_%{version}_SRC.tar.gz +# Source0-md5: 86a28ebfbfd70be06ab54d0d8b17ebd7 +Patch0: %{name}-system-boost.patch +Patch1: %{name}-c++.patch +URL: http://framewave.sourceforge.net/ +BuildRequires: boost-devel >= 1.34 +BuildRequires: libstdc++-devel +BuildRequires: rpmbuild(macros) >= 1.385 +BuildRequires: scons +BuildRequires: sed >= 4.0 +ExclusiveArch: %{ix86} %{x8664} +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%description +Framewave(TM) is a collection of low-level software routines for x86 +processors. Framewave (FW) is designed to aid and accelerate +application development, debugging, and optimization. Framewave +function capabilities extend from simple arithmetic operations to +rich, complex domain specific tasks, such as image, video, and signal +processing. + +%description -l pl.UTF-8 +Framewave(TM) to zestaw niskopoziomowych procedur dla procesorów x86. +Biblioteki zostały zaprojektowane tak, aby wspomóc i przyspieszyć +tworzenie aplikacji, diagnostykę i optymalizację. Możliwości funkcji +Framewave obejmują obszar od prostych operacji arytmetycznych po +złożone zadania specyficzne dla dziedziny, takie jak przetwarzanie +obrazu statycznego i ruchomego oraz sygnału. + +%package devel +Summary: Header files for Framewave libraries +Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Framewave +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +Header files for Framewave libraries. + +%description devel -l pl.UTF-8 +Pliki nagłówkowe bibliotek Framewave. + +%package static +Summary: Static Framewave libraries +Summary(pl.UTF-8): Statyczne biblioteki Framewave +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} + +%description static +Static Framewave libraries. + +%description static -l pl.UTF-8 +Statyczne biblioteki Framewave. + +%prep +%setup -q -n FRAMEWAVE_%{version}_SRC +%patch0 -p1 +%patch1 -p1 + +# kill precompiled binaries +%{__rm} BuildTools/bin/FwHeaderConvert_* + +%{__sed} -i -e "s/'-O2'/'%{rpmcxxflags}'/" BuildTools/buildscripts/fwflags_gcc.py + +%build +cd Framewave +mkdir -p build/{include,tmp,bin} +for kind in shared %{?with_static_libs:static} ; do +%scons \ +%ifarch %{x8664} + bitness=64 \ +%else + bitness=32 \ +%endif + libtype=$kind \ + variant=release +done + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}} + +cp -p Framewave/build/include/*.h $RPM_BUILD_ROOT%{_includedir} +install Framewave/build/bin/release_shared_*/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir} +/sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir} +for f in $RPM_BUILD_ROOT%{_libdir}/lib*.so.*.*.* ; do + ln -sf $(basename $f) $(echo $f | sed -e 's/[.0-9]*$//') +done +%if %{with static_libs} +install Framewave/build/bin/release_static_*/lib*.a $RPM_BUILD_ROOT%{_libdir} +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(644,root,root,755) +%doc License.txt README +%attr(755,root,root) %{_libdir}/libfwBase.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libfwBase.so.1 +%attr(755,root,root) %{_libdir}/libfwImage.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libfwImage.so.1 +%attr(755,root,root) %{_libdir}/libfwJPEG.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libfwJPEG.so.1 +%attr(755,root,root) %{_libdir}/libfwSignal.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libfwSignal.so.1 +%attr(755,root,root) %{_libdir}/libfwVideo.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libfwVideo.so.1 + +%files devel +%defattr(644,root,root,755) +%doc Framewave/doc/*.h +%attr(755,root,root) %{_libdir}/libfwBase.so +%attr(755,root,root) %{_libdir}/libfwImage.so +%attr(755,root,root) %{_libdir}/libfwJPEG.so +%attr(755,root,root) %{_libdir}/libfwSignal.so +%attr(755,root,root) %{_libdir}/libfwVideo.so +%{_includedir}/fwBase.h +%{_includedir}/fwImage.h +%{_includedir}/fwImage_sol.h +%{_includedir}/fwJPEG.h +%{_includedir}/fwSignal.h +%{_includedir}/fwVideo.h + +%if %{with static_libs} +%files static +%defattr(644,root,root,755) +%{_libdir}/libfwBase.a +%{_libdir}/libfwImage.a +%{_libdir}/libfwJPEG.a +%{_libdir}/libfwSignal.a +%{_libdir}/libfwVideo.a +%endif -- 2.43.0