Changeset View
Changeset View
Standalone View
Standalone View
Mk/bsd.database.mk
# $FreeBSD$ | # $FreeBSD$ | ||||
# | # | ||||
.if defined(_POSTMKINCLUDED) && !defined(Database_Post_Include) | .if defined(_POSTMKINCLUDED) && !defined(Database_Post_Include) | ||||
Database_Post_Include= bsd.database.mk | Database_Post_Include= bsd.database.mk | ||||
Database_Include_MAINTAINER= ports@FreeBSD.org | Database_Include_MAINTAINER= ports@FreeBSD.org | ||||
# This file contains some routines to interact with different databases, such | # This file contains some routines to interact with different databases, such | ||||
# as MySQL and Berkley DB. To include this file, define macro | # as MySQL and Berkley DB. To include this file, define macro | ||||
# USE_[DATABASE], for example USE_MYSQL. Defining macro like | # USE_[DATABASE], for example USE_MYSQL. Defining macro like | ||||
# USE_[DATABASE]_VER or WANT_[DATABASE]_VER will include this file as well. | # USE_[DATABASE]_VER or WANT_[DATABASE]_VER will include this file as well. | ||||
# | # | ||||
## | ## | ||||
# USE_MYSQL - Add MySQL (client/server/embedded) dependency (default: | # USE_MYSQL - Do not use this-- instead USES=mysql | ||||
# client). | |||||
# If no version is given (by the maintainer via the port or | |||||
# by the user via defined variable), try to find the | |||||
# currently installed version. Fall back to default if | |||||
# necessary (MySQL-5.6 = 56). | |||||
# DEFAULT_MYSQL_VER | |||||
# - MySQL default version. Can be overridden within a port. | |||||
# Default: 56. | |||||
# WANT_MYSQL_VER | |||||
# - Maintainer can set an arbitrary version of MySQL to always | |||||
# build this port with (overrides WITH_MYSQL_VER). | |||||
# IGNORE_WITH_MYSQL | |||||
# - This variable can be defined if the ports does not support | |||||
# one or more versions of MySQL. | |||||
# WITH_MYSQL_VER | |||||
# - User defined variable to set MySQL version. | |||||
# MYSQL_VER | |||||
# - Detected MySQL version. | |||||
## | ## | ||||
# USE_BDB - Add Berkeley DB library dependency. | # USE_BDB - Add Berkeley DB library dependency. | ||||
# If no version is given (by the maintainer via the port or | # If no version is given (by the maintainer via the port or | ||||
# by the user via defined variable), try to find the | # by the user via defined variable), try to find the | ||||
# currently installed version. Fall back to default if | # currently installed version. Fall back to default if | ||||
# necessary (db5 if compatible). | # necessary (db5 if compatible). | ||||
# This adds a "debug-bdb" make target which will dump the | # This adds a "debug-bdb" make target which will dump the | ||||
# related data. | # related data. | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | |||||
# USE_FIREBIRD= yes) and the user did not define | # USE_FIREBIRD= yes) and the user did not define | ||||
# WITH_FIREBIRD_VER variable, fall back to default "2". | # WITH_FIREBIRD_VER variable, fall back to default "2". | ||||
# WITH_FIREBIRD_VER | # WITH_FIREBIRD_VER | ||||
# - User defined variable to set Firebird version. | # - User defined variable to set Firebird version. | ||||
# FIREBIRD_VER | # FIREBIRD_VER | ||||
# - Detected Firebird version. | # - Detected Firebird version. | ||||
.include "${PORTSDIR}/Mk/bsd.default-versions.mk" | .include "${PORTSDIR}/Mk/bsd.default-versions.mk" | ||||
.if defined(DEFAULT_MYSQL_VER) | |||||
WARNING+= "DEFAULT_MYSQL_VER is defined, consider using DEFAULT_VERSIONS=mysql=${DEFAULT_MYSQL_VER} instead" | |||||
.endif | |||||
.if defined(USE_MYSQL) | |||||
DEFAULT_MYSQL_VER?= ${MYSQL_DEFAULT:S/.//} | |||||
# MySQL client version currently supported. | |||||
MYSQL51_LIBVER= 16 | |||||
MYSQL55_LIBVER= 18 | |||||
MYSQL55m_LIBVER= 18 | |||||
MYSQL55p_LIBVER= 18 | |||||
MYSQL56_LIBVER= 18 | |||||
MYSQL56p_LIBVER= 18 | |||||
MYSQL100m_LIBVER= 18 | |||||
# Setting/finding MySQL version we want. | |||||
.if exists(${LOCALBASE}/bin/mysql) | |||||
_MYSQL!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\{1,2\}\)\.\([0-9]*\).*/\1\2/' | |||||
_PERCONA!= ${LOCALBASE}/bin/mysql --version | ${GREP} Percona | wc -l | |||||
_MARIADB!= ${LOCALBASE}/bin/mysql --version | ${GREP} MariaDB | wc -l | |||||
.if ${_PERCONA} == 1 | |||||
_MYSQL_VER= ${_MYSQL}p | |||||
.elif ${_MARIADB} == 1 | |||||
_MYSQL_VER= ${_MYSQL}m | |||||
.else | |||||
_MYSQL_VER= ${_MYSQL} | |||||
.endif | |||||
.endif | |||||
.if defined(WANT_MYSQL_VER) | |||||
.if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${WANT_MYSQL_VER} | |||||
IGNORE= cannot install: the port wants mysql${WANT_MYSQL_VER}-client and you try to install mysql${WITH_MYSQL_VER}-client | |||||
.endif | |||||
MYSQL_VER= ${WANT_MYSQL_VER} | |||||
.elif defined(WITH_MYSQL_VER) | |||||
MYSQL_VER= ${WITH_MYSQL_VER} | |||||
.else | |||||
.if defined(_MYSQL_VER) | |||||
MYSQL_VER= ${_MYSQL_VER} | |||||
.else | |||||
MYSQL_VER= ${DEFAULT_MYSQL_VER} | |||||
.endif | |||||
.endif # WANT_MYSQL_VER | |||||
.if defined(_MYSQL_VER) | |||||
.if ${_MYSQL_VER} != ${MYSQL_VER} | |||||
IGNORE= cannot install: MySQL versions mismatch: mysql${_MYSQL_VER}-client is installed and wanted version is mysql${MYSQL_VER}-client | |||||
.endif | |||||
.endif | |||||
.if (${MYSQL_VER:C/[0-9]*//} == "m") | |||||
_MYSQL_FLAVOUR= mariadb | |||||
.elif (${MYSQL_VER:C/[0-9]*//} == "p") | |||||
_MYSQL_FLAVOUR= percona | |||||
.else | |||||
_MYSQL_FLAVOUR= mysql | |||||
.endif | |||||
_MYSQL_CLIENT= databases/${_MYSQL_FLAVOUR}${MYSQL_VER:C/[mp]//}-client | |||||
_MYSQL_SERVER= databases/${_MYSQL_FLAVOUR}${MYSQL_VER:C/[mp]//}-server | |||||
# And now we are checking if we can use it | |||||
.if defined(MYSQL${MYSQL_VER}_LIBVER) | |||||
.if defined(IGNORE_WITH_MYSQL) | |||||
. for VER in ${IGNORE_WITH_MYSQL} | |||||
. if (${MYSQL_VER} == "${VER}") | |||||
IGNORE= cannot install: does not work with MySQL version ${MYSQL_VER} (MySQL ${IGNORE_WITH_MYSQL} not supported) | |||||
. endif | |||||
. endfor | |||||
.endif # IGNORE_WITH_MYSQL | |||||
.if (${USE_MYSQL} == "server" || ${USE_MYSQL} == "embedded") | |||||
RUN_DEPENDS+= ${LOCALBASE}/libexec/mysqld:${PORTSDIR}/${_MYSQL_SERVER} | |||||
.if (${USE_MYSQL} == "embedded") | |||||
BUILD_DEPENDS+= ${LOCALBASE}/lib/mysql/libmysqld.a:${PORTSDIR}/${_MYSQL_SERVER} | |||||
.endif | |||||
.else | |||||
LIB_DEPENDS+= libmysqlclient.so.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/${_MYSQL_CLIENT} | |||||
.endif | |||||
.else | |||||
IGNORE= cannot install: unknown MySQL version: ${MYSQL_VER} | |||||
.endif # Check for correct libs | |||||
.endif # USE_MYSQL | |||||
.if defined(USE_BDB) | .if defined(USE_BDB) | ||||
# TODO: avoid malformed conditional with invalid USE_BDB/WITH_BDB_VER | # TODO: avoid malformed conditional with invalid USE_BDB/WITH_BDB_VER | ||||
# check if + works properly from test builds 01h12m23s | # check if + works properly from test builds 01h12m23s | ||||
BDB_UNIQUENAME?= ${PKGNAMEPREFIX}${PORTNAME} | BDB_UNIQUENAME?= ${PKGNAMEPREFIX}${PORTNAME} | ||||
_USE_BDB_save:=${USE_BDB} | _USE_BDB_save:=${USE_BDB} | ||||
▲ Show 20 Lines • Show All 236 Lines • Show Last 20 Lines |