diff options
Diffstat (limited to 'rules/mysql.make')
-rw-r--r-- | rules/mysql.make | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/rules/mysql.make b/rules/mysql.make new file mode 100644 index 000000000..a20eaa39d --- /dev/null +++ b/rules/mysql.make @@ -0,0 +1,158 @@ +# -*-makefile-*- +# +# Copyright (C) 2016 by Juergen Borleis <jbe@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_MYSQL) += mysql + +# +# Paths and names +# +MYSQL_VERSION := 5.7.11 +MYSQL_MD5 := f84d945a40ed876d10f8d5a7f4ccba32 +MYSQL := mysql-$(MYSQL_VERSION) +MYSQL_SUFFIX := tar.gz +MYSQL_URL := http://cdn.mysql.com//Downloads/MySQL-5.7/$(MYSQL).tar.gz +MYSQL_SOURCE := $(SRCDIR)/$(MYSQL).$(MYSQL_SUFFIX) +MYSQL_DIR := $(BUILDDIR)/$(MYSQL) +MYSQL_LICENSE := GPL-2.0 + +# mySQL has a hard dependency to boost_1_59_0. Deal with it + +MYSQL_BOOST_VERSION := 1_59_0 +MYSQL_BOOST_MD5 := 6aa9a5c6a4ca1016edd0ed1178e3cb87 +MYSQL_BOOST := boost_$(MYSQL_BOOST_VERSION) +MYSQL_BOOST_SUFFIX := tar.bz2 +MYSQL_BOOST_URL := $(call ptx/mirror, SF, boost/$(MYSQL_BOOST).$(MYSQL_BOOST_SUFFIX)) +MYSQL_BOOST_SOURCE := $(SRCDIR)/$(MYSQL_BOOST).$(MYSQL_BOOST_SUFFIX) +$(MYSQL_BOOST_SOURCE) := MYSQL_BOOST +MYSQL_BOOST_DIR := $(MYSQL_DIR) + +# we need more than one archive to download +MYSQL_SOURCES := $(MYSQL_SOURCE) $(MYSQL_BOOST_SOURCE) + +# ---------------------------------------------------------------------------- +# Extract +# ---------------------------------------------------------------------------- + +$(STATEDIR)/mysql.extract: + @$(call targetinfo) + @$(call clean, $(MYSQL_DIR)) + @$(call extract, MYSQL) + @$(call extract, MYSQL_BOOST) + @$(call patchin, MYSQL) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +# +# cmake +# +MYSQL_CONF_TOOL := cmake +MYSQL_CONF_OPT := \ + $(CROSS_CMAKE_USR) \ + -DBUILD_CONFIG=mysql_release \ + -DSTACK_DIRECTION=1 \ + -DHAVE_LLVM_LIBCPP_EXITCODE=no \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DWITH_ZLIB=system \ + -DWITH_LZ4=bundled \ + -DWITH_SSL=bundled \ + -DCOMMUNITY_BUILD=ON \ + -DBOOST_INCLUDE_DIR=$(MYSQL_BOOST_DIR) \ + -DLOCAL_BOOST_DIR=$(MYSQL_BOOST_DIR) \ + -DMYSQL_DATADIR=/usr/local/mysql/data \ + -DMYSQL_KEYRINGDIR=/usr/local/mysql/keyring \ + -DSYSCONFDIR=/etc/mysql \ + -DSYSTEMD_PID_DIR=/run/mysql \ + -DTMPDIR=/tmp \ + -DWITH_EXTRA_CHARSETS=all \ + -DWITH_UNIT_TESTS=OFF \ + -DWITH_VALGRIND=OFF \ + -DWITH_SYSTEMD=ON \ + -DCOMPILATION_COMMENT=PTXdist \ + -DDEFAULT_CHARSET=latin1 + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +$(STATEDIR)/mysql.compile: + @$(call targetinfo) + # we must copy it twice: once for the buildsystem, once for runtime + cp $(HOST_MYSQL_DIR)-build/sql/gen_lex_hash $(PTXDIST_SYSROOT_HOST)/bin + cp $(HOST_MYSQL_DIR)-build/sql/gen_lex_hash $(MYSQL_DIR)/sql + cp $(HOST_MYSQL_DIR)-build/sql/gen_lex_token $(PTXDIST_SYSROOT_HOST)/bin + cp $(HOST_MYSQL_DIR)-build/sql/gen_lex_token $(MYSQL_DIR)/sql + cp $(HOST_MYSQL_DIR)-build/extra/lz4_decompress $(PTXDIST_SYSROOT_HOST)/bin + cp $(HOST_MYSQL_DIR)-build/extra/lz4_decompress $(MYSQL_DIR)/extra + cp $(HOST_MYSQL_DIR)-build/extra/zlib_decompress $(PTXDIST_SYSROOT_HOST)/bin + cp $(HOST_MYSQL_DIR)-build/extra/zlib_decompress $(MYSQL_DIR)/extra + cp $(HOST_MYSQL_DIR)-build/extra/comp_err $(PTXDIST_SYSROOT_HOST)/bin + cp $(HOST_MYSQL_DIR)-build/extra/comp_err $(MYSQL_DIR)/extra + cp $(HOST_MYSQL_DIR)-build/scripts/comp_sql $(PTXDIST_SYSROOT_HOST)/bin + cp $(HOST_MYSQL_DIR)-build/scripts/comp_sql $(MYSQL_DIR)/scripts + + @$(call world/compile, MYSQL) + @$(call touch) + + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/mysql.targetinstall: + @$(call targetinfo) + + @$(call install_init, mysql) + @$(call install_fixup, mysql,PRIORITY,optional) + @$(call install_fixup, mysql,SECTION,base) + @$(call install_fixup, mysql,AUTHOR,"Juergen Borleis <jbe@pengutronix.de>") + @$(call install_fixup, mysql,DESCRIPTION,"mySQL service") + +# # server stuff + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqld) + + @$(call install_alternative, mysql, 0, 0, 0755, /sbin/mysqlinit) + @$(call install_alternative, mysql, 0, 0, 0644, /lib/systemd/system/mysqldinit.service) + @$(call install_link, mysql, ../mysqldinit.service, \ + /lib/systemd/system/multi-user.target.wants/mysqldinit.service) + @$(call install_alternative, mysql, 0, 0, 0644, /lib/systemd/system/mysqld.service) + @$(call install_link, mysql, ../mysqld.service, \ + /lib/systemd/system/multi-user.target.wants/mysqld.service) + @$(call install_alternative, mysql, 0, 0, 0644, /etc/mysql/my.cnf) + @$(call install_copy, mysql, 0, 0, 0644, -, /usr/lib/plugin/keyring_file.so) + +# # TODO: do we need more languages? + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/share/english/errmsg.sys) + +# # TODO: do we need more charsets? + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/share/charsets/latin1.xml) + +# # client stuff + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysql) + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqladmin) + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysql_upgrade) + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqlcheck) + @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqldump) + + @$(call install_lib, mysql, 0, 0, 0644, libmysqlclient) + +# # create a working directory which is writeable + @$(call install_copy, mysql, mysql, mysql, 0755, /var/lib/mysql) + + @$(call install_finish, mysql) + + @$(call touch) + +# vim: syntax=make |