Source0: %{name}-%{version}.tar.gz
Source1001: tensorflow.manifest
Source1002: gcc_version_check.c
-Source10000: abseil_cpp.tar.gz
-Source10030: eigen.tar.gz
-Source10040: farmhash.tar.gz
-Source10050: fft2d.tar.gz
-Source10060: gemmlowp.tar.gz
-Source31000: eigen.patch
+Source10000: abseil_cpp.tar.gz
+Source10030: eigen.tar.gz
+Source10040: farmhash.tar.gz
+Source10050: fft2d.tar.gz
+Source10060: gemmlowp.tar.gz
# Exclusively for tf-lite
-Source31010: flatbuffers.tar.gz
-Source31020: neon2sse.zip
+Source31020: neon2sse.zip
Source4001: tensorflow.pc.in
Source4002: tensorflow-lite.pc.in
BuildRequires: unzip
BuildRequires: cmake
BuildRequires: zlib-devel-static
+BuildRequires: flatbuffers-devel
%description
TensorFlow is an open source software library for numerical computation using
%package -n tensorflow-lite-devel
Summary: Tensorflow Lite development headers and object file
+Requires: flatbuffers-devel
%description -n tensorflow-lite-devel
Tensorflow Lite development headers and object file
cp %{SOURCE1002} .
gcc gcc_version_check.c -Wno-error=class-memaccess && export CFLAGS="$CFLAGS -Wno-error=class-memaccess" && export CXXFLAGS="$CXXFLAGS -Wno-error=class-memaccess" && echo "Applying Wno-error=class-memaccess"|| echo "OLD GCC. Don't Add Wno-error=class-memaccess"
+%ifarch %arm aarch64
+CFLAGS="${CFLAGS} -DARM_NON_MOBILE -D__ARM_NEON"
+CXXFLAGS="${CXXFLAGS} -DARM_NON_MOBILE -D__ARM_NEON"
%ifarch %arm
-CFLAGS="${CFLAGS} -DARM_NON_MOBILE -mfpu=neon -mno-unaligned-access"
-CXXFLAGS="${CXXFLAGS} -DARM_NON_MOBILE -mfpu=neon -mno-unaligned-access"
+CFLAGS="${CFLAGS} -mfpu=neon -mno-unaligned-access"
+CXXFLAGS="${CXXFLAGS} -mfpu=neon -mno-unaligned-access"
+%endif
%endif
#######################################3
# build tensorflow lite
-# prep flatbuffers for tf-lite
-mkdir -p build
-pushd build
-tar -xf %{SOURCE31010}
-pushd flatbuffers
-
-EXTRA_CFLAGS="${CFLAGS} -I$(pwd)/include"
-EXTRA_CXXFLAGS="${CXXFLAGS} -I$(pwd)/include"
-LDFLAGS="${LDFLAGS} -L$(pwd)/build"
-
-mkdir -p build
-pushd build
-%cmake ..
-make -j%{?max_cpus}
-popd
-popd
-popd
-
# prep neon2sse for tf-lite
pushd build
unzip %{SOURCE31020}
popd
-
-EXTRA_CFLAGS="${EXTRA_CFLAGS} -I$(pwd)/build/eigen/src/eigen -I$(pwd)/build/gemmlowp/src/gemmlowp -I$(pwd)/build/ARM_NEON_2_x86_SSE-master -I$(pwd)/build/farmhash/src/farmhash/src -fPIC"
-EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -I$(pwd)/build/eigen/src/eigen -I$(pwd)/build/gemmlowp/src/gemmlowp -I$(pwd)/build/ARM_NEON_2_x86_SSE-master -I$(pwd)/build/farmhash/src/farmhash/src -fPIC"
-LDFLAGS="${LDFLAGS} -ldl"
+EXTRA_CFLAGS="${CFLAGS} ${EXTRA_CFLAGS} -I$(pwd)/build/eigen/src/eigen -I$(pwd)/build/gemmlowp/src/gemmlowp -I$(pwd)/build/ARM_NEON_2_x86_SSE-master -I$(pwd)/build/farmhash/src/farmhash/src -fPIC"
+EXTRA_CXXFLAGS="${CXXFLAGS} ${EXTRA_CXXFLAGS} -I$(pwd)/build/eigen/src/eigen -I$(pwd)/build/gemmlowp/src/gemmlowp -I$(pwd)/build/ARM_NEON_2_x86_SSE-master -I$(pwd)/build/farmhash/src/farmhash/src -fPIC"
+# override LIBS in Makefile
+LIBS=" \
+ -lflatbuffers \
+ -ldl \
+ -lstdc++ \
+ -lpthread \
+ -lm \
+ -lz"
mkdir -p tensorflow/lite/tools/make/downloads
pushd tensorflow/lite/tools/make/downloads
ln -s $(pwd)/../../../../../build/eigen/src/eigen eigen
ln -s $(pwd)/../../../../../build/abseil_cpp/src/abseil_cpp absl
ln -s $(pwd)/../../../../../build/gemmlowp/src/gemmlowp gemmlowp
-ln -s $(pwd)/../../../../../build/flatbuffers flatbuffers
popd
# main build of tf-lite
-%ifarch %arm aarch64
-make -f tensorflow/lite/tools/make/Makefile TARGET=TIZEN TARGET_ARCH=%{_target_cpu} CXXFLAGS="${EXTRA_CXXFLAGS} -D__ARM_NEON" CFLAGS="${EXTRA_CFLAGS} -D__ARM_NEON" -j%{?max_cpus}
-%else
-make -f tensorflow/lite/tools/make/Makefile TARGET=TIZEN TARGET_ARCH=%{_target_cpu} CXXFLAGS="${EXTRA_CXXFLAGS}" CFLAGS="${EXTRA_CFLAGS}"
-%endif
+make -f tensorflow/lite/tools/make/Makefile TARGET=TIZEN TARGET_ARCH=%{_target_cpu} CXXFLAGS="${EXTRA_CXXFLAGS}" CFLAGS="${EXTRA_CFLAGS}" LIBS="${LIBS}" -j%{?max_cpus}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
cp %{SOURCE4002} .
sed -i 's:@libdir@:%{_libdir}:g
- s:@includedir@:%{_includedir}:g' ./tensorflow-lite.pc.in
+ s:@includedir@:%{_includedir}:g' ./tensorflow-lite.pc.in
install -m 0644 tensorflow/lite/tools/make/gen/TIZEN_%{_target_cpu}/lib/libtensorflow-lite.a %{buildroot}%{_libdir}/
install -m 0644 tensorflow/lite/*.h %{buildroot}%{_includedir}/tensorflow/lite/