From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Sep 3 17:30:09 2005 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 789AD16A41F for ; Sat, 3 Sep 2005 17:30:09 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id B09FF43D49 for ; Sat, 3 Sep 2005 17:30:08 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j83HU8cw060608 for ; Sat, 3 Sep 2005 17:30:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j83HU8n4060586; Sat, 3 Sep 2005 17:30:08 GMT (envelope-from gnats) Resent-Date: Sat, 3 Sep 2005 17:30:08 GMT Resent-Message-Id: <200509031730.j83HU8n4060586@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Vsevolod Stakhov Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 79EA316A41F for ; Sat, 3 Sep 2005 17:24:01 +0000 (GMT) (envelope-from vsevolod@highsecure.ru) Received: from core.inec.ru (core.inec.ru [213.148.3.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id C185843D45 for ; Sat, 3 Sep 2005 17:23:56 +0000 (GMT) (envelope-from vsevolod@highsecure.ru) Received: from [213.219.249.64] (helo=spray.anyhost.ru) by core.inec.ru with esmtp (Exim 4.51 (FreeBSD)) id 1EBbiJ-000PFR-76 for FreeBSD-gnats-submit@freebsd.org; Sat, 03 Sep 2005 21:21:59 +0400 Received: from cebka by spray.anyhost.ru with local (Exim 4.52 (FreeBSD)) id 1EBbkA-0009DK-6j for FreeBSD-gnats-submit@freebsd.org; Sat, 03 Sep 2005 21:23:54 +0400 Message-Id: Date: Sat, 03 Sep 2005 21:23:54 +0400 From: Vsevolod Stakhov Sender: Vsevolod Stakhov To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/85695: Add bsd.database.mk. X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Vsevolod Stakhov List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Sep 2005 17:30:09 -0000 >Number: 85695 >Category: ports >Synopsis: Add bsd.database.mk. >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Sep 03 17:30:07 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Vsevolod Stakhov >Release: FreeBSD 5.4-RELEASE i386 >Organization: >Environment: >Description: Move all database related code from bsd.port.mk to bsd.database.mk. Add also bdb support and sqlite support. >How-To-Repeat: >Fix: --- bsd.port.mk.diff begins here --- --- 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" --- bsd.port.mk.diff ends here --- --- bsd.database.mk begins here --- # -*- 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 --- >Release-Note: >Audit-Trail: >Unformatted: