fi
fi
+memcpy_swc=no
+AC_ARG_ENABLE([memcpy_swc],
+ AS_HELP_STRING([--enable-memcpy_swc], [enable memcpy_swc @<:@default=enabled@:>@]),
+ [memcpy_swc=$enableval],
+ [memcpy_swc=no])
+AC_MSG_CHECKING([whether memcpy_swc is enabled])
+AC_MSG_RESULT([${memcpy_swc}])
+
+if test "x$memcpy_swc" != "xno";then
+ AC_DEFINE([HAVE_MEMCPY_SWC], [1], [Enable memcpy_swc])
+ have_memcpy_swc=yes
+else
+ AC_DEFINE([HAVE_MEMCPY_SWC], [0], [Disable memcpy_swc])
+ have_memcpy_swc=no
+fi
+AM_CONDITIONAL([HAVE_MEMCPY_SWC], [test "x${have_memcpy_swc}" = "xyes"])
+
# Check for ttrace header files
PKG_CHECK_MODULES(TTRACE,
[ttrace],
%description devel
Development files for enlightenment
+#use memcpy_swc only in arm 32bit mobile/wearable
+%ifarch %{arm}
+%if "%{?profile}" == "wearable"
+%define MEMCPY_SWC use
+%endif
+%if "%{?profile}" == "mobile"
+%define MEMCPY_SWC use
+%endif
+%else
+%define MEMCPY_SWC nouse
+%endif
+
%prep
%setup -q -n %{name}-%{version}
cp %{SOURCE1001} .
%autogen \
--enable-function-trace \
--enable-wayland \
+%if %{?MEMCPY_SWC} == use
+ --enable-memcpy_swc \
+%endif
--enable-quick-init
make %{?_smp_mflags}
%install
%make_install
+%if %{?MEMCPY_SWC} == use
+cp -af %{_builddir}/%{buildsubdir}/src/bin/libmemcpy_swc.so* %{buildroot}/%{_libdir}/
+%endif
%files
%manifest %{name}.manifest
%defattr(-,root,root,-)
%license COPYING
%attr(750,root,root) %{_bindir}/enlightenment*
+%if %{?MEMCPY_SWC} == use
+%{_libdir}/libmemcpy_swc.so*
+%endif
%{_libdir}/enlightenment/*
%{_datadir}/enlightenment/*
%{_sysconfdir}/dbus-1/system.d/org.enlightenment.wm.conf
if HAVE_HWC
src_bin_enlightenment_LDADD += @HWC_LIBS@
endif
+if HAVE_MEMCPY_SWC
+src_bin_enlightenment_LDADD += -L$(top_srcdir)/src/bin -lmemcpy_swc
+endif
src_bin_enlightenment_info_SOURCES = \
src/bin/e.h \
/* local subsystem functions */
+#if HAVE_MEMCPY_SWC
+extern void *memcpy_swc(void *dest, const void *src, size_t n);
+#endif
+
static tbm_surface_h
_e_comp_hwc_create_copied_surface(E_Client *ec, Eina_Bool refresh)
{
tbm_surface_unmap(new_tsurface);
/* copy from src to dst */
+#if HAVE_MEMCPY_SWC
+ memcpy_swc(dst_info.planes[0].ptr, src_info.planes[0].ptr, src_info.planes[0].size);
+#else
memcpy(dst_info.planes[0].ptr, src_info.planes[0].ptr, src_info.planes[0].size);
+#endif
return new_tsurface;
}
--- /dev/null
+libmemcpy_swc.so
\ No newline at end of file