mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
361649b906
debian/rules: --with-yassl is deprecated. Changed to --with-ssl debian/libmysqlclientSLIB-dev.files.in: Removing mention of files no longer in 5.1 debian/mysql-client-BASE.files.in: Removing mention of files no longer in 5.1 debian/mysql-test-BASE.files.in: Removing mention of files no longer in 5.1 debian/mysql-server-BASE.files.in: Removing mention of files no longer in 5.1
405 lines
14 KiB
Makefile
Executable file
405 lines
14 KiB
Makefile
Executable file
#!/usr/bin/make -f
|
|
|
|
export SHELL = /bin/bash
|
|
|
|
export DH_VERBOSE=1
|
|
|
|
include debian/defs.mk
|
|
|
|
changelog_values := $(shell dpkg-parsechangelog \
|
|
| awk '/^(Version|Source|Distribution):/ {print $$2}')
|
|
PKGSOURCE := $(word 1, $(changelog_values))
|
|
PKGVERSION := $(word 2, $(changelog_values))
|
|
PKGDISTRO := $(word 3, $(changelog_values))
|
|
PKGFLAVOR := $(shell echo $(PKGSOURCE) | perl -nle 's/mysql-(.*?)-\d+.*/$$1/ && print ')
|
|
|
|
ifeq ("x$(MYSQL_FLAVOR)","x")
|
|
export MYSQL_FLAVOR=$(PKGFLAVOR)
|
|
endif
|
|
|
|
ifneq ("x$(MYSQL_FLAVOR)","x")
|
|
MYSQL_BRANDED_BASE_VERSION:=$(MYSQL_FLAVOR)-$(MYSQL_BASE_VERSION)
|
|
MYSQL_BRANDED_PREVIOUS_BASE_VERSION:=$(MYSQL_FLAVOR)-$(MYSQL_PREVIOUS_BASE_VERSION)
|
|
else
|
|
ifeq ( "$(MYSQL_BRANDED_BASE_VERSION)","@MYSQL_BRANDED_BASE_VERSION@" )
|
|
MYSQL_BRANDED_BASE_VERSION:=$(MYSQL_BASE_VERSION)
|
|
MYSQL_BRANDED_PREVIOUS_BASE_VERSION:=$(MYSQL_PREVIOUS_BASE_VERSION)
|
|
else
|
|
MYSQL_BRANDED_BASE_VERSION:=$(MYSQL_BRANDED_BASE_VERSION)
|
|
MYSQL_BRANDED_PREVIOUS_BASE_VERSION:=$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION)
|
|
endif
|
|
endif
|
|
|
|
PACKAGE=mysql-$(MYSQL_BRANDED_BASE_VERSION)
|
|
|
|
PWD=$(shell pwd)
|
|
TMP=$(PWD)/debian/tmp/
|
|
|
|
|
|
ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
|
|
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
|
|
|
MAKE_J = $(shell if grep -q processor.*3 /proc/cpuinfo; then echo "-j 4"; else echo ""; fi )
|
|
|
|
ifeq ($(findstring $(ARCH),i386 sparc),$(ARCH))
|
|
USE_ASSEMBLER=--enable-assembler
|
|
endif
|
|
|
|
ifeq ($(findstring $(ARCH), arm),$(ARCH))
|
|
FOMIT_FRAME_POINTER=
|
|
else
|
|
FOMIT_FRAME_POINTER=-fomit-frame-pointer
|
|
endif
|
|
|
|
# trying to raise stability on i386. See #116631
|
|
# don't use it on ia64
|
|
ifeq ($(findstring $(ARCH),i386),$(ARCH))
|
|
FNO_EXCEPTIONS=-fno-exceptions
|
|
endif
|
|
|
|
# This causes seg11 crashes if LDAP is used for groups in /etc/nsswitch.conf
|
|
# so it is disabled by default although, according to MySQL, it brings >10%
|
|
# performance gain if enabled. See #299382.
|
|
ifeq ($(STATIC_MYSQLD), 1)
|
|
USE_STATIC_MYSQLD=--with-mysqld-ldflags=-all-static
|
|
endif
|
|
|
|
ifneq ("$(MYSQL_BUILD_TEST)","yes")
|
|
MYSQL_BUILD_TEST=no
|
|
endif
|
|
|
|
control-file:
|
|
@echo "## This file is autogenerated you want to edit control.in instead" > debian/control.tmp
|
|
sed -e "s/@MYSQL_BASE_VERSION@/$(MYSQL_BASE_VERSION)/g" \
|
|
-e "s/@MYSQL_BRANDED_BASE_VERSION@/$(MYSQL_BRANDED_BASE_VERSION)/g" \
|
|
-e "s/@VERSIONSTRING@/$(VERSIONSTRING)/g" \
|
|
-e "s/@MYSQL_PREVIOUS_BASE_VERSION@/$(MYSQL_PREVIOUS_BASE_VERSION)/g" \
|
|
-e "s/@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@/$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION)/g" \
|
|
-e "s/@MYSQL_SOURCE_BASE_VERSION@/$(MYSQL_SOURCE_BASE_VERSION)/g" \
|
|
-e "s/@SHARED_LIB_MAJOR_VERSION@/$(SHARED_LIB_MAJOR_VERSION)/g" \
|
|
-e "s/@NDB_SHARED_LIB_MAJOR_VERSION@/$(NDB_SHARED_LIB_MAJOR_VERSION)/g" \
|
|
debian/control.in >> debian/control.tmp
|
|
[ -e debian/control ] \
|
|
&& cmp -s debian/control debian/control.tmp \
|
|
&& rm -f debian/control.tmp && exit 0; \
|
|
mv debian/control.tmp debian/control
|
|
|
|
|
|
missing:
|
|
./BUILD/autorun.sh
|
|
|
|
configure: configure-stamp
|
|
configure-stamp:
|
|
@echo "RULES.configure-stamp"
|
|
dh_testdir
|
|
|
|
ifneq ($(ARCH_OS),hurd)
|
|
@if [ ! -d /proc/self ]; then echo "/proc IS NEEDED" 1>&2; exit 1; fi
|
|
endif
|
|
|
|
@cp debian/control debian/control.sav
|
|
( \
|
|
CC="$(MYSQL_BUILD_CC)" \
|
|
CXX="$(MYSQL_BUILD_CXX)" \
|
|
BUILD_OPTS="${MYSQL_BUILD_OPTS:-''}" \
|
|
CFLAGS="${MYSQL_BUILD_CFLAGS:-'-DBIG_JOINS=1 -O2'}" \
|
|
CXXFLAGS="${MYSQL_BUILD_CXXFLAGS:-'-DBIG_JOINS=1 -felide-constructors -fno-rtti -O2'}" \
|
|
./configure \
|
|
--build=${DEB_BUILD_GNU_TYPE} \
|
|
--host=${DEB_HOST_GNU_TYPE} \
|
|
\
|
|
--prefix=/usr \
|
|
--exec-prefix=/usr \
|
|
--libexecdir=/usr/sbin \
|
|
--datadir=/usr/share \
|
|
--localstatedir=/var/lib/mysql \
|
|
--includedir=/usr/include \
|
|
--infodir=/usr/share/info \
|
|
--mandir=/usr/share/man \
|
|
\
|
|
--with-comment="MySQL Server (custom build)" \
|
|
--with-server-suffix="-custom" \
|
|
\
|
|
--enable-shared \
|
|
--enable-thread-safe-client \
|
|
$(USE_ASSEMBLER) \
|
|
--enable-local-infile \
|
|
\
|
|
--with-big-tables \
|
|
--with-unix-socket-path=/var/run/mysqld/mysqld.sock \
|
|
--with-mysqld-user=mysql \
|
|
$(USE_STATIC_MYSQLD) \
|
|
--without-bench \
|
|
--with-zlib-dir=bundled \
|
|
--with-ssl \
|
|
--with-readline \
|
|
--with-extra-charsets=all \
|
|
--with-innodb \
|
|
--with-blackhole-storage-engine \
|
|
--with-example-storage-engine \
|
|
\
|
|
--with-isam \
|
|
--with-archive-storage-engine \
|
|
--with-csv-storage-engine \
|
|
--with-federated-storage-engine \
|
|
--without-embedded-server \
|
|
--with-ndbcluster \
|
|
--with-ndb-shm \
|
|
--without-ndb-sci \
|
|
--without-ndb-test \
|
|
--with-ndb-docs \
|
|
$(MYSQL_BUILD_OPTS) \
|
|
)
|
|
|
|
@mv debian/control.sav debian/control
|
|
|
|
touch configure-stamp
|
|
|
|
|
|
build: build-stamp
|
|
build-stamp: configure
|
|
dh_testdir
|
|
|
|
$(MAKE) $(MAKE_J)
|
|
|
|
if [ -f sql/.libs/mysqld ] ; then \
|
|
nm --numeric-sort sql/.libs/mysqld > sql/mysqld.sym ; \
|
|
else \
|
|
nm --numeric-sort sql/mysqld > sql/mysqld.sym ; \
|
|
fi
|
|
|
|
|
|
if [ "${MYSQL_BUILD_TEST}" != "no" ] ; then \
|
|
( cd mysql-test ;\
|
|
MTR_BUILD_THREAD=auto ; \
|
|
export MTR_BUILD_THREAD ; \
|
|
perl ./mysql-test-run.pl --force --report-features ; \
|
|
perl ./mysql-test-run.pl --force --ps-protocol ; \
|
|
true ) \
|
|
fi
|
|
|
|
|
|
touch build-stamp
|
|
|
|
stamp-control:
|
|
# We have to prepare the various control files
|
|
|
|
echo "in stamp-control - BASE_VER==$(MYSQL_BASE_VERSION)"
|
|
# We have some naming inconsistencies here...
|
|
for f in debian/*.in debian/po/POTFILES.in.in ; do \
|
|
f2=`echo $$f | sed "s,BASE,$(MYSQL_BRANDED_BASE_VERSION),g;\
|
|
s,PREV,$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION),g;\
|
|
s,NLIB,$(NDB_SHARED_LIB_MAJOR_VERSION),g;\
|
|
s,SLIB,$(SHARED_LIB_MAJOR_VERSION),g;s,\.in$$,,"`; \
|
|
if [ $$f2 != debian/control -a $$f2 != debian/Makefile ]; then \
|
|
sed -e "s/@MYSQL_BASE_VERSION@/$(MYSQL_BASE_VERSION)/g" \
|
|
-e "s/@MYSQL_BRANDED_BASE_VERSION@/$(MYSQL_BRANDED_BASE_VERSION)/g" \
|
|
-e "s/@VERSIONSTRING@/$(VERSIONSTRING)/g" \
|
|
-e "s/@PRIORITY@/$(PRIORITY)/g" \
|
|
-e "s/@MYSQL_PREVIOUS_BASE_VERSION@/$(MYSQL_PREVIOUS_BASE_VERSION)/g" \
|
|
-e "s/@MYSQL_BRANDED_PREVIOUS_BASE_VERSION@/$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION)/g" \
|
|
-e "s/@MYSQL_SOURCE_BASE_VERSION@/$(MYSQL_SOURCE_BASE_VERSION)/g" \
|
|
-e "s/@SHARED_LIB_MAJOR_VERSION@/$(SHARED_LIB_MAJOR_VERSION)/g" \
|
|
-e "s/@NDB_SHARED_LIB_MAJOR_VERSION@/$(NDB_SHARED_LIB_MAJOR_VERSION)/g" \
|
|
-e "s,@SCRIPTDIR@,/$(scriptdir),g" \
|
|
-e "s,@INFO@,$(findstring info, $(doc_dependencies)),g" \
|
|
<$$f >$$f2; \
|
|
fi; \
|
|
done
|
|
echo "MYSQL_BUILD_OPTS=$(MYSQL_BUILD_OPTS)" >> debian/defs.mk
|
|
echo "MYSQL_BUILD_CXXFLAGS=$(MYSQL_BUILD_CXXFLAGS)" >> debian/defs.mk
|
|
echo "MYSQL_BUILD_CFLAGS=$(MYSQL_BUILD_CFLAGS)" >> debian/defs.mk
|
|
echo "MYSQL_BUILD_CC=$(MYSQL_BUILD_CC)" >> debian/defs.mk
|
|
echo "MYSQL_BUILD_CXX=$(MYSQL_BUILD_CXX)" >> debian/defs.mk
|
|
|
|
|
|
# depending on two files we expect to be in the root
|
|
# to protect from accidentally deleting a whole bunch of
|
|
# files somewhere else.
|
|
clean: configure.in Makefile.am control-file
|
|
|
|
rm -f debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql.init
|
|
|
|
# We depend on this later, and delete the results in the mean time
|
|
$(MAKE) -f debian/rules stamp-control
|
|
dh_testdir
|
|
dh_testroot
|
|
rm -f configure-stamp
|
|
rm -f build-stamp
|
|
|
|
cp debian/defs.mk debian/defs.mk.sav
|
|
cp debian/control debian/control.sav
|
|
-make distclean
|
|
mv debian/defs.mk.sav debian/defs.mk
|
|
mv debian/control.sav debian/control
|
|
|
|
debconf-updatepo
|
|
|
|
for f in debian/*.in; do \
|
|
f2=`echo $$f | sed "s,BASE,$(MYSQL_BRANDED_BASE_VERSION),g;\
|
|
s,PREV,$(MYSQL_BRANDED_PREVIOUS_BASE_VERSION),g;\
|
|
s,NLIB,$(NDB_SHARED_LIB_MAJOR_VERSION),g;\
|
|
s,SLIB,$(SHARED_LIB_MAJOR_VERSION),g;s,\.in$$,,"`; \
|
|
if [ $$f2 != debian/control -a $$f2 != debian/Makefile -a $$f2 != debian/defs.mk ]; then \
|
|
rm -f $$f2; \
|
|
fi; \
|
|
done
|
|
rm -f po/POTFILES.in
|
|
|
|
dh_clean -v
|
|
|
|
|
|
|
|
install:
|
|
install: build stamp-control
|
|
@echo "RULES.install"
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_clean -k
|
|
dh_installdirs
|
|
|
|
# Sort of hackish way to make sure we have a init script
|
|
# for dh_installinit
|
|
cp support-files/mysql.server debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql.init
|
|
|
|
mkdir -p $(TMP)/usr/lib/mysql/mysqld.sym
|
|
cp sql/mysqld.sym $(TMP)/usr/lib/mysql/mysqld.sym
|
|
|
|
# TODO: need real man pages!
|
|
#for f in mysql mysqldump mysqlaccess mysqladmin mysqlshow myisam_ftdump myisamlog myisampack mysql_explain_log mysqld_multi mysqld_safe mysql_fix_privilege_tables mysql_upgrade mysql_tzinfo_to_sql mysql_zap perror replace safe_mysqld ; do touch $(TMP)/usr/share/man/man1/$$f.1 ; done
|
|
#for f in mysqld mysqlmanager ; do touch $(TMP)/usr/share/man/man8/$$f.8 ; done
|
|
# make install (trailing slash needed for innobase)
|
|
$(MAKE) install DESTDIR=$(TMP)/
|
|
|
|
# After installing, remove rpath to make lintian happy.
|
|
set +e; \
|
|
find ./debian/tmp/ -type f -print0 \
|
|
| xargs -0 --no-run-if-empty chrpath -k 2>/dev/null \
|
|
| fgrep RPATH= \
|
|
| cut -d: -f 1 \
|
|
| xargs --no-run-if-empty chrpath -d; \
|
|
set -e
|
|
|
|
# libmysqlclient: move shared libraries (but not the rest like libheap.a & co)
|
|
mv $(TMP)/usr/lib/mysql/libmysqlclient* $(TMP)/usr/lib
|
|
mv $(TMP)/usr/lib/mysql/libndbclient* $(TMP)/usr/lib
|
|
perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient.la
|
|
perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libmysqlclient_r.la
|
|
perl -pi -e 's#/usr/lib/mysql#/usr/lib#' $(TMP)/usr/lib/libndbclient.la
|
|
|
|
# Check if our beloved versioned symbols are really there
|
|
if [ "`objdump -T $(TMP)/usr/lib/libmysqlclient.so.$(SHARED_LIB_MAJOR_VERSION).0.0 | grep -c libmysqlclient_$(SHARED_LIB_MAJOR_VERSION)`" -lt 500 ]; then \
|
|
echo "ERROR: versioned symbols are absent"; \
|
|
exit 1; \
|
|
fi
|
|
if [ "`objdump -T $(TMP)/usr/lib/libndbclient.so.$(NDB_SHARED_LIB_MAJOR_VERSION).0.0 | grep -c libndbclient_$(NDB_SHARED_LIB_MAJOR_VERSION)`" -lt 500 ]; then \
|
|
echo "ERROR: versioned symbols are absent from libndbclient"; \
|
|
exit 1; \
|
|
fi
|
|
|
|
# libmysqlclient-dev: forgotten header file since 3.23.25?
|
|
cp include/my_config.h $(TMP)/usr/include/mysql/
|
|
cp include/my_dir.h $(TMP)/usr/include/mysql/
|
|
|
|
# mysql-common: We now provide our own config file.
|
|
install -d $(TMP)/etc/mysql
|
|
install -m 0644 debian/additions/my.cnf $(TMP)/etc/mysql/my.cnf
|
|
|
|
pod2man scripts/mysqlhotcopy $(TMP)/usr/share/man/man1/mysqlhotcopy.1
|
|
|
|
# mysql-server
|
|
install -m 0755 scripts/mysqld_safe $(TMP)/usr/bin/mysqld_safe
|
|
mkdir -p $(TMP)/usr/share/doc/mysql-server-$(MYSQL_BRANDED_BASE_VERSION)/examples
|
|
mv $(TMP)/usr/share/mysql/*cnf $(TMP)/usr/share/doc/mysql-server-$(MYSQL_BRANDED_BASE_VERSION)/examples/
|
|
rm -vf $(TMP)/usr/share/mysql/mi_test_all* \
|
|
$(TMP)/usr/share/mysql/mysql-log-rotate \
|
|
$(TMP)/usr/share/mysql/mysql.server \
|
|
$(TMP)/usr/share/mysql/binary-configure
|
|
|
|
# we can't install *.pl into /usr/bin - so we have to rename it.
|
|
sed "s#filename => 'ndb_size.tmpl#filename => '/usr/share/mysql/ndb_size.tmpl#" < $(TMP)/usr/bin/ndb_size.pl > $(TMP)/usr/bin/ndb_size
|
|
cp -a mysql-test $(TMP)/usr/share/mysql/
|
|
cp -a sql-bench $(TMP)/usr/share/mysql/
|
|
# lintian overrides
|
|
mkdir -p $(TMP)/usr/share/lintian/overrides/
|
|
cp debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).lintian-overrides $(TMP)/usr/share/lintian/overrides/mysql-server-$(MYSQL_BRANDED_BASE_VERSION)
|
|
cp debian/mysql-client-$(MYSQL_BRANDED_BASE_VERSION).lintian-overrides $(TMP)/usr/share/lintian/overrides/mysql-client-$(MYSQL_BRANDED_BASE_VERSION)
|
|
|
|
# For 4.1 -> 5.0 transition
|
|
d=$(TMP)/usr/share/mysql-common/internal-use-only/; \
|
|
mkdir -p $$d; \
|
|
cp debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql.init $$d/_etc_init.d_mysql; \
|
|
cp debian/mysql-server-$(MYSQL_BRANDED_BASE_VERSION).mysql-server.logrotate $$d/_etc_logrotate.d_mysql-server; \
|
|
|
|
dh_movefiles
|
|
|
|
# Build architecture-independent files here.
|
|
binary-indep: build install
|
|
@echo "RULES.binary-indep"
|
|
dh_testdir -i
|
|
dh_testroot -i
|
|
dh_installdebconf -i
|
|
dh_installdocs -i
|
|
dh_installexamples -i
|
|
dh_installmenu -i
|
|
dh_installlogrotate -i
|
|
dh_installinit -i
|
|
dh_installcron -i
|
|
dh_installman -i
|
|
dh_installinfo -i
|
|
dh_installlogcheck -i
|
|
dh_installchangelogs -i
|
|
dh_link -i
|
|
dh_compress -i
|
|
dh_fixperms -i
|
|
dh_installdeb -i
|
|
dh_perl -i
|
|
dh_gencontrol -i
|
|
dh_md5sums -i
|
|
dh_builddeb -i
|
|
|
|
# Build architecture-dependent files here.
|
|
binary-arch: build install
|
|
@echo "RULES.binary-arch"
|
|
dh_testdir
|
|
dh_testroot
|
|
|
|
dh_installdebconf -a
|
|
dh_installdocs -a
|
|
dh_installexamples -a
|
|
dh_installmenu -a
|
|
dh_installlogrotate -a --name mysql-server
|
|
# Start mysql in runlevel 19 before 20 where apache, proftpd etc gets
|
|
# started which might depend on a running database server.
|
|
dh_installinit -a --name=mysql-storage -- defaults 19 21
|
|
dh_installinit -a --name=mysql -- defaults 19 21
|
|
dh_installinit -a --name=mysql-management -- defaults 20
|
|
dh_installcron -a --name mysql-server
|
|
dh_installman -a
|
|
dh_installinfo -a
|
|
dh_installlogcheck -a
|
|
dh_installchangelogs -a
|
|
dh_strip -a
|
|
dh_link -a # .so muss nach .so.1.2.3 installier werden!
|
|
dh_compress -a
|
|
dh_fixperms -a
|
|
dh_makeshlibs -a
|
|
dh_makeshlibs -plibmysqlclient$(SHARED_LIB_MAJOR_VERSION) -V"libmysqlclient$(SHARED_LIB_MAJOR_VERSION) (>= $(PKGVERSION))"
|
|
dh_makeshlibs -plibndbclient$(NDB_SHARED_LIB_MAJOR_VERSION) -V"libndbclient2 (>= $(PKGVERSION))"
|
|
dh_installdeb -a
|
|
dh_perl -a
|
|
dh_shlibdeps -a -l debian/libmysqlclient$(SHARED_LIB_MAJOR_VERSION)/usr/lib -L libmysqlclient$(SHARED_LIB_MAJOR_VERSION)
|
|
dh_shlibdeps -a -l debian/libndbclient$(NDB_SHARED_LIB_MAJOR_VERSION)/usr/lib -L libndbclient$(NDB_SHARED_LIB_MAJOR_VERSION)
|
|
dh_gencontrol -a
|
|
dh_md5sums -a
|
|
dh_builddeb -a
|
|
|
|
source diff:
|
|
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
|
|
|
|
binary: binary-indep binary-arch
|
|
.PHONY: clean stamp-control control-file configure build binary binary-indep binary-arch install
|
|
|
|
# vim: ts=8
|