| @@ -1,139 +1,140 @@ | | | @@ -1,139 +1,140 @@ |
1 | # $NetBSD: Makefile.common,v 1.23 2020/03/17 18:33:08 adam Exp $ | | 1 | # $NetBSD: Makefile.common,v 1.24 2020/03/22 20:23:52 rillig Exp $ |
2 | # | | 2 | # |
3 | # used by databases/mysql57-client/Makefile | | 3 | # used by databases/mysql57-client/Makefile |
4 | # used by databases/mysql57-server/Makefile | | 4 | # used by databases/mysql57-server/Makefile |
5 | | | 5 | |
6 | DISTNAME= mysql-5.7.29 | | 6 | DISTNAME= mysql-5.7.29 |
7 | CATEGORIES= databases | | 7 | CATEGORIES= databases |
8 | MASTER_SITES= ${MASTER_SITE_MYSQL:=MySQL-5.7/} | | 8 | MASTER_SITES= ${MASTER_SITE_MYSQL:=MySQL-5.7/} |
9 | | | 9 | |
10 | MAINTAINER?= pkgsrc-users@NetBSD.org | | 10 | MAINTAINER?= pkgsrc-users@NetBSD.org |
11 | HOMEPAGE= https://www.mysql.com/ | | 11 | HOMEPAGE= https://www.mysql.com/ |
12 | LICENSE= gnu-gpl-v2 | | 12 | LICENSE= gnu-gpl-v2 |
13 | | | 13 | |
14 | DISTINFO_FILE?= ${.CURDIR}/../../databases/mysql57-client/distinfo | | 14 | DISTINFO_FILE?= ${.CURDIR}/../../databases/mysql57-client/distinfo |
15 | PATCHDIR?= ${.CURDIR}/../../databases/mysql57-client/patches | | 15 | PATCHDIR?= ${.CURDIR}/../../databases/mysql57-client/patches |
16 | | | 16 | |
17 | USE_CMAKE= yes | | 17 | USE_CMAKE= yes |
18 | USE_LANGUAGES= c c++ | | 18 | USE_LANGUAGES= c c++ |
19 | USE_TOOLS+= bash bison gmake perl:run | | 19 | USE_TOOLS+= bash bison gmake perl:run |
20 | USE_GCC_RUNTIME= yes | | 20 | USE_GCC_RUNTIME= yes |
21 | USE_BUILTIN.libevent= no | | 21 | USE_BUILTIN.libevent= no |
22 | | | 22 | |
23 | .include "../../mk/bsd.prefs.mk" | | 23 | .include "../../mk/bsd.prefs.mk" |
24 | | | 24 | |
25 | .include "options.mk" | | 25 | .include "options.mk" |
26 | | | 26 | |
27 | # MYSQL_USER username of the database administrator | | 27 | # MYSQL_USER username of the database administrator |
28 | # MYSQL_GROUP group of the database administrator | | 28 | # MYSQL_GROUP group of the database administrator |
29 | # MYSQL_DATADIR home directory (location of the databases) | | 29 | # MYSQL_DATADIR home directory (location of the databases) |
30 | # MYSQL_PIDFILE process ID file | | 30 | # MYSQL_PIDFILE process ID file |
31 | # MYSQL_CHARSET default character set | | 31 | # MYSQL_CHARSET default character set |
32 | # MYSQL_EXTRA_CHARSET additional character set to be compiled in | | 32 | # MYSQL_EXTRA_CHARSET additional character set to be compiled in |
33 | MYSQL_USER?= mysql | | 33 | MYSQL_USER?= mysql |
34 | MYSQL_GROUP?= mysql | | 34 | MYSQL_GROUP?= mysql |
35 | MYSQL_DATADIR?= ${VARBASE}/mysql | | 35 | MYSQL_DATADIR?= ${VARBASE}/mysql |
36 | MYSQL_PIDFILE?= ${MYSQL_DATADIR}/${HOST}.pid | | 36 | MYSQL_PIDFILE?= ${MYSQL_DATADIR}/${HOST}.pid |
37 | MYSQL_CHARSET?= latin1 | | 37 | MYSQL_CHARSET?= latin1 |
38 | MYSQL_COLLATION?= latin1_swedish_ci | | 38 | MYSQL_COLLATION?= latin1_swedish_ci |
39 | MYSQL_EXTRA_CHARSET?= all | | 39 | MYSQL_EXTRA_CHARSET?= all |
40 | | | 40 | |
41 | PKG_USERS_VARS+= MYSQL_USER | | 41 | PKG_USERS_VARS+= MYSQL_USER |
42 | PKG_GROUPS_VARS+= MYSQL_GROUP | | 42 | PKG_GROUPS_VARS+= MYSQL_GROUP |
43 | | | 43 | |
44 | CONFIG_SHELL= ${TOOLS_PATH.bash} | | 44 | CONFIG_SHELL= ${TOOLS_PATH.bash} |
45 | | | 45 | |
46 | CFLAGS.IRIX+= -DIRIX5 -DNEEDS_BSTRING_H | | 46 | CFLAGS.IRIX+= -DIRIX5 -DNEEDS_BSTRING_H |
47 | | | 47 | |
48 | BUILD_DEFS+= VARBASE | | 48 | BUILD_DEFS+= VARBASE |
49 | | | 49 | |
50 | # paths | | 50 | # paths |
51 | CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mysql" | | 51 | CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mysql" |
52 | CMAKE_ARGS+= -DINSTALL_DOCREADMEDIR="share/doc/mysql" | | 52 | CMAKE_ARGS+= -DINSTALL_DOCREADMEDIR="share/doc/mysql" |
53 | CMAKE_ARGS+= -DINSTALL_INCLUDEDIR="include/mysql" | | 53 | CMAKE_ARGS+= -DINSTALL_INCLUDEDIR="include/mysql" |
54 | CMAKE_ARGS+= -DINSTALL_INFODIR="info" | | 54 | CMAKE_ARGS+= -DINSTALL_INFODIR="info" |
55 | CMAKE_ARGS+= -DINSTALL_MANDIR="${PKGMANDIR}" | | 55 | CMAKE_ARGS+= -DINSTALL_MANDIR="${PKGMANDIR}" |
56 | CMAKE_ARGS+= -DINSTALL_MYSQLSHAREDIR="share/mysql" | | 56 | CMAKE_ARGS+= -DINSTALL_MYSQLSHAREDIR="share/mysql" |
57 | CMAKE_ARGS+= -DINSTALL_MYSQLTESTDIR="share/mysql/test" | | 57 | CMAKE_ARGS+= -DINSTALL_MYSQLTESTDIR="share/mysql/test" |
58 | CMAKE_ARGS+= -DINSTALL_PLUGINDIR="lib/mysql/plugin" | | 58 | CMAKE_ARGS+= -DINSTALL_PLUGINDIR="lib/mysql/plugin" |
59 | CMAKE_ARGS+= -DINSTALL_SBINDIR="sbin" | | 59 | CMAKE_ARGS+= -DINSTALL_SBINDIR="sbin" |
60 | CMAKE_ARGS+= -DINSTALL_SCRIPTDIR="bin" | | 60 | CMAKE_ARGS+= -DINSTALL_SCRIPTDIR="bin" |
61 | CMAKE_ARGS+= -DINSTALL_SQLBENCHDIR="share/mysql/sql-bench" | | 61 | CMAKE_ARGS+= -DINSTALL_SQLBENCHDIR="share/mysql/sql-bench" |
62 | CMAKE_ARGS+= -DINSTALL_SUPPORTFILESDIR="share/mysql" | | 62 | CMAKE_ARGS+= -DINSTALL_SUPPORTFILESDIR="share/mysql" |
63 | CMAKE_ARGS+= -DMYSQL_DATADIR=${MYSQL_DATADIR} | | 63 | CMAKE_ARGS+= -DMYSQL_DATADIR=${MYSQL_DATADIR} |
64 | | | 64 | |
65 | CMAKE_ARGS+= -DCMAKE_BUILD_TYPE=Release | | 65 | CMAKE_ARGS+= -DCMAKE_BUILD_TYPE=Release |
66 | | | 66 | |
67 | CMAKE_ARGS+= -DWITH_BOOST="system" | | 67 | CMAKE_ARGS+= -DWITH_BOOST="system" |
68 | CMAKE_ARGS+= -DWITH_LIBEVENT="system" | | 68 | CMAKE_ARGS+= -DWITH_LIBEVENT="system" |
69 | CMAKE_ARGS+= -DWITH_LZ4="system" | | 69 | CMAKE_ARGS+= -DWITH_LZ4="system" |
70 | CMAKE_ARGS+= -DWITH_SSL="system" | | 70 | CMAKE_ARGS+= -DWITH_SSL="system" |
71 | CMAKE_ARGS+= -DWITH_ZLIB="system" | | 71 | CMAKE_ARGS+= -DWITH_ZLIB="system" |
72 | CMAKE_ARGS+= -DDEFAULT_CHARSET=${MYSQL_CHARSET} | | 72 | CMAKE_ARGS+= -DDEFAULT_CHARSET=${MYSQL_CHARSET} |
73 | CMAKE_ARGS+= -DDEFAULT_COLLATION=${MYSQL_COLLATION} | | 73 | CMAKE_ARGS+= -DDEFAULT_COLLATION=${MYSQL_COLLATION} |
74 | CMAKE_ARGS+= -DWITH_EXTRA_CHARSETS=${MYSQL_EXTRA_CHARSET} | | 74 | CMAKE_ARGS+= -DWITH_EXTRA_CHARSETS=${MYSQL_EXTRA_CHARSET} |
75 | | | 75 | |
76 | | | 76 | |
77 | # we need atomic builtins | | 77 | # we need atomic builtins |
78 | .if ${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "i386" | | 78 | .if ${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "i386" |
79 | GNU_ARCH.i386= i586 | | 79 | GNU_ARCH.i386= i586 |
80 | CFLAGS+= -march=i586 | | 80 | CFLAGS+= -march=i586 |
81 | .endif | | 81 | .endif |
82 | | | 82 | |
83 | CPPFLAGS+= -Dunix | | 83 | CPPFLAGS+= -Dunix |
84 | CFLAGS+= -DUSE_OLD_FUNCTIONS # 3.23.x compat | | 84 | CFLAGS+= -DUSE_OLD_FUNCTIONS # 3.23.x compat |
85 | #CFLAGS+= -D__STDC_FORMAT_MACROS=1 # always defined too late | | 85 | #CFLAGS+= -D__STDC_FORMAT_MACROS=1 # always defined too late |
86 | | | 86 | |
87 | .if ${OPSYS} != "Interix" | | 87 | .if ${OPSYS} != "Interix" |
88 | CFLAGS+= -fPIC -DPIC | | 88 | CFLAGS+= -fPIC -DPIC |
89 | CXXFLAGS+= -fPIC -DPIC | | 89 | CXXFLAGS+= -fPIC -DPIC |
90 | .endif | | 90 | .endif |
91 | | | 91 | |
92 | CMAKE_ARGS.SunOS+= -DFORCE_UNSUPPORTED_COMPILER=YES | | 92 | CMAKE_ARGS.SunOS+= -DFORCE_UNSUPPORTED_COMPILER=YES |
93 | | | 93 | |
94 | # Force HAVE_CURSES_H on Solaris since the configure script is broken | | 94 | # Force HAVE_CURSES_H on Solaris since the configure script is broken |
95 | # and does not properly detect this, breaking the build later on. Also | | 95 | # and does not properly detect this, breaking the build later on. Also |
96 | # explicitly disable epoll support as it is Linux-specific. | | 96 | # explicitly disable epoll support as it is Linux-specific. |
97 | CMAKE_ARGS.SunOS+= -DHAVE_SYS_EPOLL_H=NO | | 97 | CMAKE_ARGS.SunOS+= -DHAVE_SYS_EPOLL_H=NO |
98 | CFLAGS.SunOS+= -DHAVE_CURSES_H | | 98 | CFLAGS.SunOS+= -DHAVE_CURSES_H |
99 | CXXFLAGS.SunOS+= -DHAVE_CURSES_H | | 99 | CXXFLAGS.SunOS+= -DHAVE_CURSES_H |
100 | | | 100 | |
101 | .include "../../mk/pthread.buildlink3.mk" | | 101 | .include "../../mk/pthread.buildlink3.mk" |
102 | | | 102 | |
103 | .if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "pth") | | 103 | .if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "pth") |
104 | CFLAGS+= -DSIGNALS_DONT_BREAK_READ | | 104 | CFLAGS+= -DSIGNALS_DONT_BREAK_READ |
105 | CXXFLAGS+= -DSIGNALS_DONT_BREAK_READ | | 105 | CXXFLAGS+= -DSIGNALS_DONT_BREAK_READ |
106 | .endif | | 106 | .endif |
107 | | | 107 | |
108 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/mysql | | 108 | LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/mysql |
109 | | | 109 | |
110 | SUBST_CLASSES+= scr | | 110 | SUBST_CLASSES+= scr |
111 | SUBST_STAGE.scr= pre-configure | | 111 | SUBST_STAGE.scr= pre-configure |
112 | SUBST_FILES.scr= scripts/mysqld_safe.sh | | 112 | SUBST_FILES.scr= scripts/mysqld_safe.sh |
113 | SUBST_FILES.scr+= support-files/mysql.server.sh | | 113 | SUBST_FILES.scr+= support-files/mysql.server.sh |
114 | SUBST_SED.scr= -e "s,chown,${CHOWN},g" | | 114 | SUBST_SED.scr= -e "s,chown,${CHOWN},g" |
115 | SUBST_SED.scr+= -e "s,/bin/sh,${RCD_SCRIPTS_SHELL},g" | | 115 | SUBST_SED.scr+= -e "s,/bin/sh,${RCD_SCRIPTS_SHELL},g" |
116 | SUBST_SED.scr+= -e "s,@SHELL_PATH@,${RCD_SCRIPTS_SHELL},g" | | 116 | SUBST_SED.scr+= -e "s,@SHELL_PATH@,${RCD_SCRIPTS_SHELL},g" |
117 | SUBST_MESSAGE.scr= Fixing scripts. | | 117 | SUBST_MESSAGE.scr= Fixing scripts. |
| | | 118 | SUBST_NOOP_OK.scr= yes # since RCD_SCRIPTS_SHELL may be /bin/sh |
118 | | | 119 | |
119 | # Don't use the base system "libedit" under NetBSD because MySQL expects | | 120 | # Don't use the base system "libedit" under NetBSD because MySQL expects |
120 | # an incompatible prototype for "rl_completion_entry_function". | | 121 | # an incompatible prototype for "rl_completion_entry_function". |
121 | .if ${OPSYS} == "NetBSD" | | 122 | .if ${OPSYS} == "NetBSD" |
122 | USE_BUILTIN.editline= no | | 123 | USE_BUILTIN.editline= no |
123 | .endif | | 124 | .endif |
124 | | | 125 | |
125 | .include "../../mk/readline.buildlink3.mk" | | 126 | .include "../../mk/readline.buildlink3.mk" |
126 | .if ${READLINE_TYPE} == "readline" | | 127 | .if ${READLINE_TYPE} == "readline" |
127 | CMAKE_ARGS+= -DWITH_READLINE="system" | | 128 | CMAKE_ARGS+= -DWITH_READLINE="system" |
128 | .else | | 129 | .else |
129 | CMAKE_ARGS+= -DWITH_EDITLINE="system" | | 130 | CMAKE_ARGS+= -DWITH_EDITLINE="system" |
130 | .endif | | 131 | .endif |
131 | | | 132 | |
132 | CHECK_PORTABILITY_SKIP+= packaging/deb-in/mysql-packagesource-server.config.in | | 133 | CHECK_PORTABILITY_SKIP+= packaging/deb-in/mysql-packagesource-server.config.in |
133 | | | 134 | |
134 | .include "../../mk/curses.buildlink3.mk" | | 135 | .include "../../mk/curses.buildlink3.mk" |
135 | .include "../../archivers/lz4/buildlink3.mk" | | 136 | .include "../../archivers/lz4/buildlink3.mk" |
136 | .include "../../devel/boost-libs/buildlink3.mk" | | 137 | .include "../../devel/boost-libs/buildlink3.mk" |
137 | .include "../../devel/libevent/buildlink3.mk" | | 138 | .include "../../devel/libevent/buildlink3.mk" |
138 | .include "../../devel/zlib/buildlink3.mk" | | 139 | .include "../../devel/zlib/buildlink3.mk" |
139 | .include "../../security/openssl/buildlink3.mk" | | 140 | .include "../../security/openssl/buildlink3.mk" |