Bug 85695 - Add bsd.database.mk.
Summary: Add bsd.database.mk.
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Port Management Team
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-03 18:30 UTC by Vsevolod Stakhov
Modified: 2005-11-08 09:10 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vsevolod Stakhov freebsd_committer freebsd_triage 2005-09-03 18:30:07 UTC
Move all database related code from bsd.port.mk to bsd.database.mk. Add also
bdb support and sqlite support.

Fix: 

# -*- mode: Makefile; tab-width: 4; -*-
# ex: ts=4
#
# $FreeBSD$
#

.if defined(_POSTMKINCLUDED) && !defined(Database_Post_Include)

Database_Post_Include=			bsd.database.mk
Database_Include_MAINTAINER=	vsevolod@FreeBSD.org

# This file contains some routines to interact with different databases, such
# as mysql, postgresql and berkley DB. For including this file define macro
# USE_[DATABASE], for example USE_MYSQL. Defining macro like USE_[DATABASE]_VER
# or WANT_[DATABSE]_VER will include this file too.
#
##
# USE_MYSQL		- Add MySQL client dependency.
#				  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 (MySQL4.1 = 41).
# DEFAULT_MYSQL_VER
#				- MySQL default version. Can be overriden within a port.
#				  Default: 41.
# WANT_MYSQL_VER
#				- Maintainer can set an arbitrary version of MySQL by using it.
# BROKEN_WITH_MYSQL
#				- This variable can be defined if the ports doesn't support
#				  one or more version of MySQL.
# MYSQL_VER		- Internal variable for MySQL version.
# WITH_MYSQL_VER
#				- User defined variable to set MySQL version.
##
# USE_PGSQL		- Add PostgreSQL client dependency.
#				  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 (PostgreSQL-7.4 = 74).
# DEFAULT_PGSQL_VER
#				- PostgreSQL default version. Can be overridden within a port.
#				  Default: 74.
# WANT_PGSQL_VER
#				- Maintainer can set an arbitrary version of PostgreSQL by
#				  using it.
# BROKEN_WITH_PGSQL
#				- This variable can be defined if the ports doesn't support
#				  one or more versions of PostgreSQL.
##
# USE_BDB		- Add Berkley DB library dependency.
#                 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 (db41+).
##
# USE_SQLITE	- Add dependency on sqlite library. Valid values are:
#				  3 and 2. If version is not specified directly then
#				  sqlite3 is used (if USE_SQLITE= yes).

.if defined(USE_MYSQL)
DEFAULT_MYSQL_VER?=	41
# MySQL client version currently supported.
MYSQL323_LIBVER=	10
MYSQL40_LIBVER=		12
MYSQL41_LIBVER=		14
MYSQL50_LIBVER=		14

# Setting/finding MySQL version we want.
.if exists(${LOCALBASE}/bin/mysql)
_MYSQL_VER!=	${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/'
.endif

.if defined(WANT_MYSQL_VER)
.if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${WANT_MYSQL_VER}
BROKEN=		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}
BROKEN=	MySQL versions mismatch: mysql${_MYSQL_VER}-client is installed and wanted version is mysql${MYSQL_VER}-client
.endif
.endif

# And now we are checking if we can use it
.if defined(MYSQL${MYSQL_VER}_LIBVER)
.if defined(BROKEN_WITH_MYSQL)
.	for VER in ${BROKEN_WITH_MYSQL}
.		if (${MYSQL_VER} == "${VER}")
IGNORE=		"Doesn't work with MySQL version : ${MYSQL_VER} (Doesn't support MySQL ${BROKEN_WITH_MYSQL})"
.		endif
.	endfor
.endif # BROKEN_WITH_MYSQL
LIB_DEPENDS+=	mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/databases/mysql${MYSQL_VER}-client
.else
IGNORE=		"Unknown MySQL version: ${MYSQL_VER}"
.endif # Check for correct libs
.endif # USE_MYSQL

.if defined(USE_PGSQL)
DEFAULT_PGSQL_VER?=	74
PGSQL73_LIBVER=		3
PGSQL74_LIBVER=		3
PGSQL80_LIBVER=		4

# Setting/finding PostgreSQL version we want.
.if exists(${LOCALBASE}/bin/pg_config)
_PGSQL_VER!=	${LOCALBASE}/bin/pg_config --version | ${SED} -n 's/PostgreSQL[^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*/\1\2/p'
.endif

.if defined(WANT_PGSQL_VER) && defined(_PGSQL_VER) && ${WANT_PGSQL_VER} != ${_PGSQL_VER}
BROKEN=		the port wants postgresql${WANT_PGSQL_VER}-client but you have postgresql${_PGSQL_VER}-client installed
.endif

.if defined(_PGSQL_VER)
PGSQL_VER=	${_PGSQL_VER}
.elif defined(WANT_PGSQL_VER)
PGSQL_VER=	${WANT_PGSQL_VER}
.else
PGSQL_VER=	${DEFAULT_PGSQL_VER}
.endif

# And now we are checking if we can use it
.if defined(PGSQL${PGSQL_VER}_LIBVER)
.if defined(BROKEN_WITH_PGSQL)
.	for VER in ${BROKEN_WITH_PGSQL}
.		if (${PGSQL_VER} == "${VER}")
IGNORE=		"Does not work with postgresql${PGSQL_VER}-client PostgresSQL \(${BROKEN_WITH_PGSQL} not supported\)"
.		endif
.	endfor
.endif # BROKEN_WITH_PGSQL
LIB_DEPENDS+=	pq.${PGSQL${PGSQL_VER}_LIBVER}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-client
.else
IGNORE=		"Unknown PostgreSQL version: ${PGSQL_VER}"
.endif # Check for correct version
CPPFLAGS+=		-I${LOCALBASE}/include
LDFLAGS+=		-L${LOCALBASE}/lib
CONFIGURE_ENV+=	CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
.endif # USE_PGSQL


.if defined(USE_BDB)

_DB_PORTS=	2 3 40 41 42 43 40+ 41+ 42+ 43+
# Dependence lines for different db versions
db2_DEPENDS=	db2.0:${PORTSDIR}/databases/db2
db3_DEPENDS=	db3.3:${PORTSDIR}/databases/db3
db40_DEPENDS=	db4.0:${PORTSDIR}/databases/db4
db41_DEPENDS=	db41.1:${PORTSDIR}/databases/db41
db42_DEPENDS=	db-4.2.2:${PORTSDIR}/databases/db42
db43_DEPENDS=	db-4.3.0:${PORTSDIR}/databases/db43
# Detect db4 versions by finding some files
db40_FIND=	${PREFIX}/include/db4/db.h
db41_FIND=	${PREFIX}/include/db41/db.h
db42_FIND=	${PREFIX}/include/db42/db.h
db43_FIND=	${PREFIX}/include/db43/db.h

# For specifying 40+ 41+ 42+
_DB_40P=	40 41 42 43
_DB_41P=	41 42 43
_DB_42P=	42 43

_WANT_BDB_VER=	${USE_BDB}

# Assume the default bdb version as 41
.if ${USE_BDB} == "yes"
_WANT_BDB_VER=	41+
.endif

# Detect bdb version
_FOUND=	no

.for bdb in ${_DB_PORTS}
.if ${_WANT_BDB_VER} == "${bdb}" && ${_FOUND} == "no"
_MATCHED_DB_VER:=	${bdb:S/+//}
. if ${_MATCHED_DB_VER} == "${bdb}"
# USE_BDB is exactly specified
LIB_DEPENDS+=	${db${bdb}_DEPENDS}
_FOUND=	yes
.else
# USE_BDB is specified as VER+
.  for db4 in ${_DB_${_MATCHED_DB_VER}P}
.   if exists(${db${db4}_FIND}) && ${_FOUND} == "no"
LIB_DEPENDS+=   ${db${db4}_DEPENDS}
_FOUND=	yes
.   endif
.  endfor
.  if ${_FOUND} == "no"
# No existing db4 version is detected in system
LIB_DEPENDS+=	${db${_MATCHED_DB_VER}_DEPENDS}
_FOUND=	yes
.  endif
. endif
.endif
.endfor

# USE_BDB is specified incorrectly, so mark this as BROKEN
.if ${_FOUND} == "no"
IGNORE=	"Unknown bdb version: ${USE_BDB}"
.endif

.endif # USE_BDB

# Handling sqlite dependency
.if defined(USE_SQLITE)

.if ${USE_SQLITE} == "yes"
_SQLITE_VER=	3
.else
_SQLITE_VER=	${USE_SQLITE}
.endif

.if ${_SQLITE_VER} != "3" && ${_SQLITE_VER} != "2"
IGNORE=	"Unknown sqlite version: ${_SQLITE_VER}"
.endif

LIB_DEPENDS+=	sqlite${_SQLITE_VER}:${PORTSDIR}/databases/sqlite${_SQLITE_VER}

.endif # defined(USE_SQLITE)

.endif # defined(_POSTMKINCLUDED) && !defined(Database_Post_Include)
--- bsd.database.mk ends here -----dcVV4zGGS75m0wBuTzWHybEuPaCjSBXnqIur40iuaRZs1PRl
Content-Type: text/plain; name="bsd.port.mk.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="bsd.port.mk.diff"

--- bsd.port.mk.orig	Wed Jul 20 02:46:38 2005
+++ bsd.port.mk	Wed Jul 13 17:41:01 2005
@@ -371,39 +371,6 @@
 # LINUX_BASE_PORT		- This is a read-only variable, it gets set to a value which
 #				  is usable in *_DEPENDS (e.g. BUILD_DEPENDS=${LINUX_BASE_PORT}).
 #				  It honors USE_LINUX=foo and OVERRIDE_LINUX_BASE_PORT.
-##
-# USE_MYSQL		- Add MySQL client dependency.
-#				  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 (MySQL4.1 = 41).
-# DEFAULT_MYSQL_VER
-#				- MySQL default version. Can be overriden within a port.
-#				  Default: 41.
-# WANT_MYSQL_VER
-#				- Maintainer can set an arbitrary version of MySQL by using it.
-# BROKEN_WITH_MYSQL
-#				- This variable can be defined if the ports doesn't support
-#				  one or more version of MySQL.
-# MYSQL_VER		- Internal variable for MySQL version.
-# WITH_MYSQL_VER
-#				- User defined variable to set MySQL version.
-##
-# USE_PGSQL		- Add PostgreSQL client dependency.
-#				  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 (PostgreSQL-7.4 = 74).
-# DEFAULT_PGSQL_VER
-#				- PostgreSQL default version. Can be overridden within a port.
-#				  Default: 74.
-# WANT_PGSQL_VER
-#				- Maintainer can set an arbitrary version of PostgreSQL by
-#				  using it.
-# BROKEN_WITH_PGSQL
-#				- This variable can be defined if the ports doesn't support
-#				  one or more versions of PostgreSQL.
-##
 # USE_RC_SUBR	- If set, the ports startup/shutdown script uses the common
 # 				  routines found in etc/rc.subr and may need to
 # 				  depend on the sysutils/rc_subr port.
@@ -1725,99 +1692,15 @@
 .endif
 .endif
 
-.if defined(USE_MYSQL)
-DEFAULT_MYSQL_VER?=	41
-# MySQL client version currently supported.
-MYSQL323_LIBVER=	10
-MYSQL40_LIBVER=		12
-MYSQL41_LIBVER=		14
-MYSQL50_LIBVER=		14
-
-# Setting/finding MySQL version we want.
-.if exists(${LOCALBASE}/bin/mysql)
-_MYSQL_VER!=	${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/'
-.endif
-
-.if defined(WANT_MYSQL_VER)
-.if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${WANT_MYSQL_VER}
-BROKEN=		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}
-BROKEN=	MySQL versions mismatch: mysql${_MYSQL_VER}-client is installed and wanted version is mysql${MYSQL_VER}-client
-.endif
-.endif
-
-# And now we are checking if we can use it
-.if defined(MYSQL${MYSQL_VER}_LIBVER)
-.if defined(BROKEN_WITH_MYSQL)
-.	for VER in ${BROKEN_WITH_MYSQL}
-.		if (${MYSQL_VER} == "${VER}")
-IGNORE=		Doesn't work with MySQL version : ${MYSQL_VER} (Doesn't support MySQL ${BROKEN_WITH_MYSQL})
-.		endif
-.	endfor
-.endif # BROKEN_WITH_MYSQL
-LIB_DEPENDS+=	mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/databases/mysql${MYSQL_VER}-client
-.else
-BROKEN=		"unknown MySQL version: ${MYSQL_VER}"
-.endif # Check for correct libs
-.endif # USE_MYSQL
-
-.if defined(USE_PGSQL)
-DEFAULT_PGSQL_VER?=	74
-PGSQL73_LIBVER=		3
-PGSQL74_LIBVER=		3
-PGSQL80_LIBVER=		4
-
-# Setting/finding PostgreSQL version we want.
-.if exists(${LOCALBASE}/bin/pg_config)
-_PGSQL_VER!=	${LOCALBASE}/bin/pg_config --version | ${SED} -n 's/PostgreSQL[^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*/\1\2/p'
-.endif
-
-.if defined(WANT_PGSQL_VER) && defined(_PGSQL_VER) && ${WANT_PGSQL_VER} != ${_PGSQL_VER}
-IGNORE=		"The port wants postgresql${WANT_PGSQL_VER}-client but you have postgresql${_PGSQL_VER}-client installed"
-.endif
-
-.if defined(_PGSQL_VER)
-PGSQL_VER=	${_PGSQL_VER}
-.elif defined(WANT_PGSQL_VER)
-PGSQL_VER=	${WANT_PGSQL_VER}
-.else
-PGSQL_VER=	${DEFAULT_PGSQL_VER}
-.endif
-
-# And now we are checking if we can use it
-.if defined(PGSQL${PGSQL_VER}_LIBVER)
-.if defined(BROKEN_WITH_PGSQL)
-.	for VER in ${BROKEN_WITH_PGSQL}
-.		if (${PGSQL_VER} == "${VER}")
-IGNORE=		"Does not work with postgresql${PGSQL_VER}-client PostgresSQL \(${BROKEN_WITH_PGSQL} not supported\)"
-.		endif
-.	endfor
-.endif # BROKEN_WITH_PGSQL
-LIB_DEPENDS+=	pq.${PGSQL${PGSQL_VER}_LIBVER}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-client
-.else
-BROKEN=		"unknown PostgreSQL version: ${PGSQL_VER}"
-.endif # Check for correct version
-CPPFLAGS+=		-I${LOCALBASE}/include
-LDFLAGS+=		-L${LOCALBASE}/lib
-CONFIGURE_ENV+=	CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
-.endif # USE_PGSQL
-
 # XXX: (not yet): .if defined(USE_AUTOTOOLS)
 .include "${PORTSDIR}/Mk/bsd.autotools.mk"
 # XXX: (not yet): .endif
+
+.if defined(USE_MYSQL) || defined(WANT_MYSQL_VER) || \
+	defined(USE_PGSQL) || defined(WANT_PGSQL_VER) || \
+	defined(USE_BDB) || defined(USE_SQLITE) 
+.include "${PORTSDIR}/Mk/bsd.database.mk"
+.endif
 
 .if defined(WANT_GNOME) || defined(USE_GNOME) || defined(USE_GTK)
 .include "${PORTSDIR}/Mk/bsd.gnome.mk"
Comment 1 Vsevolod Stakhov freebsd_committer freebsd_triage 2005-09-03 18:36:20 UTC
Responsible Changed
From-To: freebsd-ports-bugs->portmgr

Portmgr territory.
Comment 2 Clement Laforet freebsd_committer freebsd_triage 2005-10-19 20:14:26 UTC
State Changed
From-To: open->analyzed

Added to exp build. Thanks
Comment 3 Clement Laforet freebsd_committer freebsd_triage 2005-11-08 09:10:07 UTC
State Changed
From-To: analyzed->closed

Committed. Thanks!