Commit graph

13 commits

Author SHA1 Message Date
jlam
691395aa89 Modify bdb.buildlink3.mk so that we choose a single, well-known package
for all Berkeley DB dependencies instead of choosing the best installed
DB package by default:

1. BDB_DEFAULT is set in /etc/mk.conf for the life of pkgsrc and
   represents the package we use when either (1) a db-1.85 interface
   isn't required, or (2) a db-1.85 interface *is* required, but it's
   not builtin.  It defaults to "db4" but can be any of db[234].

2. BDB185_DEFAULT is set in /etc/mk.conf for the life of pkgsrc and
   represents the package we use when a db-1.85 interface is required.
   It defaults to "db1" if it's builtin, or to ${BDB_DEFAULT}
   otherwise.[**]

3. If we want db1, then we use the package named in BDB185_DEFAULT.
   If we don't want db1, then we use the package named in BDB_DEFAULT.

4. If ${BDB_DEFAULT} isn't listed in BDB_ACCEPTED for a package, then
   that package will be marked with PKG_FAIL_REASON as "${BDB_DEFAULT}
   not a supported Berkeley DB type for ${PKGNAME}."

Using the above scheme, on NetBSD, the default of BDB_DEFAULT=db4 and
BDB185_DEFAULT=db1 will cause db1 to be used whenever we want a db-1.85
interface and db4 to be used for all other packages.
2005-01-09 23:56:21 +00:00
jlam
b67b0725c4 Rework the Berkeley DB detection in buildlink3:
* Add a db1.builtin.mk file that detects whether DB-1.85 functionality
    exists in the base system, and remove the distinction between
    "native" and the other Berkeley DB packages -- we now refer to
    db[1234].  This paves the way for any future databases/db1 package.

  * USE_DB185 shouldn't need to be set by any packages -- its correct
    value is now automatically determined by bdb.buildlink3.mk depending
    on whether we explicitly request db1 or not.  By default, if you
    include bdb.buildlink3.mk, you want DB-1.85 functionality and
    USE_DB185 defaults to "yes", but if you explicitly remove db1 from
    the list of acceptable DBs, then USE_DB185 defaults to "no".

  * Set BDB_LIBS to the library options needed to link against the DB
    library when bdb.buildlink3.mk is included.

  * We only add the DB library to the linker command automatically if
    we want DB-1.85 functionality; otherwise assume that the package
    configure process can figure out how to probe for the correct
    headers and libraries.

Edit package Makefiles to nuke redundant settings of USE_DB185.
2004-11-15 17:54:49 +00:00
grant
95b2c1a0e0 provide BUILDLINK_{CPPFLAGS,LDFLAGS,LIBS}.bdb, taken from whichever db
implementation is being used, including native. tested on NetBSD with
db1 in libc, Linux with db1 in libdb, db2, db3 and db4.
2004-07-10 03:05:46 +00:00
grant
cbd2865637 correctly set BDB_TYPE when native db is not available, eg. Solaris,
IRIX using the first BDB_ACCEPTED.
2004-05-30 10:40:02 +00:00
wiz
3c971e1670 Fix typo in comment. 2004-05-26 20:26:29 +00:00
jlam
a44f074ef2 Use a table instead of cascading if..else to dispatch to the correct
buildlink3.mk for inclusion.  Remove reference to BUILDLINK_PREFIX.db2
which doesn't exist (fixed by using the table).
2004-04-26 09:39:38 +00:00
minskim
043cd3c2c6 Accept /usr/include/db.h as a valid db-1.85 header file only when
"^\#define.*HASHVERSION.*2$" is found.
2004-04-25 15:06:10 +00:00
wiz
e1591fe56e Only add BDBBASE to BUILD_DEFS once. 2004-04-15 11:11:57 +00:00
minskim
765eb1aafe "db" is not a valid value for BDB_TYPE; use "db2" instead. 2004-04-12 15:13:30 +00:00
jlam
faed7092a8 Reverse the use of USE_DB185 in bdb.buildlink3.mk -- it defaults to
"yes" and packages that can't use the DB-1.85 API should set it to "no".
This makes the native DB the preferred DB if it exists.
2004-03-26 18:48:52 +00:00
jlam
7db11b582a Fix serious bug where BUILDLINK_PACKAGES wasn't being ordered properly
by moving the inclusion of buildlink3.mk files outside of the protected
region.  This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.

BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list.  This ordering property is used to check for builtin
packages in the correct order.  The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end.  However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
2004-03-18 09:12:08 +00:00
jlam
6307bde7a7 Use the correct PKGBASE when referring to the "db2" package. Also remove
a pasto that caused using the native bdb to also depend on db4.
2004-03-11 08:33:52 +00:00
jlam
f3e38fb48d bdb.buildlink3.mk is used to select a Berkeley DB implementation for
use by pkgsrc.  It will automatically depend on either db, db3, or db4
if the native one isn't sufficient.  The two variables that control its
behaviour are:

BDB_DEFAULT is a user-settable variable whose value is the default
       Berkeley DB implementation to use.

BDB_ACCEPTED is a package-settable list of Berkeley DB implementations
       that may be used by the package.

E.g., if you always want to use DB4 as the Berkeley DB for all of the
packages, then you can just set:

	BDB_DEFAULT=	db4

in your /etc/mk.conf.

Packages that currently include db*/buildlink3.mk should be made to
include bdb.buildlink3.mk instead.
2004-03-10 18:06:06 +00:00