summaryrefslogtreecommitdiffstats
path: root/rules/mysql.make
blob: a20eaa39d95d1058f440ab586fd0d8a56f0abceb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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