Modify the rpm spec file to use flatbuffers in system 32/236532/6 accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix tizen_6.0 tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.104127 accepted/tizen/6.0/unified/hotfix/20201103.050604 accepted/tizen/unified/20200624.130119 submit/tizen/20200624.045407 submit/tizen_6.0/20201029.205504 submit/tizen_6.0_hotfix/20201102.192904 submit/tizen_6.0_hotfix/20201103.115104 tizen_6.0.m2_release
authorWook Song <wook16.song@samsung.com>
Thu, 18 Jun 2020 02:21:12 +0000 (11:21 +0900)
committerWook Song <wook16.song@samsung.com>
Fri, 19 Jun 2020 13:17:35 +0000 (22:17 +0900)
This patch modifies the rpm spec file to use the flatbuffers dev-kit
provided by the system.

Change-Id: Icb8ab603808caef8d9925fa8c8f613f746cd8495
Signed-off-by: Wook Song <wook16.song@samsung.com>
packaging/tensorflow-lite.pc.in
packaging/tensorflow.spec

index 21b19a3..3d715e5 100644 (file)
@@ -2,5 +2,5 @@ Name: tensorflow lite
 Description: tensorflow lite static library
 Version: 1.13.1
 Requires:
-Libs: -L@libdir@ -ltensorflow-lite
+Libs: -L@libdir@ -ltensorflow-lite -lflatbuffers
 Cflags: -I@includedir@
index e71c348..51ced94 100644 (file)
@@ -6,16 +6,14 @@ License:    Apache-2.0
 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
@@ -23,6 +21,7 @@ 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
@@ -38,6 +37,7 @@ a wide variety of other domains as well.
 
 %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
@@ -115,41 +115,33 @@ CXXFLAGS="${CXXFLAGS} -fno-lto"
 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
@@ -158,15 +150,10 @@ ln -s $(pwd)/../../../../../build/farmhash/src/farmhash farmhash
 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
@@ -195,7 +182,7 @@ ln -sf %{_includedir}/tensorflow/lite %{buildroot}%{_includedir}/tensorflow/cont
 
 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/