# $Id: Portfile 63511 2010-02-06 19:40:36Z blair@macports.org $

PortSystem 1.0
PortGroup  muniversal 1.0

name                    db46
set minor_version       21
version                 4.6.${minor_version}
revision                6
categories              databases
maintainers             blair openmaintainer
platforms               darwin
use_parallel_build      yes
description             The Berkeley DB package, version 4.6
long_description        Version 4.6 of the Berkeley Data Base library which \
                        offers (key/value) storage with optional concurrent \
                        access or transactions interface.  This port will \
                        install the AES (American Encryption Standard) \
                        enabled version.

homepage                http://www.oracle.com/database/berkeley-db/index.html
master_sites            http://download-west.oracle.com/berkeley-db/ \
                        http://download-east.oracle.com/berkeley-db/ \
                        http://download-uk.oracle.com/berkeley-db/
patch_sites             http://www.oracle.com/technology/products/berkeley-db/db/update/${version}/
patchfiles              patch.${version}.1 \
                        patch.${version}.2 \
                        patch.${version}.3 \
                        patch.${version}.4

distname                db-${version}
patch.dir               ${workpath}/${distname}
dist_subdir             db4/${version}_${revision}
checksums               ${distname}${extract.suffix} \
                        md5 718082e7e35fc48478a2334b0bc4cd11 \
                        patch.${version}.1 \
                            md5 4878872edfc53c6ecb871b1062a4bdaf \
                        patch.${version}.2 \
                            md5 55074e53d3acae2dcbeae8322f96e522 \
                        patch.${version}.3 \
                            md5 7a6e11b54712caf752f9c4a52babe60c \
                        patch.${version}.4 \
                            md5 ae7d3d587355fe85b512ef09b9a77d19

configure.dir           ${worksrcpath}/build_unix
build.dir               ${configure.dir}

configure.cmd           ../dist/configure
configure.args          --enable-cxx \
                                --enable-java \
                                --includedir=\\\${prefix}/include/db46 \
                                --libdir=\\\${prefix}/lib/db46 \
                                --program-transform-name="s,^db,db46," \
                                --enable-dump185 \
                                --disable-tcl

destroot.destdir        prefix=${destroot}${prefix} \
                                docdir=${destroot}${prefix}/share/doc/db-${version}/

pre-extract {
        if {[file exists "/usr/local/include/db.h"]} {
                ui_error "You have a conflicting install of Berkeley DB in /usr/local, please move it aside before building ${name}"
                return -code error "Berkeley DB in /usr/local is in the way"
        }
}

post-destroot {
        foreach bin { archive hotbackup dump printlog upgrade checkpoint recover verify deadlock load stat codegen dump185 } {
                move ${destroot}${prefix}/bin/db_${bin} \
                        ${destroot}${prefix}/bin/db46_${bin}
        }
}

variant no_java description {don't build the Java API} {
        configure.args-delete   --enable-java
}

variant tcl description {build Tcl API} {
        depends_lib-append      port:tcl
        configure.args-delete   --disable-tcl
        configure.args-append   --enable-tcl --with-tcl=${prefix}/lib
}

if { [variant_isset universal] } {
        if { ${os.arch}=="i386" } {
                if { ${os.major} >= 10 } {
                        set merger_configure_args(ppc) --with-mutex=Darwin/_spin_lock_try
                }
                set merger_configure_args(ppc64)   --with-mutex=Darwin/_spin_lock_try
        } else {
                set merger_configure_args(i386)    --with-mutex=x86/gcc-assembly
                set merger_configure_args(x86_64)  --with-mutex=x86_64/gcc-assembly
        }
} else {
    eval configure.ldflags-append ${configure.cc_archflags}
}

livecheck.type          regex
livecheck.url           http://www.oracle.com/technology/software/products/berkeley-db/db/index.html
livecheck.version       ${minor_version}
livecheck.regex         {4.6.(\d+(?:\.\d+)*)}
