From: Wook Song Date: Thu, 18 Jun 2020 02:21:12 +0000 (+0900) Subject: Modify the rpm spec file to use flatbuffers in system X-Git-Tag: accepted/tizen/6.0/unified/20201030.104127^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=09c35c126558f655e1d4cc38c41e09683f38127a;p=platform%2Fupstream%2Ftensorflow.git Modify the rpm spec file to use flatbuffers in system 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 --- diff --git a/packaging/tensorflow-lite.pc.in b/packaging/tensorflow-lite.pc.in index 21b19a3..3d715e5 100644 --- a/packaging/tensorflow-lite.pc.in +++ b/packaging/tensorflow-lite.pc.in @@ -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@ diff --git a/packaging/tensorflow.spec b/packaging/tensorflow.spec index e71c348..51ced94 100644 --- a/packaging/tensorflow.spec +++ b/packaging/tensorflow.spec @@ -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/