mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-18 13:42:02 +00:00
c62901a871
* Fix missing includes * clean * Allow compile with clang 3.8 with warning * Add message * Internal compiler: first try find and use clang vith version in postfix (clang-4.0) * Try use clang-3.8 * try use all clangs * Update copy_clang_binaries.sh * Update rules
92 lines
3.1 KiB
Makefile
Executable File
92 lines
3.1 KiB
Makefile
Executable File
#!/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)
|
|
|
|
DEB_CC ?= gcc-6
|
|
DEB_CXX ?= g++-6
|
|
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_ADD += -DINTERNAL_COMPILER_EXECUTABLE=$(basename $(DEB_CLANG)) # TODO: this is actual only if you will also change clang name in copy_clang_binaries.sh
|
|
|
|
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
|
|
|
|
CMAKE_FLAGS ?= -DCMAKE_CXX_COMPILER=`which $(CXX)` -DCMAKE_C_COMPILER=`which $(CC)` -DENABLE_TESTS=0 $(CMAKE_FLAGS_ADD)
|
|
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
|
|
CLANG=$(DEB_CLANG) debian/copy_clang_binaries.sh $(DESTDIR)/usr/share/clickhouse/bin/
|
|
CLANG=$(DEB_CLANG) ./copy_headers.sh . $(DESTDIR)/usr/share/clickhouse/headers
|
|
|
|
|
|
# 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/*
|