this

        configure.ac
                AC_MSG_CHECKING(for lmdb library)
                AC_ARG_WITH(lmdb,
                        AS_HELP_STRING([--with-lmdb[=PATH]],
                               [build with LMDB library [yes|no|path]]),
                    use_lmdb="$withval", use_lmdb="auto")

                have_lmdb=""
                case "$use_lmdb" in
                    no)
                        LMDB_LIBS=""
                        ;;
                    auto|yes)
                        for d in /usr /usr/local /opt/local
                        do
                            if test -f "${d}/include/lmdb.h"
                            then
                                if test ${d} != /usr
                                then
                                    LMDB_CFLAGS="-I ${d}/include"
!!                                  LMDB_LIBS="-L${d}/lib"
                                fi
                                have_lmdb="yes"
                            fi
                        done
                        ;;
                    *)
                        if test -f "${use_lmdb}/include/lmdb.h"
                        then
                            LMDB_CFLAGS="-I${use_lmdb}/include"
!!                          LMDB_LIBS="-L${use_lmdb}/lib"
                            have_lmdb="yes"
                        else
                            AC_MSG_ERROR([$use_lmdb/include/lmdb.h not found.])
                        fi
                        ;;
                esac


is naive. it ignores commonplace multiarch support.



with =path enabled on config, generated Makefile is just wrong

        egrep "^LMDB" Makefile
                LMDB_CFLAGS = -I/usr/local/lmdb/include
                LMDB_LIBS = -L/usr/local/lmdb/lib none required



bind advertises

        ./configure --help | grep -i LMDB
                --with-lmdb=PATH        build with LMDB library [yes|no|path]

it simply fails to work as advertised.

> you can use and adjust the .pc file from any Linux distribution package

of course you can.

it's here

        pkg-config --libs --cflags lmdb
                -I/usr/local/lmdb/include -L/usr/local/lmdb/lib64 -llmdb

> LMDB support in BIND 9 comes with pkg-config support too

there's NO such option advertised by bind configure, as

        LMDB_CFLAGS
                  C compiler flags for LMDB, overriding pkg-config
        LMDB_LIBS
                  linker flags for LMDB, overriding pkg-config

it's simply not used by this bind build

        grep PKG_CHECK `grep -rln PKG_CHECK .` | grep -i lmdb
                (empty)

& no mention at all of it in source

        grep -i lmdb `grep -rlni lmdb .` | grep -i pkg
                (empty)

this

        --with-openssl=/usr/local/openssl

works.
this,

        --with-lmdb=/usr/local/lmdb

does not.

That has _nothing_ to do with 'LMDB upstream'


>  Did you came to get help or to argue?

neither.

> It’s really not our fault the LMDB upstream decided to make it hard to use 
> the library.

::facepalm::


this

        tree /usr/local/lmdb
                /usr/local/lmdb
                ...
                ├── include
                │   └── lmdb.h
                ...
                ├── lib64
                │   ├── liblmdb.a
                │   └── liblmdb.so
                ...

is about as simple as it gets.

fix it, remove it, or leave it as is -- your product, your choice.

good luck.
_______________________________________________
Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe 
from this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to