ClickHouse/debian/rules
proller 72ccc69212 Debian: simpler package (#662)
* Allow use external re2 with re2_st=re2

* fix

* remove dupe

* use re2_st in FunctionsStringSearch.h

* fix

* move files from tools/etc to debian

* dont generate control

* version

* ok.

* wip

* Cmake: dont touch CMAKE_INSTALL_PREFIX

* wip

* works!

* clean

* okay

* like old

* wip

* wip

* okay

* clickhouse-server-base-dbg

* clean

* clickhouse-server-dbg

* Debian: Remove daemons

* Update rules

* add source/format

* control clean

* add watch

* clean

* clean

* temp fix build

* clean

* docs

* fake make_control

* fix

* testme

* testme

* add metrika package

* fake metrika files
2017-04-10 20:43:30 +03:00

85 lines
2.7 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_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)
%:
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-base.docs debian/clickhouse-server-common.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
ln -sf clickhouse-server-base.docs debian/clickhouse-server-metrika.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
debian/copy_clang_binaries.sh $(DESTDIR)/usr/share/clickhouse/bin/
./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)