diff --git a/debian/control.in b/debian/control.in index e13ac5c1c78..f8e93632a90 100644 --- a/debian/control.in +++ b/debian/control.in @@ -1,6 +1,8 @@ Source: clickhouse Priority: optional Maintainer: Alexey Milovidov -Build-Depends: debhelper (>= 5) +Build-Depends: debhelper (>= 5), cmake, gcc-6, g++-6, + libicu-dev, libreadline-dev, libmysqlclient-dev, unixodbc-dev, + libglib2.0-dev, libltdl-dev, libssl-dev Standards-Version: 3.8.0 Section: libs diff --git a/debian/rules b/debian/rules index ec5176062d9..50cc38b70e6 100755 --- a/debian/rules +++ b/debian/rules @@ -4,11 +4,33 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 ifndef THREADS_COUNT - THREADS_COUNT=`grep -c ^processor /proc/cpuinfo` + THREADS_COUNT=`nproc || grep -c ^processor /proc/cpuinfo` endif BUILD_TARGETS=clickhouse $(DAEMONS) +DEB_GCC_VERSION ?= -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 := gcc$(DEB_GCC_VERSION) +CXX := g++$(DEB_GCC_VERSION) +else +CC := $(DEB_HOST_GNU_TYPE)-gcc$(DEB_GCC_VERSION) +CXX := $(DEB_HOST_GNU_TYPE)-g++$(DEB_GCC_VERSION) +endif + +CMAKE_FLAGS ?= -DCMAKE_CXX_COMPILER=`which $(CXX)` -DCMAKE_C_COMPILER=`which $(CC)` + +ifdef CMAKE_BUILD_TYPE + CMAKE_FLAGS += -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) +endif + +ifdef USE_STATIC_LIBRARIES + CMAKE_FLAGS += -DUSE_STATIC_LIBRARIES=$(USE_STATIC_LIBRARIES) +endif + configure-stamp: dh_testdir rm -rf build @@ -21,8 +43,9 @@ build: build-stamp build-stamp: configure-stamp dh_testdir # если не задан тип сборки запускаем cmake без указания типа, если задан - передаём его - # для сборки в Debug нужно запустить так: debuild -e CMAKE_BUILD_TYPE=Debug - cd build && pwd && if [ -z CMAKE_BUILD_TYPE ]; then cmake ..; else cmake -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) ..; fi + # for building Debug run: debuild -e CMAKE_BUILD_TYPE=Debug + # for building with shared libs run: debuild -e USE_STATIC_LIBRARIES=0 + cd build && pwd && cmake .. $(CMAKE_FLAGS) # TODO: возможно надо исправить # последовательно запускаем make для каждой из целей. # т.к. при параллельном запуске (make target1 target2) несколько раз одновременно создаются бинарники