TMP := $(CURDIR)/debian/tmp/
USE_ASSEMBLER:=--enable-assembler
+DBG_PACKAGES := $(shell awk '/^Package:([[:space:]]+)([^[:space:]]+)-dbg([[:space:]]*)$$/ { gsub(/-dbg$$/, "", $$2); print $$2 }' debian/control)
export MYSQL_BUILD_CC=$(DEB_HOST_GNU_TYPE)-gcc
export MYSQL_BUILD_CXX=$(DEB_HOST_GNU_TYPE)-g++
USE_STATIC_MYSQLD:=--with-mysqld-ldflags=-all-static
endif
+# Default CMAKE_BUILD_TYPE is RelwithDebInfo, but this type
+# doesn't provide enough debugging symbols (actually, this type
+# is quite similar to Release mode).
+# So, let's build with debug symbols and put them into separate package.
+CMAKE_BUILD_TYPE ?= Debug
+
+# Otherwise, it can cause exception during build, like
+# "error: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)',
+# declared with attribute warn_unused_result [-Werror=unused-result]"
+# I've seen this error only then build with debug.
+ifeq ($(CMAKE_BUILD_TYPE), Debug)
+ UNUSED_RESULT_FLAGS:=-Wno-unused-result
+endif
+
override_dh_auto_clean:
@echo "RULES.$@"
dh_testdir
CC=$${MYSQL_BUILD_CC:-gcc} \
CFLAGS=$${MYSQL_BUILD_CFLAGS:-"-O2 -DBIG_JOINS=1 ${FORCE_FPIC_CFLAGS} -fno-strict-aliasing ${TAOCRYPT_OPT}"} \
CXX=$${MYSQL_BUILD_CXX:-g++} \
- CXXFLAGS=$${MYSQL_BUILD_CXXFLAGS:-"-O3 -DBIG_JOINS=1 -felide-constructors -fpermissive ${FORCE_FPIC_CFLAGS} -fno-strict-aliasing ${TAOCRYPT_OPT}"} \
+ CXXFLAGS=$${MYSQL_BUILD_CXXFLAGS:-"-O3 -DBIG_JOINS=1 -felide-constructors -fpermissive ${FORCE_FPIC_CFLAGS} -fno-strict-aliasing ${TAOCRYPT_OPT} ${UNUSED_RESULT_FLAGS}"} \
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_VERBOSE_MAKEFILE=ON \
$(FORCE_FPIC) \
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) \
-DWITH_WSREP=1 \
-DWITH_LIBWRAP=ON \
-DWITH_ZLIB=system \
override_dh_installcron-arch:
dh_installcron --name mysql-server
+ifeq ($(CMAKE_BUILD_TYPE), Debug)
+override_dh_strip:
+ for pkg in $(DBG_PACKAGES); do \
+ dh_strip -p$$pkg --dbg-package=$$pkg-dbg; \
+ done
+ dh_strip
+else
override_dh_strip:
@echo "Notice: not stripping debug symbols from any binaries"
+endif
binary: binary-indep binary-arch