Files

175 lines
5.6 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup muniversal 1.0
PortGroup clang_dependency 1.0
name db48
# Increase the revision of p5-berkeleydb any time the db48 version changes.
# See https://trac.macports.org/ticket/56561
version 4.8.30
revision 5
set branch [join [lrange [split ${version} .] 0 1] {}]
categories databases
license Sleepycat
maintainers {jmr @jmroot} openmaintainer
description The Berkeley DB package, version 4.8
long_description \
Version 4.8 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/us/products/database/berkeley-db/db/overview/index.html
master_sites http://download.oracle.com/berkeley-db/
distname db-${version}
checksums md5 f80022099c5742cd179343556179aa8c \
sha1 ab36c170dda5b2ceaad3915ced96e41c6b7e493c \
rmd160 dd2fcd4c9b857a91e2f491fd4fadb0c51b993a9c
if {${os.platform} eq "darwin" && ${os.major} < 11 && ${cxx_stdlib} eq "libc++"} {
# This port is in the dependency chain for clang 3.7 and later
clang_dependency.extra_versions 3.7
}
patchfiles patch-dbinc_atomic.h patch-dist_configure.diff
# Don't link with "-flat_namespace -undefined suppress" on Yosemite and
# later (#45705).
patchfiles-append yosemite-libtool.patch
configure.dir ${worksrcpath}/build_unix
build.dir ${configure.dir}
configure.cmd ../dist/configure
configure.args --enable-cxx \
--includedir=\\\${prefix}/include/db${branch} \
--libdir=\\\${prefix}/lib/db${branch}
set cxx_stdlibflags {}
if {[string match *clang* ${configure.cxx}] && ${configure.cxx_stdlib} ne ""} {
set cxx_stdlibflags -stdlib=${configure.cxx_stdlib}
}
configure.cxx ${configure.cxx} ${cxx_stdlibflags}
destroot.args docdir=${prefix}/share/doc/${name}
if {$subport eq $name} {
post-destroot {
foreach bin [glob -tails -directory ${destroot}${prefix}/bin/ db_*] {
set newbin [regsub {^db_} ${bin} "db${branch}_"]
move ${destroot}${prefix}/bin/${bin} \
${destroot}${prefix}/bin/${newbin}
}
delete ${destroot}${prefix}/share/doc/${name}/java
}
}
subport db48-java {
PortGroup java 1.0
revision 0
description Java bindings for Berkeley DB, version 4.8
long_description Java bindings for version 4.8 of the \
Berkeley Data Base library.
depends_lib-append port:${name}
patchfiles-append java_vers.patch
java.version 1.5+
pre-configure {
configure.cppflags-append -I${java.home}/include -I${java.home}/include/${os.platform}
}
configure.args-append --enable-java
configure.args-delete --enable-cxx
if {${os.platform} eq "darwin" && ${os.major} < 15} {
set java_ver 1.5
} elseif {${os.platform} eq "darwin" && ${os.major} < 18} {
set java_ver 1.6
} else {
set java_ver 1.7
}
configure.env-append "JAVACFLAGS=-source ${java_ver} -target ${java_ver}"
# There is no Java specific install target, so delete everything
# but the Java related files.
post-destroot {
set p ${destroot}${prefix}
delete ${p}/bin
delete ${p}/include
# Install the docs into the main ports's doc directory so that
# the link in index.html to java/index.html works.
foreach f [glob -tails -directory ${p}/share/doc/${name} *] {
if {${f} ne "java"} {
delete ${p}/share/doc/${name}/${f}
}
}
ln -s ${name} ${p}/share/doc/${subport}
foreach f [glob -tails -directory ${p}/lib/${name} *] {
if {${f} ne "db.jar"
&& ![string match libdb_java* ${f}]} {
delete ${p}/lib/${name}/${f}
}
}
}
}
subport db48-tcl {
revision 0
description Tcl bindings for Berkeley DB, version 4.8
long_description Tcl bindings for version 4.8 of the \
Berkeley Data Base library.
depends_lib-append port:${name} port:tcl
configure.args-append --enable-tcl --with-tcl=${prefix}/lib
configure.args-delete --enable-cxx
post-destroot {
set p ${destroot}${prefix}
delete ${p}/bin
delete ${p}/include
delete ${p}/share/doc/${name}
foreach f [glob -tails -directory ${p}/lib/${name} *] {
if {![string match libdb_tcl* ${f}]} {
delete ${p}/lib/${name}/${f}
}
}
}
}
if {$subport eq $name} {
notes "The Java and Tcl bindings are now provided by the db48-java and
db48-tcl subports."
}
variant umrw description {Mask harmless uninitialized memory read/writes for the benefit of memory debuggers such as Valgrind} {
configure.args-append --enable-umrw
}
if { [variant_isset universal] } {
# configure fails with aarch64 but it seems to work fine with arm
set merger_host(arm64) arm-apple-${os.platform}${os.version}
if {${os.arch} eq "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
}
}
livecheck.type none