Update databases/mysql80-server to version 8.0.0_4
[dports.git] / databases / mysql80-server / Makefile
1 # Created by: Mahdi Mokhtari <mokhi64@gmail.com>
2 # $FreeBSD$
3
4 PORTNAME?=              mysql
5 PORTVERSION=            8.0.0
6 DISTVERSIONSUFFIX?=     -dmr
7 PORTREVISION?=          4
8 CATEGORIES=             databases ipv6
9 MASTER_SITES=           MYSQL/MySQL-8.0
10 PKGNAMESUFFIX?=         80-server
11 DISTNAME=               ${PORTNAME}-boost-${PORTVERSION}${DISTVERSIONSUFFIX}
12
13 MAINTAINER=             mmokhi@FreeBSD.org
14 COMMENT?=               Multithreaded SQL database (server)
15
16 LICENSE=                GPLv2
17
18 WRKSRC=         ${WRKDIR}/${PORTNAME}-${PORTVERSION}${DISTVERSIONSUFFIX}
19
20 SLAVEDIRS=      databases/mysql80-client
21 USES=           bison:build cmake:outsource compiler:c11 compiler:c++11-lib \
22                 cpe libedit localbase perl5 shebangfix ssl
23
24 USE_PERL5=      run
25
26 MY_DBDIR=       /var/db/mysql
27 MY_SECDIR=      /var/db/mysql_secure
28 MY_TMPDIR=      /var/db/mysql_tmpdir
29
30 LIB_DEPENDS+=   libevent.so:devel/libevent \
31                 liblz4.so:archivers/liblz4
32
33 CMAKE_BUILD_TYPE=       Release
34
35 CMAKE_ARGS+=    -DINSTALL_LAYOUT=FREEBSD \
36                 -DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \
37                 -DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \
38                 -DINSTALL_DOCDIR="share/doc/mysql" \
39                 -DINSTALL_DOCREADMEDIR="share/doc/mysql" \
40                 -DINSTALL_INCLUDEDIR="include/mysql" \
41                 -DINSTALL_INFODIR="info" \
42                 -DINSTALL_LIBDIR="lib/mysql" \
43                 -DINSTALL_MANDIR="man" \
44                 -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \
45                 -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \
46                 -DINSTALL_MYSQLSHAREDIR="share/mysql" \
47                 -DINSTALL_MYSQLTESTDIR="share/mysql/tests" \
48                 -DINSTALL_PLUGINDIR="lib/mysql/plugin" \
49                 -DINSTALL_SBINDIR="libexec" \
50                 -DINSTALL_SCRIPTDIR="bin" \
51                 -DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \
52                 -DINSTALL_SHAREDIR="share" \
53                 -DINSTALL_SUPPORTFILESDIR="share/mysql" \
54                 -DMYSQL_KEYRINGDIR="${ETCDIR}/keyring" \
55                 -DWITH_BOOST="${WRKSRC}/boost" \
56                 -DWITH_EDITLINE=system \
57                 -DWITH_LIBEVENT=system \
58                 -DWITH_LZ4=system \
59                 -DWITH_ZLIB=system \
60                 -DINSTALL_MYSQLTESTDIR=0
61
62 SHEBANG_FILES=  scripts/*.pl* scripts/*.sh
63
64 .ifdef USE_MYSQL
65 .error You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again.
66 .endif
67
68 SUB_LIST=       MY_DBDIR=${MY_DBDIR} \
69                 MY_SECDIR=${MY_SECDIR} \
70                 MY_TMPDIR=${MY_TMPDIR}
71
72 PLIST_SUB=      MY_DBDIR=${MY_DBDIR} \
73                 MY_SECDIR=${MY_SECDIR} \
74                 MY_TMPDIR=${MY_TMPDIR} \
75                 MYSQL80_LIBVER=${MYSQL80_LIBVER}
76
77 # MySQL-Server part
78 .if !defined(CLIENT_ONLY)
79 USES+=          mysql:80
80
81 CONFLICTS_INSTALL=      mysql8[1-9]-server-* \
82                         mysql[0-79][0-9]-server-* \
83                         mariadb[0-9][0-9]-server-* \
84                         percona[0-9][0-9]-server-*
85
86 USE_RC_SUBR=    mysql-server
87
88 SUB_FILES=      my.cnf.sample
89
90 USERS=          mysql
91 GROUPS=         mysql
92
93 USE_LDCONFIG+=  ${PREFIX}/lib/mysql/plugin
94
95 MMAN1=          my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \
96                 mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \
97                 mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \
98                 mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1 mysqlbug.1 \
99                 mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqlman.1 \
100                 mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1
101
102 CMAKE_ARGS+=    -DWITH_EMBEDDED_SERVER="ON"
103
104 OPTIONS_GROUP=          STORAGE
105 OPTIONS_GROUP_STORAGE=  ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA
106 OPTIONS_SUB=            YES
107 STORAGE_DESC=           Permissible "Storage Engines" (to compile statically into the server)
108 ARCHIVE_DESC=           Compile "Archive Storage" statically in server
109 BLACKHOLE_DESC=         Compile "Blackhole Storage" statically in server
110 EXAMPLE_DESC=           Compile "Example Storage" statically in server
111 FEDERATED_DESC=         Compile "Federated Storage" statically in server
112 INNOBASE_DESC=          Compile "InnoDB Storage" statically in server
113 PARTITION_DESC=         Compile "Partitioning support Storage" statically in server
114 PERFSCHEMA_DESC=        Compile "Performance Schema Storage" statically in server
115
116 ARCHIVE_CMAKE_ON=       -DWITH_ARCHIVE_STORAGE_ENGINE=1
117 BLACKHOLE_CMAKE_ON=     -DWITH_BLACKHOLE_STORAGE_ENGINE=1
118 EXAMPLE_CMAKE_ON=       -DWITH_EXAMPLE_STORAGE_ENGINE=1
119 FEDERATED_CMAKE_ON=     -DWITH_FEDERATED_STORAGE_ENGINE=1
120 INNOBASE_CMAKE_ON=      -DWITH_INNOBASE_STORAGE_ENGINE=1
121 PARTITION_CMAKE_ON=     -DWITH_PARTITION_STORAGE_ENGINE=1
122 PERFSCHEMA_CMAKE_ON=    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
123
124 OPTIONS_GROUP+=         FEATURES
125 OPTIONS_GROUP_FEATURES= PERFSCHM
126 FEATURES_DESC=          Default features knobs
127 PERFSCHM_DESC=          Enable "Performance Schema" by default (High RAM usage)
128 OPTIONS_DEFAULT+=       PERFSCHM
129
130 PERFSCHM_SUB_LIST+=             PERFSCHEMRC=""
131 PERFSCHM_SUB_LIST_OFF+=         PERFSCHEMRC="--skip-performance-schema"
132 FEDERATED_SUB_LIST+=            FEDER="--federated"
133 FEDERATED_SUB_LIST_OFF+=        FEDER=""
134 .endif
135
136 .include <bsd.port.pre.mk>
137
138 .if ${SSL_DEFAULT} == base
139 CMAKE_ARGS+=            -DWITH_SSL=system
140 .else
141 CMAKE_ARGS+=            -DWITH_SSL=${OPENSSLBASE}
142 .endif
143
144 post-extract:
145         @${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h
146
147 post-patch:
148         @${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt
149
150 .if !defined(CLIENT_ONLY)
151 post-install:
152         ${MKDIR} ${STAGEDIR}${ETCDIR}
153         ${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample
154         ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring
155         ${MKDIR} ${STAGEDIR}${MY_SECDIR}
156         ${MKDIR} ${STAGEDIR}${MY_TMPDIR}
157 .endif
158
159 .include <bsd.port.post.mk>