Dist/Tizen: Fix build errors with gcc-14
[platform/upstream/dldt.git] / debian / rules
1 #!/usr/bin/make -f
2
3 export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
4 export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
5 export DEB_CXXFLAGS_MAINT_APPEND ?= -std=c++11
6 export SRC_ROOT ?= $(shell pwd)
7 export DH_VERBOSE = 1
8
9
10 EXTERNAL_ADE_ARCHIVE    := ade-cbe2db61a659c2cc304c3837406f95c39dfa938e
11 EXTERNAL_NGRAPH_ARCHIVE :=  ngraph-0.22.0-rc.2
12 EXTERNAL_TBB_ARCHIVE    := tbb_2019~U9
13 EXTERNAL_TBB_SRC_ROOT   := $(SRC_ROOT)/inference-engine/temp/tbb
14 EXTERNAL_TBB_SRC_PATCH0 := 0001-Local-Makefile-Skip-test-to-speed-up-the-build-time.patch
15 EXTERNAL_DEVKIT_ROOT    := $(SRC_ROOT)/inference-engine/temp/out
16 PREFIX  :=      /usr
17 LIBDIR  :=      lib/${DEB_HOST_MULTIARCH}
18 INCDIR  :=      include
19 SYSCONFDIR := /etc
20 DATADIR :=      $(PREFIX)/share
21 DEBVERS := $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
22 VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[~-].*//')
23
24 ifneq ($(filter $(DEB_HOST_ARCH),amd64),)
25 ENABLE_MKL_DNN=ON
26 ENABLE_SSE42=1
27 else
28 ENABLE_MKL_DNN=OFF
29 ENABLE_SSE42=0
30 endif
31
32 %:
33         dh $@ --with quilt --parallel
34
35 prepare_tbb:
36         echo "Preparing tbb_2019~U9......"
37         rm -rf $(SRC_ROOT)/inference-engine/temp && mkdir -p $(SRC_ROOT)/inference-engine/temp
38         cp $(SRC_ROOT)/packaging/$(EXTERNAL_TBB_ARCHIVE).tar.gz $(SRC_ROOT)/inference-engine/temp
39         cd $(SRC_ROOT)/inference-engine/temp && tar zxvf $(EXTERNAL_TBB_ARCHIVE).tar.gz && rm -f *.tar.gz
40         cd $(SRC_ROOT)/inference-engine/temp/tbb/include/tbb && sed -i 's/task\* next_offloaded;/tbb::task* next_offloaded;/' task.h
41         cp $(SRC_ROOT)/debian/tbb_patches/*.patch $(EXTERNAL_TBB_SRC_ROOT)
42         patch -d $(EXTERNAL_TBB_SRC_ROOT) -p1 < $(EXTERNAL_TBB_SRC_ROOT)/$(EXTERNAL_TBB_SRC_PATCH0)
43         cd $(EXTERNAL_TBB_SRC_ROOT) && LDFLAGS="" $(MAKE) tbb_build_prefix=ubuntu_$(DEB_HOST_ARCH) extra_inc=big_iron.inc -j$(nproc)
44         mkdir -p $(EXTERNAL_DEVKIT_ROOT)
45         mkdir -p $(EXTERNAL_DEVKIT_ROOT)/include
46         mkdir -p $(EXTERNAL_DEVKIT_ROOT)/lib
47         cd $(SRC_ROOT)/inference-engine/temp/tbb/build/ubuntu_$(DEB_HOST_ARCH)_release && \
48                 install -m 644 *.a $(EXTERNAL_DEVKIT_ROOT)/lib
49         cp -rf $(SRC_ROOT)/inference-engine/temp/tbb/include/tbb $(EXTERNAL_DEVKIT_ROOT)/include
50         echo "Done!"
51
52 override_dh_auto_configure: prepare_tbb
53         cp $(SRC_ROOT)/packaging/$(EXTERNAL_ADE_ARCHIVE).tar.gz $(SRC_ROOT)/inference-engine/thirdparty
54         cp $(SRC_ROOT)/packaging/$(EXTERNAL_NGRAPH_ARCHIVE).tar.gz $(SRC_ROOT)/inference-engine/thirdparty
55         cd $(SRC_ROOT)/inference-engine/thirdparty && \
56                         tar zxf $(EXTERNAL_ADE_ARCHIVE).tar.gz && \
57                         mv $(EXTERNAL_ADE_ARCHIVE)/* ade/
58         cd $(SRC_ROOT)/inference-engine/thirdparty && \
59                         tar zxf $(EXTERNAL_NGRAPH_ARCHIVE).tar.gz && \
60                         mv $(EXTERNAL_NGRAPH_ARCHIVE)/* ngraph/ && \
61                         sed -i "19 a #include <string>" ngraph/src/ngraph/pass/pass_config.hpp
62         cd $(SRC_ROOT)/inference-engine/thirdparty && \
63                         rm -rf *.tar.gz $(EXTERNAL_ADE_ARCHIVE)
64         cd $(SRC_ROOT)/inference-engine/thirdparty && \
65                         rm -rf *.tar.gz $(EXTERNAL_NGRAPH_ARCHIVE)
66         cd $(SRC_ROOT)/inference-engine && rm -rf build && mkdir -p build
67         cd $(SRC_ROOT)/inference-engine/build && if [ -f /usr/bin/gcc-10 ]; then export CC=/usr/bin/gcc-10 && export CXX=/usr/bin/g++-10; fi && cmake .. \
68                         -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX:PATH=$(PREFIX) \
69                         -DCMAKE_INSTALL_LIBDIR:PATH=$(LIBDIR) -DINCLUDE_INSTALL_DIR:PATH=$(INCDIR) \
70                         -DLIB_INSTALL_DIR:PATH=$(LIBDIR) -DSYSCONF_INSTALL_DIR:PATH=$(SYSCONFDIR) \
71                         -DSHARE_INSTALL_PREFIX:PATH=$(DATADIR) \
72                         -DBUILD_SHARED_LIBS:BOOL=OFF -DENABLE_ALTERNATIVE_TEMP=OFF \
73                         -DUSE_TBB_IN_HOUSE_STATIC_BUILD:PATH=$(EXTERNAL_DEVKIT_ROOT) -DUSE_MYRIAD_SYSTEM_DEPS=ON \
74                         -DENABLE_VPU=ON -DENABLE_MYRIAD=ON -DENABLE_MYRIAD_MVNC_TESTS=OFF -DENABLE_MYRIAD_NO_BOOT=OFF \
75                         -DENABLE_MKL_DNN=$(ENABLE_MKL_DNN) -DENABLE_SSE42=$(ENABLE_SSE42) -DENABLE_GNA=OFF \
76                         -DBUILD_ADE_DOCUMENTATION=OFF -DBUILD_ADE_TUTORIAL=OFF \
77                         -DBUILD_TESTING=OFF -DBUILD_TESTS=OFF \
78                         -DCLDNN__INCLUDE_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release -DCOVERAGE=OFF \
79                         -DDEVELOPMENT_PLUGIN_MODE=OFF -DENABLE_ADE_TESTING=OFF \
80                         -DENABLE_AFFINITY_GENERATOR=OFF -DENABLE_CLDNN=OFF  -DBUILD_PKGCONFIG=OFF \
81                         -DENABLE_CLDNN_BUILD=OFF -DENABLE_CLDNN_TESTS=OFF -DENABLE_CPPCHECK=OFF -DENABLE_CPPLINT=OFF \
82                         -DENABLE_CPPLINT_REPORT=OFF -DENABLE_CPP_CCT=OFF -DENABLE_DEBUG_SYMBOLS=OFF \
83                         -DENABLE_FUZZING=OFF -DENABLE_GAPI_TESTS=OFF -DENABLE_LTO=OFF \
84                         -DENABLE_OBJECT_DETECTION_TESTS=ON -DENABLE_OPENCV=OFF -DENABLE_PLUGIN_RPATH=OFF \
85                         -DENABLE_PROFILING_ITT=OFF -DENABLE_PROFILING_RAW=OFF -DENABLE_PYTHON=OFF -DENABLE_ROCKHOPER=OFF \
86                         -DENABLE_SAMPLES=OFF -DENABLE_SAMPLES_CORE=OFF -DENABLE_SEGMENTATION_TESTS=OFF -DENABLE_TESTS=ON \
87                         -DTREAT_WARNING_AS_ERROR=OFF \
88                         -DCMAKE_CXX_FLAGS="-Wno-odr -fno-lto"
89
90
91 override_dh_auto_build:
92                 dh_auto_build --builddirectory=$(SRC_ROOT)/inference-engine/build --
93
94 override_dh_auto_install:
95                 mkdir -p $(SRC_ROOT)/debian/tmp$(PREFIX)/$(LIBDIR)
96                 mkdir -p $(SRC_ROOT)/debian/tmp$(PREFIX)/$(INCDIR)
97                 mkdir -p debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig
98                 find $(SRC_ROOT)/inference-engine/bin -name "*.so" -exec install -m 644 {} $(SRC_ROOT)/debian/tmp$(PREFIX)/$(LIBDIR) \;
99                 find $(SRC_ROOT)/inference-engine/bin -name "plugins.xml" -exec install -m 644 {} $(SRC_ROOT)/debian/tmp$(PREFIX)/$(LIBDIR) \;
100                 cp -r $(SRC_ROOT)/inference-engine/include/* $(SRC_ROOT)/debian/tmp$(PREFIX)/$(INCDIR)
101                 find $(SRC_ROOT)/inference-engine/bin -name "*.a" -exec install -m 644 {} $(SRC_ROOT)/debian/tmp$(PREFIX)/$(LIBDIR) \;
102                 cp -f $(SRC_ROOT)/packaging/openvino.pc.in debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig
103                 sed -i 's|@VERSION@|$(VERSION)|g' debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig/openvino.pc.in
104                 sed -i 's|@PREFIX@|$(PREFIX)|g' debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig/openvino.pc.in
105                 sed -i 's|@LIB_INSTALL_DIR@|$(PREFIX)/$(LIBDIR)|g' debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig/openvino.pc.in
106                 sed -i 's|@INCLUDE_INSTALL_DIR@|$(PREFIX)/$(INCDIR)|g' debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig/openvino.pc.in
107                 mv debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig/openvino.pc.in debian/tmp$(PREFIX)/$(LIBDIR)/pkgconfig/openvino.pc
108 ifneq ($(filter $(DEB_HOST_ARCH),amd64),)
109                 cp -r $(SRC_ROOT)/inference-engine/src/extension/ext_list.hpp $(SRC_ROOT)/debian/tmp$(PREFIX)/$(INCDIR)
110 endif
111
112 override_dh_auto_clean:
113                 dh_auto_clean --builddirectory=$(SRC_ROOT)/inference-engine/build --
114                 rm -rf $(SRC_ROOT)/inference-engine/bin
115                 rm -rf $(SRC_ROOT)/inference-engine/build
116                 rm -rf $(SRC_ROOT)/debian/tmp
117                 rm -rf $(SRC_ROOT)/inference-engine/thirdparty/ade/*
118                 rm -rf $(SRC_ROOT)/inference-engine/thirdparty/ngraph/*