#!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # -pie only for static mode export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie # because copy_headers.sh have hardcoded path to build/include_directories.txt BUILDDIR = build DESTDIR = debian/tmp DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) #TODO: why it not working? (maybe works in debhelper 10+) #ifndef THREADS_COUNT # THREADS_COUNT:=$(shell nproc || grep -c ^processor /proc/cpuinfo) #endif #DEB_BUILD_OPTIONS+=parallel=$(THREADS_COUNT) CMAKE_FLAGS += -DENABLE_TESTS=0 DEB_CLANG ?= $(shell which clang-6.0 || which clang-5.0 || which clang-4.0 || which clang || which clang-3.9 || which clang-3.8) # CMAKE_FLAGS += -DINTERNAL_COMPILER_EXECUTABLE=$(basename $(DEB_CLANG)) # TODO: this is actual only if you will also change clang name in copy_clang_binaries.sh #DEB_CC ?= gcc-6 #DEB_CXX ?= g++-6 ifdef DEB_CXX DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) CC := $(DEB_CC) CXX := $(DEB_CXX) else CC := $(DEB_HOST_GNU_TYPE)-$(DEB_CC) CXX := $(DEB_HOST_GNU_TYPE)-$(DEB_CXX) endif endif CMAKE_FLAGS += -DCMAKE_CXX_COMPILER=`which $(CXX)` -DCMAKE_C_COMPILER=`which $(CC)` ifndef DH_VERBOSE CMAKE_FLAGS += -DCMAKE_VERBOSE_MAKEFILE=0 endif %: dh $@ --parallel --buildsystem=cmake --builddirectory=$(BUILDDIR) override_dh_auto_configure: dh_auto_configure -- $(CMAKE_FLAGS) override_dh_auto_test: #TODO, use ENABLE_TESTS=1 #./debian/tests_wrapper.sh override_dh_clean: rm -rf $(BUILDDIR) rm -rf $(DESTDIR) rm -rf debian/copyright debian/clickhouse-server-common.docs debian/clickhouse-client.docs dh_clean override_dh_strip: dh_strip -pclickhouse-server-base --dbg-package=clickhouse-common-dbg override_dh_install: # Making docs cp LICENSE debian/copyright ln -sf clickhouse-server-base.docs debian/clickhouse-client.docs ln -sf clickhouse-server-base.docs debian/clickhouse-server-common.docs mkdir -p $(DESTDIR)/etc/security/limits.d cp debian/clickhouse.limits $(DESTDIR)/etc/security/limits.d/clickhouse.conf # todo: remove after renaming package: mkdir -p $(DESTDIR)/etc/init.d cp debian/clickhouse-server.init $(DESTDIR)/etc/init.d/clickhouse-server mkdir -p $(DESTDIR)/etc/cron.d cp debian/clickhouse-server.cron.d $(DESTDIR)/etc/cron.d/clickhouse-server # In case building clickhouse-server, adding to package binary of clang, ld and header files - for dynamic compilation. mkdir -p $(DESTDIR)/usr/share/clickhouse/bin $(DESTDIR)/usr/share/clickhouse/headers ifeq ($(USE_INTERNAL_COMPILER),1) CLANG=$(DEB_CLANG) debian/copy_clang_binaries.sh $(DESTDIR)/usr/share/clickhouse/bin/ CLANG=$(DEB_CLANG) ./copy_headers.sh . $(DESTDIR)/usr/share/clickhouse/headers endif # fake metrika files when private dir is empty mkdir -p debian/tmp/etc/clickhouse-server/metrika touch debian/tmp/etc/clickhouse-server/metrika/config.xml touch debian/tmp/etc/clickhouse-server/metrika/users.xml dh_install --list-missing --sourcedir=$(DESTDIR) override_dh_shlibdeps: dh_shlibdeps -Xdebian/clickhouse-server-base/usr/share/clickhouse/bin/*