@@ -498,11 +498,13 @@ dnl APU_CHECK_DBM: see what kind of DBM backend to use for apr_dbm.
498
498
dnl
499
499
AC_DEFUN ( [ APU_CHECK_DBM] , [
500
500
apu_use_sdbm=0
501
+ apu_use_lmdb=0
501
502
apu_use_ndbm=0
502
503
apu_use_gdbm=0
503
504
apu_use_db=0
504
505
dnl it's in our codebase
505
506
apu_have_sdbm=1
507
+ apu_have_lmdb=0
506
508
apu_have_gdbm=0
507
509
apu_have_ndbm=0
508
510
apu_have_db=0
@@ -514,7 +516,7 @@ AC_DEFUN([APU_CHECK_DBM], [
514
516
# Although we search for all versions up to 6.9,
515
517
# we should only include existing versions in our
516
518
# help string.
517
- dbm_list="sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4"
519
+ dbm_list="sdbm, lmdb, gdbm, ndbm, db, db1, db185, db2, db3, db4"
518
520
db_max_version=48
519
521
db_min_version=41
520
522
db_version="$db_min_version"
@@ -541,7 +543,7 @@ AC_DEFUN([APU_CHECK_DBM], [
541
543
done
542
544
543
545
AC_ARG_WITH ( dbm , [ APR_HELP_STRING([ --with-dbm=DBM] , [ choose the DBM type to use.
544
- DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db4X,db5X,db6X} for some X=0,...,9] )] ,
546
+ DBM={sdbm,lmdb, gdbm,ndbm,db,db1,db185,db2,db3,db4,db4X,db5X,db6X} for some X=0,...,9] )] ,
545
547
[
546
548
if test "$withval" = "yes"; then
547
549
AC_MSG_ERROR ( [ --with-dbm needs to specify a DBM type to use.
@@ -552,6 +554,35 @@ AC_DEFUN([APU_CHECK_DBM], [
552
554
requested=default
553
555
] )
554
556
557
+ AC_ARG_WITH ( [ lmdb] , [ APR_HELP_STRING([ --with-lmdb=DIR] , [ enable LMDB support] )] ,
558
+ [
559
+ apu_have_lmdb=0
560
+ if test "$withval" = "yes"; then
561
+ AC_CHECK_HEADER ( lmdb.h , AC_CHECK_LIB ( lmdb , mdb_dbi_open , [ apu_have_lmdb=1] ) )
562
+ elif test "$withval" = "no"; then
563
+ apu_have_lmdb=0
564
+ else
565
+ saved_cppflags="$CPPFLAGS"
566
+ saved_ldflags="$LDFLAGS"
567
+ CPPFLAGS="$CPPFLAGS -I$withval/include"
568
+ LDFLAGS="$LDFLAGS -L$withval/lib "
569
+
570
+ AC_MSG_CHECKING ( checking for lmdb in $withval )
571
+ AC_CHECK_HEADER ( lmdb.h , AC_CHECK_LIB ( lmdb , mdb_dbi_open , [ apu_have_lmdb=1] ) )
572
+ if test "$apu_have_lmdb" != "0"; then
573
+ APR_ADDTO(LDFLAGS, [ -L$withval/lib] )
574
+ APR_ADDTO(INCLUDES, [ -I$withval/include] )
575
+ fi
576
+ CPPFLAGS="$saved_cppflags"
577
+ LDFLAGS="$saved_ldflags"
578
+ fi
579
+
580
+ if test "$requested" = "lmdb" -a "$apu_have_lmdb" = 0; then
581
+ AC_MSG_ERROR ( [ LMDB requested, but not found] )
582
+ fi
583
+ ] )
584
+
585
+
555
586
dnl We don't pull in GDBM unless the user asks for it, since it's GPL
556
587
AC_ARG_WITH ( [ gdbm] , [ APR_HELP_STRING([ --with-gdbm=DIR] , [ enable GDBM support] )] ,
557
588
[
@@ -668,6 +699,7 @@ AC_DEFUN([APU_CHECK_DBM], [
668
699
fi
669
700
670
701
if test "$apu_want_db" != "0"; then
702
+ AC_MSG_NOTICE ( [ checking for Berkeley DB $requested in $user_places] )
671
703
APU_CHECK_DB($requested, $user_places)
672
704
if test "$apu_have_db" = "0"; then
673
705
AC_ERROR (Berkeley DB not found.)
@@ -680,7 +712,7 @@ AC_DEFUN([APU_CHECK_DBM], [
680
712
fi
681
713
682
714
case "$requested" in
683
- sdbm | gdbm | ndbm | db)
715
+ lmdb | sdbm | gdbm | ndbm | db)
684
716
eval "apu_use_$requested=1"
685
717
apu_default_dbm=$requested
686
718
;;
@@ -709,11 +741,13 @@ AC_DEFUN([APU_CHECK_DBM], [
709
741
AC_MSG_CHECKING ( for default DBM )
710
742
AC_MSG_RESULT ( $apu_default_dbm )
711
743
744
+ AC_SUBST ( apu_use_lmdb )
712
745
AC_SUBST ( apu_use_sdbm )
713
746
AC_SUBST ( apu_use_gdbm )
714
747
AC_SUBST ( apu_use_ndbm )
715
748
AC_SUBST ( apu_use_db )
716
749
750
+ AC_SUBST ( apu_have_lmdb )
717
751
AC_SUBST ( apu_have_sdbm )
718
752
AC_SUBST ( apu_have_gdbm )
719
753
AC_SUBST ( apu_have_ndbm )
@@ -738,8 +772,13 @@ AC_DEFUN([APU_CHECK_DBM], [
738
772
APR_ADDTO(LDADD_dbm_ndbm, [ -l$apu_ndbm_lib] )
739
773
fi
740
774
775
+ if test "$apu_have_lmdb" = "1"; then
776
+ APR_ADDTO(LDADD_dbm_lmdb, [ -llmdb] )
777
+ fi
778
+
741
779
AC_SUBST ( LDADD_dbm_db )
742
780
AC_SUBST ( LDADD_dbm_gdbm )
743
781
AC_SUBST ( LDADD_dbm_ndbm )
782
+ AC_SUBST ( LDADD_dbm_lmdb )
744
783
] )
745
784
0 commit comments